bind the disabling/enabling of the unit name input field based on whether the page state is public or not. We shouldn't be able to edit when public.

This commit is contained in:
Chris Dodge
2012-11-05 12:02:08 -05:00
parent e35d1483c6
commit 6b45b4c741
2 changed files with 15 additions and 3 deletions

View File

@@ -169,12 +169,21 @@ class CMS.Views.UnitEdit.NameEdit extends Backbone.View
initialize: =>
@model.on('change:metadata', @render)
@model.on('change:state', @setEnabled)
@setEnabled()
@saveName
@$spinner = $('<span class="spinner-in-field-icon"></span>');
render: =>
@$('.unit-display-name-input').val(@model.get('metadata').display_name)
setEnabled: =>
disabled = @model.get('state') == 'public'
if disabled
@$('.unit-display-name-input').attr('disabled', true)
else
@$('.unit-display-name-input').removeAttr('disabled')
saveName: =>
# Treat the metadata dictionary as immutable
metadata = $.extend({}, @model.get('metadata'))
@@ -196,7 +205,7 @@ class CMS.Views.UnitEdit.NameEdit extends Backbone.View
if @timer
clearTimeout @timer
@timer = setTimeout( =>
@model.save(metadata: metadata)
@model.save(metadata: metadata, children: null)
@timer = null
@$spinner.delay(500).fadeOut(150)
, 500)