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.quickedit.util = Drupal.quickedit.util || {};
Chris@0:
Chris@0: Drupal.quickedit.util.constants = {};
Chris@0:
Chris@0: Drupal.quickedit.util.constants.transitionEnd = 'transitionEnd.quickedit webkitTransitionEnd.quickedit transitionend.quickedit msTransitionEnd.quickedit oTransitionEnd.quickedit';
Chris@0:
Chris@0: Drupal.quickedit.util.buildUrl = function (id, urlFormat) {
Chris@0: var parts = id.split('/');
Chris@0: return Drupal.formatString(decodeURIComponent(urlFormat), {
Chris@0: '!entity_type': parts[0],
Chris@0: '!id': parts[1],
Chris@0: '!field_name': parts[2],
Chris@0: '!langcode': parts[3],
Chris@0: '!view_mode': parts[4]
Chris@0: });
Chris@0: };
Chris@0:
Chris@0: Drupal.quickedit.util.networkErrorModal = function (title, message) {
Chris@0: var $message = $('
' + message + '
');
Chris@0: var networkErrorModal = Drupal.dialog($message.get(0), {
Chris@0: title: title,
Chris@0: dialogClass: 'quickedit-network-error',
Chris@0: buttons: [{
Chris@0: text: Drupal.t('OK'),
Chris@0: click: function click() {
Chris@0: networkErrorModal.close();
Chris@0: },
Chris@0:
Chris@0: primary: true
Chris@0: }],
Chris@0: create: function create() {
Chris@0: $(this).parent().find('.ui-dialog-titlebar-close').remove();
Chris@0: },
Chris@0: close: function close(event) {
Chris@0: $(event.target).remove();
Chris@0: }
Chris@0: });
Chris@0: networkErrorModal.showModal();
Chris@0: };
Chris@0:
Chris@0: Drupal.quickedit.util.form = {
Chris@0: load: function load(options, callback) {
Chris@0: var fieldID = options.fieldID;
Chris@0:
Chris@0: var formLoaderAjax = Drupal.ajax({
Chris@0: url: Drupal.quickedit.util.buildUrl(fieldID, Drupal.url('quickedit/form/!entity_type/!id/!field_name/!langcode/!view_mode')),
Chris@0: submit: {
Chris@0: nocssjs: options.nocssjs,
Chris@0: reset: options.reset
Chris@0: },
Chris@0: error: function error(xhr, url) {
Chris@0: var fieldLabel = Drupal.quickedit.metadata.get(fieldID, 'label');
Chris@0: var message = Drupal.t('Could not load the form for @field-label
, either due to a website problem or a network connection problem.
Please try again.', { '@field-label': fieldLabel });
Chris@0: Drupal.quickedit.util.networkErrorModal(Drupal.t('Network problem!'), message);
Chris@0:
Chris@0: var fieldModel = Drupal.quickedit.app.model.get('activeField');
Chris@0: fieldModel.set('state', 'candidate');
Chris@0: }
Chris@0: });
Chris@0:
Chris@0: formLoaderAjax.commands.quickeditFieldForm = function (ajax, response, status) {
Chris@0: callback(response.data, ajax);
Chris@0: Drupal.ajax.instances[this.instanceIndex] = null;
Chris@0: };
Chris@0:
Chris@0: formLoaderAjax.execute();
Chris@0: },
Chris@0: ajaxifySaving: function ajaxifySaving(options, $submit) {
Chris@0: var settings = {
Chris@0: url: $submit.closest('form').attr('action'),
Chris@0: setClick: true,
Chris@0: event: 'click.quickedit',
Chris@0: progress: false,
Chris@0: submit: {
Chris@0: nocssjs: options.nocssjs,
Chris@0: other_view_modes: options.other_view_modes
Chris@0: },
Chris@0:
Chris@0: success: function success(response, status) {
Chris@14: var _this = this;
Chris@14:
Chris@14: Object.keys(response || {}).forEach(function (i) {
Chris@14: if (response[i].command && _this.commands[response[i].command]) {
Chris@14: _this.commands[response[i].command](_this, response[i], status);
Chris@0: }
Chris@14: });
Chris@0: },
Chris@0:
Chris@0: base: $submit.attr('id'),
Chris@0: element: $submit[0]
Chris@0: };
Chris@0:
Chris@0: return Drupal.ajax(settings);
Chris@0: },
Chris@0: unajaxifySaving: function unajaxifySaving(ajax) {
Chris@0: $(ajax.element).off('click.quickedit');
Chris@0: }
Chris@0: };
Chris@0: })(jQuery, Drupal);