12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- /**
- * @api
- */
- define([
- 'jquery',
- 'Magento_Ui/js/modal/alert',
- 'jquery/ui'
- ], function ($, alert) {
- 'use strict';
- $.widget('mage.testConnection', {
- options: {
- url: '',
- elementId: '',
- successText: '',
- failedText: '',
- fieldMapping: ''
- },
- /**
- * Bind handlers to events
- */
- _create: function () {
- this._on({
- 'click': $.proxy(this._connect, this)
- });
- },
- /**
- * Method triggers an AJAX request to check search engine connection
- * @private
- */
- _connect: function () {
- var result = this.options.failedText,
- element = $('#' + this.options.elementId),
- self = this,
- params = {},
- msg = '';
- element.removeClass('success').addClass('fail');
- $.each($.parseJSON(this.options.fieldMapping), function (key, el) {
- params[key] = $('#' + el).val();
- });
- $.ajax({
- url: this.options.url,
- showLoader: true,
- data: params
- }).done(function (response) {
- if (response.success) {
- element.removeClass('fail').addClass('success');
- result = self.options.successText;
- } else {
- msg = response.errorMessage;
- if (msg) {
- alert({
- content: msg
- });
- }
- }
- }).always(function () {
- $('#' + self.options.elementId + '_result').text(result);
- });
- }
- });
- return $.mage.testConnection;
- });
|