Chris@0
|
1 /**
|
Chris@0
|
2 * DO NOT EDIT THIS FILE.
|
Chris@0
|
3 * See the following change record for more information,
|
Chris@0
|
4 * https://www.drupal.org/node/2815083
|
Chris@0
|
5 * @preserve
|
Chris@0
|
6 **/
|
Chris@0
|
7
|
Chris@0
|
8 (function ($, Drupal) {
|
Chris@0
|
9 Drupal.behaviors.dialog = {
|
Chris@0
|
10 attach: function attach(context, settings) {
|
Chris@0
|
11 var $context = $(context);
|
Chris@0
|
12
|
Chris@0
|
13 if (!$('#drupal-modal').length) {
|
Chris@0
|
14 $('<div id="drupal-modal" class="ui-front"/>').hide().appendTo('body');
|
Chris@0
|
15 }
|
Chris@0
|
16
|
Chris@0
|
17 var $dialog = $context.closest('.ui-dialog-content');
|
Chris@0
|
18 if ($dialog.length) {
|
Chris@0
|
19 if ($dialog.dialog('option', 'drupalAutoButtons')) {
|
Chris@0
|
20 $dialog.trigger('dialogButtonsChange');
|
Chris@0
|
21 }
|
Chris@0
|
22
|
Chris@0
|
23 $dialog.dialog('widget').trigger('focus');
|
Chris@0
|
24 }
|
Chris@0
|
25
|
Chris@0
|
26 var originalClose = settings.dialog.close;
|
Chris@0
|
27
|
Chris@0
|
28 settings.dialog.close = function (event) {
|
Chris@14
|
29 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
Chris@14
|
30 args[_key - 1] = arguments[_key];
|
Chris@14
|
31 }
|
Chris@14
|
32
|
Chris@14
|
33 originalClose.apply(settings.dialog, [event].concat(args));
|
Chris@0
|
34 $(event.target).remove();
|
Chris@0
|
35 };
|
Chris@0
|
36 },
|
Chris@0
|
37 prepareDialogButtons: function prepareDialogButtons($dialog) {
|
Chris@0
|
38 var buttons = [];
|
Chris@0
|
39 var $buttons = $dialog.find('.form-actions input[type=submit], .form-actions a.button');
|
Chris@0
|
40 $buttons.each(function () {
|
Chris@0
|
41 var $originalButton = $(this).css({
|
Chris@0
|
42 display: 'block',
|
Chris@0
|
43 width: 0,
|
Chris@0
|
44 height: 0,
|
Chris@0
|
45 padding: 0,
|
Chris@0
|
46 border: 0,
|
Chris@0
|
47 overflow: 'hidden'
|
Chris@0
|
48 });
|
Chris@0
|
49 buttons.push({
|
Chris@0
|
50 text: $originalButton.html() || $originalButton.attr('value'),
|
Chris@0
|
51 class: $originalButton.attr('class'),
|
Chris@0
|
52 click: function click(e) {
|
Chris@0
|
53 if ($originalButton.is('a')) {
|
Chris@0
|
54 $originalButton[0].click();
|
Chris@0
|
55 } else {
|
Chris@0
|
56 $originalButton.trigger('mousedown').trigger('mouseup').trigger('click');
|
Chris@0
|
57 e.preventDefault();
|
Chris@0
|
58 }
|
Chris@0
|
59 }
|
Chris@0
|
60 });
|
Chris@0
|
61 });
|
Chris@0
|
62 return buttons;
|
Chris@0
|
63 }
|
Chris@0
|
64 };
|
Chris@0
|
65
|
Chris@0
|
66 Drupal.AjaxCommands.prototype.openDialog = function (ajax, response, status) {
|
Chris@0
|
67 if (!response.selector) {
|
Chris@0
|
68 return false;
|
Chris@0
|
69 }
|
Chris@0
|
70 var $dialog = $(response.selector);
|
Chris@0
|
71 if (!$dialog.length) {
|
Chris@0
|
72 $dialog = $('<div id="' + response.selector.replace(/^#/, '') + '" class="ui-front"/>').appendTo('body');
|
Chris@0
|
73 }
|
Chris@0
|
74
|
Chris@0
|
75 if (!ajax.wrapper) {
|
Chris@0
|
76 ajax.wrapper = $dialog.attr('id');
|
Chris@0
|
77 }
|
Chris@0
|
78
|
Chris@0
|
79 response.command = 'insert';
|
Chris@0
|
80 response.method = 'html';
|
Chris@0
|
81 ajax.commands.insert(ajax, response, status);
|
Chris@0
|
82
|
Chris@0
|
83 if (!response.dialogOptions.buttons) {
|
Chris@0
|
84 response.dialogOptions.drupalAutoButtons = true;
|
Chris@0
|
85 response.dialogOptions.buttons = Drupal.behaviors.dialog.prepareDialogButtons($dialog);
|
Chris@0
|
86 }
|
Chris@0
|
87
|
Chris@0
|
88 $dialog.on('dialogButtonsChange', function () {
|
Chris@0
|
89 var buttons = Drupal.behaviors.dialog.prepareDialogButtons($dialog);
|
Chris@0
|
90 $dialog.dialog('option', 'buttons', buttons);
|
Chris@0
|
91 });
|
Chris@0
|
92
|
Chris@0
|
93 response.dialogOptions = response.dialogOptions || {};
|
Chris@0
|
94 var dialog = Drupal.dialog($dialog.get(0), response.dialogOptions);
|
Chris@0
|
95 if (response.dialogOptions.modal) {
|
Chris@0
|
96 dialog.showModal();
|
Chris@0
|
97 } else {
|
Chris@0
|
98 dialog.show();
|
Chris@0
|
99 }
|
Chris@0
|
100
|
Chris@0
|
101 $dialog.parent().find('.ui-dialog-buttonset').addClass('form-actions');
|
Chris@0
|
102 };
|
Chris@0
|
103
|
Chris@0
|
104 Drupal.AjaxCommands.prototype.closeDialog = function (ajax, response, status) {
|
Chris@0
|
105 var $dialog = $(response.selector);
|
Chris@0
|
106 if ($dialog.length) {
|
Chris@0
|
107 Drupal.dialog($dialog.get(0)).close();
|
Chris@0
|
108 if (!response.persist) {
|
Chris@0
|
109 $dialog.remove();
|
Chris@0
|
110 }
|
Chris@0
|
111 }
|
Chris@0
|
112
|
Chris@0
|
113 $dialog.off('dialogButtonsChange');
|
Chris@0
|
114 };
|
Chris@0
|
115
|
Chris@0
|
116 Drupal.AjaxCommands.prototype.setDialogOption = function (ajax, response, status) {
|
Chris@0
|
117 var $dialog = $(response.selector);
|
Chris@0
|
118 if ($dialog.length) {
|
Chris@0
|
119 $dialog.dialog('option', response.optionName, response.optionValue);
|
Chris@0
|
120 }
|
Chris@0
|
121 };
|
Chris@0
|
122
|
Chris@0
|
123 $(window).on('dialog:aftercreate', function (e, dialog, $element, settings) {
|
Chris@0
|
124 $element.on('click.dialog', '.dialog-cancel', function (e) {
|
Chris@0
|
125 dialog.close('cancel');
|
Chris@0
|
126 e.preventDefault();
|
Chris@0
|
127 e.stopPropagation();
|
Chris@0
|
128 });
|
Chris@0
|
129 });
|
Chris@0
|
130
|
Chris@0
|
131 $(window).on('dialog:beforeclose', function (e, dialog, $element) {
|
Chris@0
|
132 $element.off('.dialog');
|
Chris@0
|
133 });
|
Chris@0
|
134 })(jQuery, Drupal); |