Mercurial > hg > isophonics-drupal-site
comparison core/modules/quickedit/js/util.js @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 /** | |
2 * DO NOT EDIT THIS FILE. | |
3 * See the following change record for more information, | |
4 * https://www.drupal.org/node/2815083 | |
5 * @preserve | |
6 **/ | |
7 | |
8 (function ($, Drupal) { | |
9 Drupal.quickedit.util = Drupal.quickedit.util || {}; | |
10 | |
11 Drupal.quickedit.util.constants = {}; | |
12 | |
13 Drupal.quickedit.util.constants.transitionEnd = 'transitionEnd.quickedit webkitTransitionEnd.quickedit transitionend.quickedit msTransitionEnd.quickedit oTransitionEnd.quickedit'; | |
14 | |
15 Drupal.quickedit.util.buildUrl = function (id, urlFormat) { | |
16 var parts = id.split('/'); | |
17 return Drupal.formatString(decodeURIComponent(urlFormat), { | |
18 '!entity_type': parts[0], | |
19 '!id': parts[1], | |
20 '!field_name': parts[2], | |
21 '!langcode': parts[3], | |
22 '!view_mode': parts[4] | |
23 }); | |
24 }; | |
25 | |
26 Drupal.quickedit.util.networkErrorModal = function (title, message) { | |
27 var $message = $('<div>' + message + '</div>'); | |
28 var networkErrorModal = Drupal.dialog($message.get(0), { | |
29 title: title, | |
30 dialogClass: 'quickedit-network-error', | |
31 buttons: [{ | |
32 text: Drupal.t('OK'), | |
33 click: function click() { | |
34 networkErrorModal.close(); | |
35 }, | |
36 | |
37 primary: true | |
38 }], | |
39 create: function create() { | |
40 $(this).parent().find('.ui-dialog-titlebar-close').remove(); | |
41 }, | |
42 close: function close(event) { | |
43 $(event.target).remove(); | |
44 } | |
45 }); | |
46 networkErrorModal.showModal(); | |
47 }; | |
48 | |
49 Drupal.quickedit.util.form = { | |
50 load: function load(options, callback) { | |
51 var fieldID = options.fieldID; | |
52 | |
53 var formLoaderAjax = Drupal.ajax({ | |
54 url: Drupal.quickedit.util.buildUrl(fieldID, Drupal.url('quickedit/form/!entity_type/!id/!field_name/!langcode/!view_mode')), | |
55 submit: { | |
56 nocssjs: options.nocssjs, | |
57 reset: options.reset | |
58 }, | |
59 error: function error(xhr, url) { | |
60 var fieldLabel = Drupal.quickedit.metadata.get(fieldID, 'label'); | |
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 }); | |
62 Drupal.quickedit.util.networkErrorModal(Drupal.t('Network problem!'), message); | |
63 | |
64 var fieldModel = Drupal.quickedit.app.model.get('activeField'); | |
65 fieldModel.set('state', 'candidate'); | |
66 } | |
67 }); | |
68 | |
69 formLoaderAjax.commands.quickeditFieldForm = function (ajax, response, status) { | |
70 callback(response.data, ajax); | |
71 Drupal.ajax.instances[this.instanceIndex] = null; | |
72 }; | |
73 | |
74 formLoaderAjax.execute(); | |
75 }, | |
76 ajaxifySaving: function ajaxifySaving(options, $submit) { | |
77 var settings = { | |
78 url: $submit.closest('form').attr('action'), | |
79 setClick: true, | |
80 event: 'click.quickedit', | |
81 progress: false, | |
82 submit: { | |
83 nocssjs: options.nocssjs, | |
84 other_view_modes: options.other_view_modes | |
85 }, | |
86 | |
87 success: function success(response, status) { | |
88 for (var i in response) { | |
89 if (response.hasOwnProperty(i) && response[i].command && this.commands[response[i].command]) { | |
90 this.commands[response[i].command](this, response[i], status); | |
91 } | |
92 } | |
93 }, | |
94 | |
95 base: $submit.attr('id'), | |
96 element: $submit[0] | |
97 }; | |
98 | |
99 return Drupal.ajax(settings); | |
100 }, | |
101 unajaxifySaving: function unajaxifySaving(ajax) { | |
102 $(ajax.element).off('click.quickedit'); | |
103 } | |
104 }; | |
105 })(jQuery, Drupal); |