Chris@0: /** Chris@0: * DO NOT EDIT THIS FILE. Chris@0: * See the following change record for more information, Chris@0: * https://www.drupal.org/node/2815083 Chris@0: * @preserve Chris@0: **/ Chris@0: Chris@0: (function ($, Drupal) { Chris@0: Drupal.behaviors.dialog = { Chris@0: attach: function attach(context, settings) { Chris@0: var $context = $(context); Chris@0: Chris@0: if (!$('#drupal-modal').length) { Chris@0: $('
').hide().appendTo('body'); Chris@0: } Chris@0: Chris@0: var $dialog = $context.closest('.ui-dialog-content'); Chris@0: if ($dialog.length) { Chris@0: if ($dialog.dialog('option', 'drupalAutoButtons')) { Chris@0: $dialog.trigger('dialogButtonsChange'); Chris@0: } Chris@0: Chris@0: $dialog.dialog('widget').trigger('focus'); Chris@0: } Chris@0: Chris@0: var originalClose = settings.dialog.close; Chris@0: Chris@0: settings.dialog.close = function (event) { Chris@14: for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { Chris@14: args[_key - 1] = arguments[_key]; Chris@14: } Chris@14: Chris@14: originalClose.apply(settings.dialog, [event].concat(args)); Chris@0: $(event.target).remove(); Chris@0: }; Chris@0: }, Chris@0: prepareDialogButtons: function prepareDialogButtons($dialog) { Chris@0: var buttons = []; Chris@0: var $buttons = $dialog.find('.form-actions input[type=submit], .form-actions a.button'); Chris@0: $buttons.each(function () { Chris@0: var $originalButton = $(this).css({ Chris@0: display: 'block', Chris@0: width: 0, Chris@0: height: 0, Chris@0: padding: 0, Chris@0: border: 0, Chris@0: overflow: 'hidden' Chris@0: }); Chris@0: buttons.push({ Chris@0: text: $originalButton.html() || $originalButton.attr('value'), Chris@0: class: $originalButton.attr('class'), Chris@0: click: function click(e) { Chris@0: if ($originalButton.is('a')) { Chris@0: $originalButton[0].click(); Chris@0: } else { Chris@0: $originalButton.trigger('mousedown').trigger('mouseup').trigger('click'); Chris@0: e.preventDefault(); Chris@0: } Chris@0: } Chris@0: }); Chris@0: }); Chris@0: return buttons; Chris@0: } Chris@0: }; Chris@0: Chris@0: Drupal.AjaxCommands.prototype.openDialog = function (ajax, response, status) { Chris@0: if (!response.selector) { Chris@0: return false; Chris@0: } Chris@0: var $dialog = $(response.selector); Chris@0: if (!$dialog.length) { Chris@0: $dialog = $('
').appendTo('body'); Chris@0: } Chris@0: Chris@0: if (!ajax.wrapper) { Chris@0: ajax.wrapper = $dialog.attr('id'); Chris@0: } Chris@0: Chris@0: response.command = 'insert'; Chris@0: response.method = 'html'; Chris@0: ajax.commands.insert(ajax, response, status); Chris@0: Chris@0: if (!response.dialogOptions.buttons) { Chris@0: response.dialogOptions.drupalAutoButtons = true; Chris@0: response.dialogOptions.buttons = Drupal.behaviors.dialog.prepareDialogButtons($dialog); Chris@0: } Chris@0: Chris@0: $dialog.on('dialogButtonsChange', function () { Chris@0: var buttons = Drupal.behaviors.dialog.prepareDialogButtons($dialog); Chris@0: $dialog.dialog('option', 'buttons', buttons); Chris@0: }); Chris@0: Chris@0: response.dialogOptions = response.dialogOptions || {}; Chris@0: var dialog = Drupal.dialog($dialog.get(0), response.dialogOptions); Chris@0: if (response.dialogOptions.modal) { Chris@0: dialog.showModal(); Chris@0: } else { Chris@0: dialog.show(); Chris@0: } Chris@0: Chris@0: $dialog.parent().find('.ui-dialog-buttonset').addClass('form-actions'); Chris@0: }; Chris@0: Chris@0: Drupal.AjaxCommands.prototype.closeDialog = function (ajax, response, status) { Chris@0: var $dialog = $(response.selector); Chris@0: if ($dialog.length) { Chris@0: Drupal.dialog($dialog.get(0)).close(); Chris@0: if (!response.persist) { Chris@0: $dialog.remove(); Chris@0: } Chris@0: } Chris@0: Chris@0: $dialog.off('dialogButtonsChange'); Chris@0: }; Chris@0: Chris@0: Drupal.AjaxCommands.prototype.setDialogOption = function (ajax, response, status) { Chris@0: var $dialog = $(response.selector); Chris@0: if ($dialog.length) { Chris@0: $dialog.dialog('option', response.optionName, response.optionValue); Chris@0: } Chris@0: }; Chris@0: Chris@0: $(window).on('dialog:aftercreate', function (e, dialog, $element, settings) { Chris@0: $element.on('click.dialog', '.dialog-cancel', function (e) { Chris@0: dialog.close('cancel'); Chris@0: e.preventDefault(); Chris@0: e.stopPropagation(); Chris@0: }); Chris@0: }); Chris@0: Chris@0: $(window).on('dialog:beforeclose', function (e, dialog, $element) { Chris@0: $element.off('.dialog'); Chris@0: }); Chris@0: })(jQuery, Drupal);