121 lines
3.1 KiB
JavaScript
121 lines
3.1 KiB
JavaScript
/**
|
|
* 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(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() {
|
|
this.setElement($(Drupal.theme('quickeditFieldToolbar', {
|
|
id: this._id
|
|
})));
|
|
this.$el.prependTo(this.$root);
|
|
return this;
|
|
},
|
|
|
|
stateChange(model, state) {
|
|
const from = model.previous('state');
|
|
const 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() {
|
|
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() {
|
|
return `quickedit-toolbar-for-${this._id}`;
|
|
},
|
|
|
|
getFloatedWysiwygToolgroupId() {
|
|
return `quickedit-wysiwyg-floated-toolgroup-for-${this._id}`;
|
|
},
|
|
|
|
getMainWysiwygToolgroupId() {
|
|
return `quickedit-wysiwyg-main-toolgroup-for-${this._id}`;
|
|
},
|
|
|
|
_find(toolgroup) {
|
|
return this.$el.find(`.quickedit-toolgroup.${toolgroup}`);
|
|
},
|
|
|
|
show(toolgroup) {
|
|
const $group = this._find(toolgroup);
|
|
|
|
$group.on(Drupal.quickedit.util.constants.transitionEnd, event => {
|
|
$group.off(Drupal.quickedit.util.constants.transitionEnd);
|
|
});
|
|
window.setTimeout(() => {
|
|
$group.removeClass('quickedit-animate-invisible');
|
|
}, 0);
|
|
}
|
|
|
|
});
|
|
})(jQuery, _, Backbone, Drupal); |