Mercurial > hg > cmmr2012-drupal-site
diff core/modules/quickedit/js/views/FieldToolbarView.js @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/quickedit/js/views/FieldToolbarView.js Thu Jul 05 14:24:15 2018 +0000 @@ -0,0 +1,118 @@ +/** +* DO NOT EDIT THIS FILE. +* See the following change record for more information, +* https://www.drupal.org/node/2815083 +* @preserve +**/ + +(function ($, _, Backbone, Drupal) { + Drupal.quickedit.FieldToolbarView = Backbone.View.extend({ + $editedElement: null, + + editorView: null, + + _id: null, + + initialize: function initialize(options) { + this.$editedElement = options.$editedElement; + this.editorView = options.editorView; + + this.$root = this.$el; + + this._id = 'quickedit-toolbar-for-' + this.model.id.replace(/[/[\]]/g, '_'); + + this.listenTo(this.model, 'change:state', this.stateChange); + }, + render: function render() { + this.setElement($(Drupal.theme('quickeditFieldToolbar', { + id: this._id + }))); + + this.$el.prependTo(this.$root); + + return this; + }, + stateChange: function stateChange(model, state) { + var from = model.previous('state'); + var to = state; + switch (to) { + case 'inactive': + break; + + case 'candidate': + if (from !== 'inactive' && from !== 'highlighted') { + this.$el.remove(); + this.setElement(); + } + break; + + case 'highlighted': + break; + + case 'activating': + this.render(); + + if (this.editorView.getQuickEditUISettings().fullWidthToolbar) { + this.$el.addClass('quickedit-toolbar-fullwidth'); + } + + if (this.editorView.getQuickEditUISettings().unifiedToolbar) { + this.insertWYSIWYGToolGroups(); + } + break; + + case 'active': + break; + + case 'changed': + break; + + case 'saving': + break; + + case 'saved': + break; + + case 'invalid': + break; + } + }, + insertWYSIWYGToolGroups: function insertWYSIWYGToolGroups() { + this.$el.append(Drupal.theme('quickeditToolgroup', { + id: this.getFloatedWysiwygToolgroupId(), + classes: ['wysiwyg-floated', 'quickedit-animate-slow', 'quickedit-animate-invisible', 'quickedit-animate-delay-veryfast'], + buttons: [] + })).append(Drupal.theme('quickeditToolgroup', { + id: this.getMainWysiwygToolgroupId(), + classes: ['wysiwyg-main', 'quickedit-animate-slow', 'quickedit-animate-invisible', 'quickedit-animate-delay-veryfast'], + buttons: [] + })); + + this.show('wysiwyg-floated'); + this.show('wysiwyg-main'); + }, + getId: function getId() { + return 'quickedit-toolbar-for-' + this._id; + }, + getFloatedWysiwygToolgroupId: function getFloatedWysiwygToolgroupId() { + return 'quickedit-wysiwyg-floated-toolgroup-for-' + this._id; + }, + getMainWysiwygToolgroupId: function getMainWysiwygToolgroupId() { + return 'quickedit-wysiwyg-main-toolgroup-for-' + this._id; + }, + _find: function _find(toolgroup) { + return this.$el.find('.quickedit-toolgroup.' + toolgroup); + }, + show: function show(toolgroup) { + var $group = this._find(toolgroup); + + $group.on(Drupal.quickedit.util.constants.transitionEnd, function (event) { + $group.off(Drupal.quickedit.util.constants.transitionEnd); + }); + + window.setTimeout(function () { + $group.removeClass('quickedit-animate-invisible'); + }, 0); + } + }); +})(jQuery, _, Backbone, Drupal); \ No newline at end of file