Chris@0: /** Chris@0: * DO NOT EDIT THIS FILE. Chris@0: * See the following change record for more information, Chris@0: * https://www.drupal.org/node/2815083 Chris@0: * @preserve Chris@0: **/ Chris@0: Chris@0: (function ($, _, Backbone, Drupal) { Chris@0: Drupal.quickedit.FieldToolbarView = Backbone.View.extend({ Chris@0: $editedElement: null, Chris@0: Chris@0: editorView: null, Chris@0: Chris@0: _id: null, Chris@0: Chris@0: initialize: function initialize(options) { Chris@0: this.$editedElement = options.$editedElement; Chris@0: this.editorView = options.editorView; Chris@0: Chris@0: this.$root = this.$el; Chris@0: Chris@14: this._id = 'quickedit-toolbar-for-' + this.model.id.replace(/[/[\]]/g, '_'); Chris@0: Chris@0: this.listenTo(this.model, 'change:state', this.stateChange); Chris@0: }, Chris@0: render: function render() { Chris@0: this.setElement($(Drupal.theme('quickeditFieldToolbar', { Chris@0: id: this._id Chris@0: }))); Chris@0: Chris@0: this.$el.prependTo(this.$root); Chris@0: Chris@0: return this; Chris@0: }, Chris@0: stateChange: function stateChange(model, state) { Chris@0: var from = model.previous('state'); Chris@0: var to = state; Chris@0: switch (to) { Chris@0: case 'inactive': Chris@0: break; Chris@0: Chris@0: case 'candidate': Chris@0: if (from !== 'inactive' && from !== 'highlighted') { Chris@0: this.$el.remove(); Chris@0: this.setElement(); Chris@0: } Chris@0: break; Chris@0: Chris@0: case 'highlighted': Chris@0: break; Chris@0: Chris@0: case 'activating': Chris@0: this.render(); Chris@0: Chris@0: if (this.editorView.getQuickEditUISettings().fullWidthToolbar) { Chris@0: this.$el.addClass('quickedit-toolbar-fullwidth'); Chris@0: } Chris@0: Chris@0: if (this.editorView.getQuickEditUISettings().unifiedToolbar) { Chris@0: this.insertWYSIWYGToolGroups(); Chris@0: } Chris@0: break; Chris@0: Chris@0: case 'active': Chris@0: break; Chris@0: Chris@0: case 'changed': Chris@0: break; Chris@0: Chris@0: case 'saving': Chris@0: break; Chris@0: Chris@0: case 'saved': Chris@0: break; Chris@0: Chris@0: case 'invalid': Chris@0: break; Chris@0: } Chris@0: }, Chris@0: insertWYSIWYGToolGroups: function insertWYSIWYGToolGroups() { Chris@0: this.$el.append(Drupal.theme('quickeditToolgroup', { Chris@0: id: this.getFloatedWysiwygToolgroupId(), Chris@0: classes: ['wysiwyg-floated', 'quickedit-animate-slow', 'quickedit-animate-invisible', 'quickedit-animate-delay-veryfast'], Chris@0: buttons: [] Chris@0: })).append(Drupal.theme('quickeditToolgroup', { Chris@0: id: this.getMainWysiwygToolgroupId(), Chris@0: classes: ['wysiwyg-main', 'quickedit-animate-slow', 'quickedit-animate-invisible', 'quickedit-animate-delay-veryfast'], Chris@0: buttons: [] Chris@0: })); Chris@0: Chris@0: this.show('wysiwyg-floated'); Chris@0: this.show('wysiwyg-main'); Chris@0: }, Chris@0: getId: function getId() { Chris@0: return 'quickedit-toolbar-for-' + this._id; Chris@0: }, Chris@0: getFloatedWysiwygToolgroupId: function getFloatedWysiwygToolgroupId() { Chris@0: return 'quickedit-wysiwyg-floated-toolgroup-for-' + this._id; Chris@0: }, Chris@0: getMainWysiwygToolgroupId: function getMainWysiwygToolgroupId() { Chris@0: return 'quickedit-wysiwyg-main-toolgroup-for-' + this._id; Chris@0: }, Chris@0: _find: function _find(toolgroup) { Chris@0: return this.$el.find('.quickedit-toolgroup.' + toolgroup); Chris@0: }, Chris@0: show: function show(toolgroup) { Chris@0: var $group = this._find(toolgroup); Chris@0: Chris@0: $group.on(Drupal.quickedit.util.constants.transitionEnd, function (event) { Chris@0: $group.off(Drupal.quickedit.util.constants.transitionEnd); Chris@0: }); Chris@0: Chris@0: window.setTimeout(function () { Chris@0: $group.removeClass('quickedit-animate-invisible'); Chris@0: }, 0); Chris@0: } Chris@0: }); Chris@0: })(jQuery, _, Backbone, Drupal);