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.quickedit.util = Drupal.quickedit.util || {};
|
Chris@0
|
10
|
Chris@0
|
11 Drupal.quickedit.util.constants = {};
|
Chris@0
|
12
|
Chris@0
|
13 Drupal.quickedit.util.constants.transitionEnd = 'transitionEnd.quickedit webkitTransitionEnd.quickedit transitionend.quickedit msTransitionEnd.quickedit oTransitionEnd.quickedit';
|
Chris@0
|
14
|
Chris@0
|
15 Drupal.quickedit.util.buildUrl = function (id, urlFormat) {
|
Chris@0
|
16 var parts = id.split('/');
|
Chris@0
|
17 return Drupal.formatString(decodeURIComponent(urlFormat), {
|
Chris@0
|
18 '!entity_type': parts[0],
|
Chris@0
|
19 '!id': parts[1],
|
Chris@0
|
20 '!field_name': parts[2],
|
Chris@0
|
21 '!langcode': parts[3],
|
Chris@0
|
22 '!view_mode': parts[4]
|
Chris@0
|
23 });
|
Chris@0
|
24 };
|
Chris@0
|
25
|
Chris@0
|
26 Drupal.quickedit.util.networkErrorModal = function (title, message) {
|
Chris@0
|
27 var $message = $('<div>' + message + '</div>');
|
Chris@0
|
28 var networkErrorModal = Drupal.dialog($message.get(0), {
|
Chris@0
|
29 title: title,
|
Chris@0
|
30 dialogClass: 'quickedit-network-error',
|
Chris@0
|
31 buttons: [{
|
Chris@0
|
32 text: Drupal.t('OK'),
|
Chris@0
|
33 click: function click() {
|
Chris@0
|
34 networkErrorModal.close();
|
Chris@0
|
35 },
|
Chris@0
|
36
|
Chris@0
|
37 primary: true
|
Chris@0
|
38 }],
|
Chris@0
|
39 create: function create() {
|
Chris@0
|
40 $(this).parent().find('.ui-dialog-titlebar-close').remove();
|
Chris@0
|
41 },
|
Chris@0
|
42 close: function close(event) {
|
Chris@0
|
43 $(event.target).remove();
|
Chris@0
|
44 }
|
Chris@0
|
45 });
|
Chris@0
|
46 networkErrorModal.showModal();
|
Chris@0
|
47 };
|
Chris@0
|
48
|
Chris@0
|
49 Drupal.quickedit.util.form = {
|
Chris@0
|
50 load: function load(options, callback) {
|
Chris@0
|
51 var fieldID = options.fieldID;
|
Chris@0
|
52
|
Chris@0
|
53 var formLoaderAjax = Drupal.ajax({
|
Chris@0
|
54 url: Drupal.quickedit.util.buildUrl(fieldID, Drupal.url('quickedit/form/!entity_type/!id/!field_name/!langcode/!view_mode')),
|
Chris@0
|
55 submit: {
|
Chris@0
|
56 nocssjs: options.nocssjs,
|
Chris@0
|
57 reset: options.reset
|
Chris@0
|
58 },
|
Chris@0
|
59 error: function error(xhr, url) {
|
Chris@0
|
60 var fieldLabel = Drupal.quickedit.metadata.get(fieldID, 'label');
|
Chris@0
|
61 var message = Drupal.t('Could not load the form for <q>@field-label</q>, either due to a website problem or a network connection problem.<br>Please try again.', { '@field-label': fieldLabel });
|
Chris@0
|
62 Drupal.quickedit.util.networkErrorModal(Drupal.t('Network problem!'), message);
|
Chris@0
|
63
|
Chris@0
|
64 var fieldModel = Drupal.quickedit.app.model.get('activeField');
|
Chris@0
|
65 fieldModel.set('state', 'candidate');
|
Chris@0
|
66 }
|
Chris@0
|
67 });
|
Chris@0
|
68
|
Chris@0
|
69 formLoaderAjax.commands.quickeditFieldForm = function (ajax, response, status) {
|
Chris@0
|
70 callback(response.data, ajax);
|
Chris@0
|
71 Drupal.ajax.instances[this.instanceIndex] = null;
|
Chris@0
|
72 };
|
Chris@0
|
73
|
Chris@0
|
74 formLoaderAjax.execute();
|
Chris@0
|
75 },
|
Chris@0
|
76 ajaxifySaving: function ajaxifySaving(options, $submit) {
|
Chris@0
|
77 var settings = {
|
Chris@0
|
78 url: $submit.closest('form').attr('action'),
|
Chris@0
|
79 setClick: true,
|
Chris@0
|
80 event: 'click.quickedit',
|
Chris@0
|
81 progress: false,
|
Chris@0
|
82 submit: {
|
Chris@0
|
83 nocssjs: options.nocssjs,
|
Chris@0
|
84 other_view_modes: options.other_view_modes
|
Chris@0
|
85 },
|
Chris@0
|
86
|
Chris@0
|
87 success: function success(response, status) {
|
Chris@14
|
88 var _this = this;
|
Chris@14
|
89
|
Chris@14
|
90 Object.keys(response || {}).forEach(function (i) {
|
Chris@14
|
91 if (response[i].command && _this.commands[response[i].command]) {
|
Chris@14
|
92 _this.commands[response[i].command](_this, response[i], status);
|
Chris@0
|
93 }
|
Chris@14
|
94 });
|
Chris@0
|
95 },
|
Chris@0
|
96
|
Chris@0
|
97 base: $submit.attr('id'),
|
Chris@0
|
98 element: $submit[0]
|
Chris@0
|
99 };
|
Chris@0
|
100
|
Chris@0
|
101 return Drupal.ajax(settings);
|
Chris@0
|
102 },
|
Chris@0
|
103 unajaxifySaving: function unajaxifySaving(ajax) {
|
Chris@0
|
104 $(ajax.element).off('click.quickedit');
|
Chris@0
|
105 }
|
Chris@0
|
106 };
|
Chris@0
|
107 })(jQuery, Drupal); |