![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/pub/static/frontend/Magento/blank/en_US/Magento_Ui/js/form/ |
/** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ 'jquery', 'underscore', 'mageUtils', 'uiClass' ], function ($, _, utils, Class) { 'use strict'; /** * Before save validate request. * * @param {Object} data * @param {String} url * @param {String} selectorPrefix * @param {String} messagesClass * @returns {*} */ function beforeSave(data, url, selectorPrefix, messagesClass) { var save = $.Deferred(); data = utils.serialize(utils.filterFormData(data)); data['form_key'] = window.FORM_KEY; if (!url || url === 'undefined') { return save.resolve(); } $('body').trigger('processStart'); $.ajax({ url: url, data: data, /** * Success callback. * @param {Object} resp * @returns {Boolean} */ success: function (resp) { if (!resp.error) { save.resolve(); return true; } $('body').notification('clear'); $.each(resp.messages || [resp.message] || [], function (key, message) { $('body').notification('add', { error: resp.error, message: message, /** * Insert method. * * @param {String} msg */ insertMethod: function (msg) { var $wrapper = $('<div></div>').addClass(messagesClass).html(msg); $('.page-main-actions', selectorPrefix).after($wrapper); $('html, body').animate({ scrollTop: $('.page-main-actions', selectorPrefix).offset().top }); } }); }); }, /** * Complete callback. */ complete: function () { $('body').trigger('processStop'); } }); return save.promise(); } return Class.extend({ /** * Assembles data and submits it using 'utils.submit' method */ save: function (data, options) { var url = this.urls.beforeSave, save = this._save.bind(this, data, options); beforeSave(data, url, this.selectorPrefix, this.messagesClass).then(save); return this; }, /** * Save data. * * @param {Object} data * @param {Object} options * @returns {Object} * @private */ _save: function (data, options) { var url = this.urls.save; $('body').trigger('processStart'); options = options || {}; if (!options.redirect) { url += 'back/edit'; } if (options.ajaxSave) { utils.ajaxSubmit({ url: url, data: data }, options); $('body').trigger('processStop'); return this; } utils.submit({ url: url, data: data }, options.attributes); return this; } }); });