master
1class csx.Views.My.Profiles.ShowView extends Marionette.ItemView
2 template: JST["templates/my/profiles/show"]
3 ui:
4 name: '#user_name'
5 email: '#user_email'
6 city: '#user_city'
7 website: '#user_website'
8 facebook: '#user_facebook'
9 twitter: '#user_twitter'
10 save_button: '#save-button'
11 cancel_button: '#cancel-button'
12 status: '#status-message'
13
14 modelEvents:
15 'invalid': 'displayError'
16
17 events:
18 "submit #profile-form": "save"
19 "keyup input": "refreshStatus"
20 'click #cancel-button': 'cancel'
21
22 save: (event) ->
23 event.preventDefault()
24 event.stopPropagation()
25 @disableSaveButton()
26 @model.save(null,
27 success: @savedSuccessfully
28 error: @couldNotSave
29 )
30
31 savedSuccessfully: (profile) =>
32 @disableSaveButton()
33 @ui.status.removeClass('hide')
34 @ui.status.removeClass('alert-danger')
35 @ui.status.html("Saved!")
36
37 couldNotSave: =>
38 console.log('fudge')
39
40 enableSaveButton: ->
41 @ui.save_button.removeAttr('disabled')
42
43 disableSaveButton: ->
44 @ui.save_button.attr('disabled', 'disabled')
45
46 displayError: ->
47 @disableSaveButton()
48 @ui.status.addClass('alert-danger')
49 @ui.status.removeClass('hide')
50 @ui.status.html(@model.validationError)
51
52 refreshStatus: ->
53 @ui.status.addClass('hide')
54 @enableSaveButton()
55 @model.set('name', @ui.name.val())
56 @model.set('email', @ui.email.val())
57 @model.set('city', @ui.city.val())
58 @model.set('website', @ui.website.val())
59 @model.set('facebook', @ui.facebook.val())
60 @model.set('twitter', @ui.twitter.val())
61 @model.isValid()
62
63 cancel: ->
64 @enableSaveButton()