diff --git a/cms/static/coffee/src/views/unit.coffee b/cms/static/coffee/src/views/unit.coffee index a4ec53f68e..0f354af09c 100644 --- a/cms/static/coffee/src/views/unit.coffee +++ b/cms/static/coffee/src/views/unit.coffee @@ -12,11 +12,15 @@ class CMS.Views.UnitEdit extends Backbone.View 'change #visibility': 'setVisibility' initialize: => - @visibility_view = new CMS.Views.UnitEdit.Visibility( + @visibilityView = new CMS.Views.UnitEdit.Visibility( el: @$('#visibility') model: @model ) - @visibility_view.render() + + @saveView = new CMS.Views.UnitEdit.SaveDraftButton( + el: @$('#save-draft') + model: @model + ) @model.on('change:state', @render) @@ -149,7 +153,21 @@ class CMS.Views.UnitEdit extends Backbone.View class CMS.Views.UnitEdit.Visibility extends Backbone.View initialize: => @model.on('change:state', @render) + @render() render: => @$el.val(@model.get('state')) +class CMS.Views.UnitEdit.SaveDraftButton extends Backbone.View + initialize: => + @model.on('change:children', @enable) + @model.on('change:metadata', @enable) + @model.on('sync', @disable) + + @disable() + + disable: => + @$el.addClass('disabled') + + enable: => + @$el.removeClass('disabled') \ No newline at end of file diff --git a/cms/static/sass/_cms_mixins.scss b/cms/static/sass/_cms_mixins.scss index c1d8245e36..dc536e323a 100644 --- a/cms/static/sass/_cms_mixins.scss +++ b/cms/static/sass/_cms_mixins.scss @@ -16,6 +16,18 @@ @include box-shadow(0 1px 0 rgba(255, 255, 255, .3) inset, 0 0 0 rgba(0, 0, 0, 0)); @include transition(background-color .15s, box-shadow .15s); + &.disabled { + border: 1px solid $darkGrey !important; + border-radius: 3px !important; + background: $lightGrey !important; + color: #fff !important; + pointer-events: none; + cursor: none; + &:hover { + box-shadow: 0 0 0 0 !important; + } + } + &:hover { @include box-shadow(0 1px 0 rgba(255, 255, 255, .3) inset, 0 1px 1px rgba(0, 0, 0, .15)); }