فهرست منبع

Make touching the Files Upload UI to trigger form as dirty/changed

Markus Ochel 12 سال پیش
والد
کامیت
dc895dd445

+ 1 - 1
admin/controllers/authors.coffee

@@ -115,7 +115,7 @@ class AuthorForm extends Spine.Controller
       @item.destroy()
       @back()
 
-  markAsDirty: ->
+  markAsDirty: =>
     @dirtyForm = true
     @saveButton.addClass('glow')
 

+ 2 - 1
admin/controllers/blocks.coffee

@@ -79,6 +79,7 @@ class BlockForm extends Spine.Controller
       docId: @item.id
       selectedFile: @item.photo
       attachments: @item._attachments
+      changeCallback: @markAsDirty
     @fileUploadContainer.html @fileUploadUI.el
 
   siteChange: ->
@@ -118,7 +119,7 @@ class BlockForm extends Spine.Controller
       @item.destroy()
       @back()
 
-  markAsDirty: ->
+  markAsDirty: =>
     @dirtyForm = true
     @saveButton.addClass('glow')
 

+ 2 - 1
admin/controllers/collections.coffee

@@ -85,6 +85,7 @@ class CollectionForm extends Spine.Controller
       docId: @item.id
       selectedFile: @item.photo
       attachments: @item._attachments
+      changeCallback: @markAsDirty
     @fileUploadContainer.html @fileUploadUI.el
 
   siteChange: ->
@@ -129,7 +130,7 @@ class CollectionForm extends Spine.Controller
       @item.destroy()
       @back()
 
-  markAsDirty: ->
+  markAsDirty: =>
     @dirtyForm = true
     @saveButton.addClass('glow')
 

+ 3 - 3
admin/controllers/contacts.coffee

@@ -17,8 +17,8 @@ class ContactForm extends Spine.Controller
 
   events:
     'submit form':          'preventSubmit'
-    'change *[name]':           'markAsDirty'
-    'keyup *[name]':            'markAsDirty'
+    'change *[name]':       'markAsDirty'
+    'keyup *[name]':        'markAsDirty'
     'click .save-button':   'save'
     'click .cancel-button': 'cancel'
     'click .delete-button': 'destroy'
@@ -72,7 +72,7 @@ class ContactForm extends Spine.Controller
       @item.destroy()
       @back()
 
-  markAsDirty: ->
+  markAsDirty: =>
     @dirtyForm = true
     @saveButton.addClass('glow')
   

+ 2 - 1
admin/controllers/essays.coffee

@@ -102,6 +102,7 @@ class EssayForm extends Spine.Controller
       docId: @item.id
       selectedFile: @item.photo
       attachments: @item._attachments
+      changeCallback: @markAsDirty
     @fileUploadContainer.html @fileUploadUI.el
 
   siteChange: ->
@@ -220,7 +221,7 @@ class EssayForm extends Spine.Controller
       @item.destroy()
       @back()
 
-  markAsDirty: ->
+  markAsDirty: =>
     @dirtyForm = true
     @saveButton.addClass('glow')
 

+ 2 - 1
admin/controllers/scenes.coffee

@@ -100,6 +100,7 @@ class SceneForm extends Spine.Controller
       docId: @item.id
       selectedFile: @item.photo
       attachments: @item._attachments
+      changeCallback: @markAsDirty
     @fileUploadContainer.html @fileUploadUI.el
 
   siteChange: ->
@@ -218,7 +219,7 @@ class SceneForm extends Spine.Controller
       @item.destroy()
       @back()
 
-  markAsDirty: ->
+  markAsDirty: =>
     @dirtyForm = true
     @saveButton.addClass('glow')
 

+ 1 - 1
admin/controllers/sites.coffee

@@ -99,7 +99,7 @@ class SiteForm extends Spine.Controller
       @item.destroy()
       @back()
 
-  markAsDirty: ->
+  markAsDirty: =>
     @dirtyForm = true
     @saveButton.addClass('glow')
   

+ 2 - 1
admin/controllers/sponsors.coffee

@@ -75,6 +75,7 @@ class SponsorForm extends Spine.Controller
       selectedFieldName: 'image'
       selectedFile: @item.image
       attachments: @item._attachments
+      changeCallback: @markAsDirty
     @fileUploadContainer.html @fileUploadUI.el
 
   save: (e) ->
@@ -103,7 +104,7 @@ class SponsorForm extends Spine.Controller
       @item.destroy()
       @back()
 
-  markAsDirty: ->
+  markAsDirty: =>
     @dirtyForm = true
     @saveButton.addClass('glow')
   

+ 11 - 0
admin/controllers/ui/file-upload.coffee

@@ -12,6 +12,7 @@ class FileUploadUI extends Spine.Controller
   attachments: {}
   docId: null
   selectedFile: null
+  changeCallback: null
 
   events:
     'click ul.files-list > li':   'itemClick'
@@ -20,6 +21,7 @@ class FileUploadUI extends Spine.Controller
   constructor: ->
     super
     @render()
+    @bind 'change', @changeCallback
 
   render: ->
     @dropzone = $("<div class=\"dropzone\">#{@dropzoneText}</div>")
@@ -62,6 +64,9 @@ class FileUploadUI extends Spine.Controller
     # Also select the item if it is the only one
     @selectItem($item) if @attachments.length is 1
 
+    # Trigger change event
+    @trigger 'change'
+
   itemClick: (e) ->
     # Selecting the main photo
     e.preventDefault()
@@ -72,6 +77,9 @@ class FileUploadUI extends Spine.Controller
     else
       @selectItem(item)
 
+    # Trigger change event
+    @trigger 'change'
+
   itemDblClick: (e) ->
     # Removing an attachment
     e.preventDefault()
@@ -101,6 +109,9 @@ class FileUploadUI extends Spine.Controller
         @fileSelectedInput.val('') if @fileSelectedInput.val() is name
         @fileName.html "#{name} was removed"
 
+        # Trigger change event
+        @trigger 'change'
+
   setupZoneEvents: ->
     @dropzone.on 'dragenter dragover', (e) ->
       e.originalEvent.preventDefault()