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