Mercurial > hg > isophonics-drupal-site
view core/modules/ckeditor/js/views/VisualView.js @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 129ea1e6d783 |
children |
line wrap: on
line source
/** * DO NOT EDIT THIS FILE. * See the following change record for more information, * https://www.drupal.org/node/2815083 * @preserve **/ (function (Drupal, Backbone, $) { 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); this.$el.find('.ckeditor-groupnames-toggle').text(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, ui) { var view = this; Drupal.ckeditor.registerGroupMove(this, ui.item, function (success) { if (!success) { view.$el.find('.ckeditor-toolbar-configuration').find('.ui-sortable').sortable('cancel'); } }); }, startButtonDrag: function startButtonDrag(event, ui) { this.$el.find('a:focus').trigger('blur'); this.model.set('groupNamesVisible', true); }, endButtonDrag: function endButtonDrag(event, ui) { var view = this; Drupal.ckeditor.registerButtonMove(this, ui.item, function (success) { if (!success) { view.$el.find('.ui-sortable').sortable('cancel'); } ui.item.find('a').trigger('focus'); }); }, applySorting: function applySorting() { this.$el.find('.ckeditor-buttons').not('.ui-sortable').sortable({ connectWith: '.ckeditor-buttons', placeholder: 'ckeditor-button-placeholder', forcePlaceholderSize: true, tolerance: 'pointer', cursor: 'move', start: this.startButtonDrag.bind(this), stop: this.endButtonDrag.bind(this) }).disableSelection(); this.$el.find('.ckeditor-toolbar-groups').not('.ui-sortable').sortable({ connectWith: '.ckeditor-toolbar-groups', cancel: '.ckeditor-add-new-group', placeholder: 'ckeditor-toolbar-group-placeholder', forcePlaceholderSize: true, cursor: 'move', stop: this.endGroupDrag.bind(this) }); this.$el.find('.ckeditor-multiple-buttons li').draggable({ connectToSortable: '.ckeditor-toolbar-active .ckeditor-buttons', helper: 'clone' }); }, 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);