116 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
 | 
						|
/* global FORM_KEY */
 | 
						|
define([
 | 
						|
    'jquery',
 | 
						|
    'mage/apply/main',
 | 
						|
    'mage/backend/notification',
 | 
						|
    'Magento_Ui/js/lib/knockout/bootstrap',
 | 
						|
    'mage/mage',
 | 
						|
    'mage/translate'
 | 
						|
], function ($, mage, notification) {
 | 
						|
    'use strict';
 | 
						|
 | 
						|
    var bootstrap;
 | 
						|
 | 
						|
    $.ajaxSetup({
 | 
						|
        /*
 | 
						|
         * @type {string}
 | 
						|
         */
 | 
						|
        type: 'POST',
 | 
						|
 | 
						|
        /**
 | 
						|
         * Ajax before send callback.
 | 
						|
         *
 | 
						|
         * @param {Object} jqXHR - The jQuery XMLHttpRequest object returned by $.ajax()
 | 
						|
         * @param {Object} settings
 | 
						|
         */
 | 
						|
        beforeSend: function (jqXHR, settings) {
 | 
						|
            var formKey = typeof FORM_KEY !== 'undefined' ? FORM_KEY : null;
 | 
						|
 | 
						|
            if (!settings.url.match(new RegExp('[?&]isAjax=true',''))) {
 | 
						|
                settings.url = settings.url.match(
 | 
						|
                    new RegExp('\\?', 'g')) ?
 | 
						|
                    settings.url + '&isAjax=true' :
 | 
						|
                    settings.url + '?isAjax=true';
 | 
						|
            }
 | 
						|
 | 
						|
            if (!settings.data) {
 | 
						|
                settings.data = {
 | 
						|
                    'form_key': formKey
 | 
						|
                };
 | 
						|
            } else if (typeof settings.data === 'string' &&
 | 
						|
                settings.data.indexOf('form_key=') === -1) {
 | 
						|
                settings.data += '&' + $.param({
 | 
						|
                    'form_key': formKey
 | 
						|
                });
 | 
						|
            } else if ($.isPlainObject(settings.data) && !settings.data['form_key']) {
 | 
						|
                settings.data['form_key'] = formKey;
 | 
						|
            }
 | 
						|
        },
 | 
						|
 | 
						|
        /**
 | 
						|
         * Ajax complete callback.
 | 
						|
         *
 | 
						|
         * @param {Object} jqXHR - The jQuery XMLHttpRequest object returned by $.ajax()
 | 
						|
         */
 | 
						|
        complete: function (jqXHR) {
 | 
						|
            var jsonObject;
 | 
						|
 | 
						|
            if (jqXHR.readyState === 4) {
 | 
						|
                try {
 | 
						|
                    jsonObject = JSON.parse(jqXHR.responseText);
 | 
						|
 | 
						|
                    if (jsonObject.ajaxExpired && jsonObject.ajaxRedirect) { //eslint-disable-line max-depth
 | 
						|
                        window.location.replace(jsonObject.ajaxRedirect);
 | 
						|
                    }
 | 
						|
                } catch (e) {}
 | 
						|
            }
 | 
						|
        },
 | 
						|
 | 
						|
        /**
 | 
						|
         * Error callback.
 | 
						|
         */
 | 
						|
        error: function () {
 | 
						|
            $('body').notification('clear')
 | 
						|
                .notification('add', {
 | 
						|
                    error: true,
 | 
						|
                    message: $.mage.__(
 | 
						|
                        'A technical problem with the server created an error. ' +
 | 
						|
                        'Try again to continue what you were doing. If the problem persists, try again later.'
 | 
						|
                    ),
 | 
						|
 | 
						|
                    /**
 | 
						|
                     * @param {String} message
 | 
						|
                     */
 | 
						|
                    insertMethod: function (message) {
 | 
						|
                        var $wrapper = $('<div></div>').html(message);
 | 
						|
 | 
						|
                        $('.page-main-actions').after($wrapper);
 | 
						|
                    }
 | 
						|
                });
 | 
						|
        }
 | 
						|
    });
 | 
						|
 | 
						|
    /**
 | 
						|
     * Bootstrap application.
 | 
						|
     */
 | 
						|
    bootstrap = function () {
 | 
						|
        /**
 | 
						|
         * Init all components defined via data-mage-init attribute
 | 
						|
         * and subscribe init action on contentUpdated event
 | 
						|
         */
 | 
						|
        mage.apply();
 | 
						|
 | 
						|
        /*
 | 
						|
         * Initialization of notification widget
 | 
						|
         */
 | 
						|
        notification({}, $('body'));
 | 
						|
    };
 | 
						|
 | 
						|
    $(bootstrap);
 | 
						|
});
 |