diff --git a/cms/static/coffee/src/views/module_edit.coffee b/cms/static/coffee/src/views/module_edit.coffee index 22fb90c1b9..04d99299d2 100644 --- a/cms/static/coffee/src/views/module_edit.coffee +++ b/cms/static/coffee/src/views/module_edit.coffee @@ -1,6 +1,7 @@ class CMS.Views.ModuleEdit extends Backbone.View tagName: 'li' className: 'component' + editorMode: 'editor-mode' events: "click .component-editor .cancel-button": 'clickCancelButton' @@ -27,8 +28,12 @@ class CMS.Views.ModuleEdit extends Backbone.View el: metadataEditor, model: new CMS.Models.MetadataEditor(metadataEditor.data('metadata')) }); - # Checks for number input fields and adds polyfill - #triggerNumberPolyfill() + # Need to update set "active" class on data editor if there is one. + # If we are only showing settings, hide the data editor controls and update settings accordingly. + if @hasDataEditor() + @selectMode(@editorMode) + else + @hideDataEditor() changedMetadata: -> return @metadataEditor.getModifiedMetadataValues() @@ -88,13 +93,34 @@ class CMS.Views.ModuleEdit extends Backbone.View clickModeButton: (event) -> event.preventDefault() - if $(this).hasClass(".is-set") - alert("Hi There") - else - previousTab = @$el.find('li.active-mode .is-set') - previousTab.parent().siblings().find("a").addClass('is-set') - previousTab.removeClass('is-set') + if not @hasDataEditor() + return + @selectMode(event.currentTarget.parentElement.id) - previousTabContent = @$el.find('div.is-active') - previousTabContent.siblings().addClass('is-active') - previousTabContent.removeClass('is-active') + hasDataEditor: => + return @$el.find('.wrapper-comp-editor').length > 0 + + selectMode: (mode) => + dataEditor = @$el.find('.wrapper-comp-editor') + settingsEditor = @$el.find('.wrapper-comp-settings') + editorModeButton = @$el.find('#editor-mode').find("a") + settingsModeButton = @$el.find('#settings-mode').find("a") + + if mode == @editorMode + dataEditor.addClass('is-active') + settingsEditor.removeClass('is-active') + editorModeButton.addClass('is-set') + settingsModeButton.removeClass('is-set') + else + dataEditor.removeClass('is-active') + settingsEditor.addClass('is-active') + editorModeButton.removeClass('is-set') + settingsModeButton.addClass('is-set') + + hideDataEditor: => + editorModeButtonParent = @$el.find('#editor-mode') + # Can it be enough to just remove active-mode? + editorModeButtonParent.addClass('inactive-mode') + editorModeButtonParent.removeClass('active-mode') + @$el.find('.wrapper-comp-settings').addClass('is-active') + @$el.find('#settings-mode').find("a").addClass('is-set') \ No newline at end of file diff --git a/cms/templates/component.html b/cms/templates/component.html index 3aa8c322df..cfdd40403d 100644 --- a/cms/templates/component.html +++ b/cms/templates/component.html @@ -3,11 +3,11 @@
Editing: Component