|
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
-
- define([
- 'jquery',
- 'domReady!'
- ], function ($) {
- 'use strict';
-
- /* Form with auto submit feature */
- $('form[data-auto-submit="true"]').trigger('submit');
-
- //Add form keys.
- $(document).on(
- 'submit',
- 'form',
- function (e) {
- var formKeyElement,
- existingFormKeyElement,
- isKeyPresentInForm,
- isActionExternal,
- baseUrl = window.BASE_URL,
- form = $(e.target),
- formKey = $('input[name="form_key"]').val(),
- formMethod = form.prop('method'),
- formAction = form.prop('action');
-
- isActionExternal = formAction.indexOf(baseUrl) !== 0;
-
- existingFormKeyElement = form.find('input[name="form_key"]');
- isKeyPresentInForm = existingFormKeyElement.length;
-
- /* Verifies that existing auto-added form key is a direct form child element,
- protection from a case when one form contains another form. */
- if (isKeyPresentInForm && existingFormKeyElement.attr('auto-added-form-key') === '1') {
- isKeyPresentInForm = form.find('> input[name="form_key"]').length;
- }
-
- if (formKey && !isKeyPresentInForm && !isActionExternal && formMethod !== 'get') {
- formKeyElement = document.createElement('input');
- formKeyElement.setAttribute('type', 'hidden');
- formKeyElement.setAttribute('name', 'form_key');
- formKeyElement.setAttribute('value', formKey);
- formKeyElement.setAttribute('auto-added-form-key', '1');
- form.get(0).appendChild(formKeyElement);
- }
- }
- );
- });
|