annotate core/modules/quickedit/js/util.js @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 1fec387a4317
children
rev   line source
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);