
| Current Path : /var/www/html/rocksensor/web/modules/contrib/ckeditor/js/views/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/rocksensor/web/modules/contrib/ckeditor/js/views/VisualView.js |
/**
* DO NOT EDIT THIS FILE.
* See the following change record for more information,
* https://www.drupal.org/node/2815083
* @preserve
**/
(function (Drupal, Backbone, $, Sortable) {
Drupal.ckeditor.VisualView = Backbone.View.extend({
events: {
'click .ckeditor-toolbar-group-name': 'onGroupNameClick',
'click .ckeditor-groupnames-toggle': 'onGroupNamesToggleClick',
'click .ckeditor-add-new-group button': 'onAddGroupButtonClick'
},
initialize: function initialize() {
this.listenTo(this.model, 'change:isDirty change:groupNamesVisible', this.render);
$(Drupal.theme('ckeditorButtonGroupNamesToggle')).prependTo(this.$el.find('#ckeditor-active-toolbar').parent());
this.render();
},
render: function render(model, value, changedAttributes) {
this.insertPlaceholders();
this.applySorting();
var groupNamesVisible = this.model.get('groupNamesVisible');
if (changedAttributes && changedAttributes.changes && changedAttributes.changes.isDirty) {
this.model.set({
groupNamesVisible: true
}, {
silent: true
});
groupNamesVisible = true;
}
this.$el.find('[data-toolbar="active"]').toggleClass('ckeditor-group-names-are-visible', groupNamesVisible);
var $toggle = this.$el.find('.ckeditor-groupnames-toggle');
$toggle.each(function (index, element) {
element.textContent = groupNamesVisible ? Drupal.t('Hide group names') : Drupal.t('Show group names');
}).attr('aria-pressed', groupNamesVisible);
return this;
},
onGroupNameClick: function onGroupNameClick(event) {
var $group = $(event.currentTarget).closest('.ckeditor-toolbar-group');
Drupal.ckeditor.openGroupNameDialog(this, $group);
event.stopPropagation();
event.preventDefault();
},
onGroupNamesToggleClick: function onGroupNamesToggleClick(event) {
this.model.set('groupNamesVisible', !this.model.get('groupNamesVisible'));
event.preventDefault();
},
onAddGroupButtonClick: function onAddGroupButtonClick(event) {
function insertNewGroup(success, $group) {
if (success) {
$group.appendTo($(event.currentTarget).closest('.ckeditor-row').children('.ckeditor-toolbar-groups'));
$group.trigger('focus');
}
}
Drupal.ckeditor.openGroupNameDialog(this, $(Drupal.theme('ckeditorToolbarGroup')), insertNewGroup);
event.preventDefault();
},
endGroupDrag: function endGroupDrag(event) {
var $item = $(event.item);
Drupal.ckeditor.registerGroupMove(this, $item);
},
startButtonDrag: function startButtonDrag(event) {
this.$el.find('a:focus').trigger('blur');
this.model.set('groupNamesVisible', true);
},
endButtonDrag: function endButtonDrag(event) {
var $item = $(event.item);
Drupal.ckeditor.registerButtonMove(this, $item, function (success) {
$item.find('a').trigger('focus');
});
},
applySorting: function applySorting() {
var _this = this;
Array.prototype.forEach.call(this.el.querySelectorAll('.ckeditor-buttons:not(.js-sortable)'), function (buttons) {
buttons.classList.add('js-sortable');
Sortable.create(buttons, {
ghostClass: 'ckeditor-button-placeholder',
group: 'ckeditor-buttons',
onStart: _this.startButtonDrag.bind(_this),
onEnd: _this.endButtonDrag.bind(_this)
});
});
Array.prototype.forEach.call(this.el.querySelectorAll('.ckeditor-toolbar-groups:not(.js-sortable)'), function (buttons) {
buttons.classList.add('js-sortable');
Sortable.create(buttons, {
ghostClass: 'ckeditor-toolbar-group-placeholder',
onEnd: _this.endGroupDrag.bind(_this)
});
});
Array.prototype.forEach.call(this.el.querySelectorAll('.ckeditor-multiple-buttons:not(.js-sortable)'), function (buttons) {
buttons.classList.add('js-sortable');
Sortable.create(buttons, {
group: {
name: 'ckeditor-buttons',
pull: 'clone'
},
onEnd: _this.endButtonDrag.bind(_this)
});
});
},
insertPlaceholders: function insertPlaceholders() {
this.insertPlaceholderRow();
this.insertNewGroupButtons();
},
insertPlaceholderRow: function insertPlaceholderRow() {
var $rows = this.$el.find('.ckeditor-row');
if (!$rows.eq(-1).hasClass('placeholder')) {
this.$el.find('.ckeditor-toolbar-active').children('.ckeditor-active-toolbar-configuration').append(Drupal.theme('ckeditorRow'));
}
$rows = this.$el.find('.ckeditor-row');
var len = $rows.length;
$rows.filter(function (index, row) {
if (index + 1 === len) {
return false;
}
return $(row).find('.ckeditor-toolbar-group').not('.placeholder').length === 0;
}).remove();
},
insertNewGroupButtons: function insertNewGroupButtons() {
this.$el.find('.ckeditor-row').each(function () {
var $row = $(this);
var $groups = $row.find('.ckeditor-toolbar-group');
var $button = $row.find('.ckeditor-add-new-group');
if ($button.length === 0) {
$row.children('.ckeditor-toolbar-groups').append(Drupal.theme('ckeditorNewButtonGroup'));
} else if (!$groups.eq(-1).hasClass('ckeditor-add-new-group')) {
$button.appendTo($row.children('.ckeditor-toolbar-groups'));
}
});
}
});
})(Drupal, Backbone, jQuery, Sortable);