107 lines
3.4 KiB
JavaScript
107 lines
3.4 KiB
JavaScript
/**
|
|
* DO NOT EDIT THIS FILE.
|
|
* See the following change record for more information,
|
|
* https://www.drupal.org/node/2815083
|
|
* @preserve
|
|
**/
|
|
|
|
(function ($, Drupal) {
|
|
Drupal.quickedit.util = Drupal.quickedit.util || {};
|
|
|
|
Drupal.quickedit.util.constants = {};
|
|
|
|
Drupal.quickedit.util.constants.transitionEnd = 'transitionEnd.quickedit webkitTransitionEnd.quickedit transitionend.quickedit msTransitionEnd.quickedit oTransitionEnd.quickedit';
|
|
|
|
Drupal.quickedit.util.buildUrl = function (id, urlFormat) {
|
|
var parts = id.split('/');
|
|
return Drupal.formatString(decodeURIComponent(urlFormat), {
|
|
'!entity_type': parts[0],
|
|
'!id': parts[1],
|
|
'!field_name': parts[2],
|
|
'!langcode': parts[3],
|
|
'!view_mode': parts[4]
|
|
});
|
|
};
|
|
|
|
Drupal.quickedit.util.networkErrorModal = function (title, message) {
|
|
var $message = $('<div>' + message + '</div>');
|
|
var networkErrorModal = Drupal.dialog($message.get(0), {
|
|
title: title,
|
|
dialogClass: 'quickedit-network-error',
|
|
buttons: [{
|
|
text: Drupal.t('OK'),
|
|
click: function click() {
|
|
networkErrorModal.close();
|
|
},
|
|
|
|
primary: true
|
|
}],
|
|
create: function create() {
|
|
$(this).parent().find('.ui-dialog-titlebar-close').remove();
|
|
},
|
|
close: function close(event) {
|
|
$(event.target).remove();
|
|
}
|
|
});
|
|
networkErrorModal.showModal();
|
|
};
|
|
|
|
Drupal.quickedit.util.form = {
|
|
load: function load(options, callback) {
|
|
var fieldID = options.fieldID;
|
|
|
|
var formLoaderAjax = Drupal.ajax({
|
|
url: Drupal.quickedit.util.buildUrl(fieldID, Drupal.url('quickedit/form/!entity_type/!id/!field_name/!langcode/!view_mode')),
|
|
submit: {
|
|
nocssjs: options.nocssjs,
|
|
reset: options.reset
|
|
},
|
|
error: function error(xhr, url) {
|
|
var fieldLabel = Drupal.quickedit.metadata.get(fieldID, 'label');
|
|
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 });
|
|
Drupal.quickedit.util.networkErrorModal(Drupal.t('Network problem!'), message);
|
|
|
|
var fieldModel = Drupal.quickedit.app.model.get('activeField');
|
|
fieldModel.set('state', 'candidate');
|
|
}
|
|
});
|
|
|
|
formLoaderAjax.commands.quickeditFieldForm = function (ajax, response, status) {
|
|
callback(response.data, ajax);
|
|
Drupal.ajax.instances[this.instanceIndex] = null;
|
|
};
|
|
|
|
formLoaderAjax.execute();
|
|
},
|
|
ajaxifySaving: function ajaxifySaving(options, $submit) {
|
|
var settings = {
|
|
url: $submit.closest('form').attr('action'),
|
|
setClick: true,
|
|
event: 'click.quickedit',
|
|
progress: false,
|
|
submit: {
|
|
nocssjs: options.nocssjs,
|
|
other_view_modes: options.other_view_modes
|
|
},
|
|
|
|
success: function success(response, status) {
|
|
var _this = this;
|
|
|
|
Object.keys(response || {}).forEach(function (i) {
|
|
if (response[i].command && _this.commands[response[i].command]) {
|
|
_this.commands[response[i].command](_this, response[i], status);
|
|
}
|
|
});
|
|
},
|
|
|
|
base: $submit.attr('id'),
|
|
element: $submit[0]
|
|
};
|
|
|
|
return Drupal.ajax(settings);
|
|
},
|
|
unajaxifySaving: function unajaxifySaving(ajax) {
|
|
$(ajax.element).off('click.quickedit');
|
|
}
|
|
};
|
|
})(jQuery, Drupal); |