Commit 64469297

mo khan <mo@mokhan.ca>
2014-06-29 03:36:52
add empty view and extract methods to enable/disable save button.
1 parent 0343f12
Changed files (3)
app
assets
javascripts
app/assets/javascripts/backbone/templates/cakes/no_cakes.jst.ejs
@@ -0,0 +1,1 @@
+<p>You haven't shared any creations yet. <a href="#/new">Get Started</a></p>
app/assets/javascripts/backbone/views/cakes/index_view.js.coffee
@@ -1,4 +1,8 @@
 CakeSide.Views.Cakes ||= {}
 
+class CakeSide.Views.Cakes.NoCakesView extends Marionette.ItemView
+  template: JST["backbone/templates/cakes/no_cakes"]
+
 class CakeSide.Views.Cakes.IndexView extends Marionette.CollectionView
   childView: CakeSide.Views.Cakes.CakeView
+  emptyView: CakeSide.Views.Cakes.NoCakesView
app/assets/javascripts/backbone/views/cakes/new_view.js.coffee
@@ -25,6 +25,7 @@ class CakeSide.Views.Cakes.NewView extends Marionette.ItemView
   save: (e) ->
     e.preventDefault()
     e.stopPropagation()
+    @disableSaveButton()
     @collection.create(@model,
       success: @savedSuccessfully
       error: @couldNotSave
@@ -35,18 +36,18 @@ class CakeSide.Views.Cakes.NewView extends Marionette.ItemView
     @$('#cake_tags').tagit({ availableTags: ALL_TAGS })
     @$('.tooltip-item').tooltip()
 
-  savedSuccessfully: (cake) ->
+  savedSuccessfully: (cake) =>
     window.location.hash = "/cakes/#{cake.id}/photos/new"
 
-  couldNotSave: (cake, xhr) ->
+  couldNotSave: (cake, xhr) =>
+    @enableSaveButton()
     error = new CakeSide.Views.ErrorView
       el: @$('form#new-cake'),
       attributesWithErrors: $.parseJSON(xhr.responseText)
     error.render()
 
   refreshStatus: ->
-    console.log('refreshing.')
-    @ui.save_button.removeAttr('disabled')
+    @enableSaveButton()
     @model.set('name', @ui.name.val())
     @model.set('watermark', @ui.watermark.val())
     @model.set('story', @ui.description.val())
@@ -56,4 +57,11 @@ class CakeSide.Views.Cakes.NewView extends Marionette.ItemView
     @model.isValid()
 
   displayError: (model, error) ->
+    @disableSaveButton()
+
+  enableSaveButton: ->
+    @ui.save_button.removeAttr('disabled')
+
+  disableSaveButton: ->
     @ui.save_button.attr('disabled', 'disabled')
+