| Current Path : /home/rtorresani/www/vendor/magento/module-advanced-search/view/adminhtml/web/js/ |
| Current File : //home/rtorresani/www/vendor/magento/module-advanced-search/view/adminhtml/web/js/testconnection.js |
/**
* 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 = '',
fieldToCheck = this.options.fieldToCheck || 'success';
element.removeClass('success').addClass('fail');
$.each(JSON.parse(this.options.fieldMapping), function (key, el) {
params[key] = $('#' + el).val();
});
$.ajax({
url: this.options.url,
showLoader: true,
data: params,
headers: this.options.headers || {}
}).done(function (response) {
if (response[fieldToCheck]) {
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;
});