Commit f33d519e

mo khan <mo@mokhan.ca>
2014-07-19 15:11:26
change json serialization to include isValid.
1 parent 86db9e4
Changed files (3)
app
assets
javascripts
backbone
controllers
templates
tutorials
views
app/assets/javascripts/backbone/controllers/tutorials_controller.js.coffee
@@ -3,9 +3,12 @@ class CakeSide.Controllers.TutorialsController extends Marionette.Controller
   initialize: (options) ->
     @content_region = CakeSide.Application.content_region
     @tutorials = CakeSide.Application.request('TutorialsRepository')
+    @comment_view = CakeSide.Application.request('CommentView')
 
   index: ->
+    @comment_view.hide()
     @content_region.show(new @views.IndexView(collection: @tutorials))
 
   new: ->
+    @comment_view.hide()
     @content_region.show(new @views.NewView(collection: @tutorials))
app/assets/javascripts/backbone/templates/tutorials/new.jst.ejs
@@ -10,7 +10,7 @@
         <div class="control-group">
           <label class="control-label" for="tutorial_url">Tutorial URL</label>
           <div class="controls">
-            <input class="input-xxlarge" id="tutorial_url" name="url" type="text" value="<%= url %>" placeholder="http://www.cakeside.com/">
+            <input class="input-xxlarge" id="tutorial_url" name="url" type="text" value="<%= tutorial.url %>" placeholder="http://www.cakeside.com/">
           </div>
         </div>
         <div class="control-group">
@@ -23,18 +23,18 @@
             </div>
         </div>
         <div class="form-actions">
-          <button id='save-button' type="submit" class="btn btn-primary" disabled=disabled>Save</button>
+          <button id='save-button' type="submit" class="btn btn-primary" <% if (isInvalid()) { %> disabled=disabled <% } %>>Save</button>
           <a href="#tutorials" class="btn">Cancel</a>
         </div>
       </fieldset>
     </form>
     <% if(canLoadPreview()) { %>
     <div class="thumbnail">
-      <img class="embed-thumb" src="<%= image_url %>" />
+      <img class="embed-thumb" src="<%= tutorial.image_url %>" />
       <div class="caption">
-        <h3 class="tutorial-heading"><%= heading %></h3>
+        <h3 class="tutorial-heading"><%= tutorial.heading %></h3>
         <p id="tag-list"></p>
-        <p class="tutorial-description"><%= description %></p>
+        <p class="tutorial-description"><%= tutorial.description %></p>
       </div>
     </div>
     <% } %>
app/assets/javascripts/backbone/views/tutorials/new_view.js.coffee
@@ -11,6 +11,8 @@ class CakeSide.Views.Tutorials.NewView extends Marionette.ItemView
   templateHelpers:
     canLoadPreview: ->
       @image_url
+    isInvalid: ->
+      !@isValid
 
   initialize: ->
     @model = new @collection.model()
@@ -29,10 +31,6 @@ class CakeSide.Views.Tutorials.NewView extends Marionette.ItemView
     @model.set('author', data.provider_name)
     @model.set('author_url', data.provider_url)
     @render()
-    if @model.isValid()
-      @enableSaveButton()
-    else
-      @disableSaveButton()
 
   resetTutorial: (url) ->
     @model.set('url', url)
@@ -41,11 +39,10 @@ class CakeSide.Views.Tutorials.NewView extends Marionette.ItemView
     @model.set('image_url', '')
     @model.set('author', '')
     @model.set('author_url', '')
-    @disableSaveButton()
     @render()
 
-  enableSaveButton: ->
-    @ui.save_button.removeAttr('disabled')
-
-  disableSaveButton: ->
-    @ui.save_button.attr('disabled', 'disabled')
+  serializeData: ->
+    {
+      tutorial: @model.toJSON(),
+      isValid: @model.isValid()
+    }