63 lines
1.8 KiB
JavaScript
Executable File
63 lines
1.8 KiB
JavaScript
Executable File
define([
|
|
'jquery',
|
|
'Magento_Ui/js/modal/alert',
|
|
], function ($, alert) {
|
|
'use strict';
|
|
|
|
$.widget('mage.connectionchecker', {
|
|
options: {
|
|
successText: '',
|
|
failedText: '',
|
|
url: '',
|
|
elementId: '',
|
|
fieldMapping: ''
|
|
},
|
|
|
|
_create: function () {
|
|
this._on({
|
|
'click': $.proxy(this._ping, this)
|
|
});
|
|
},
|
|
|
|
_ping: function () {
|
|
var buttonTitle = this.options.failedText,
|
|
element = $('#' + this.options.elementId),
|
|
self = this;
|
|
element.removeClass('success').addClass('fail');
|
|
|
|
$.ajax({
|
|
url: self.options.url,
|
|
showLoader: true,
|
|
data: self._collectParams()
|
|
}).done(function (response) {
|
|
if (response.success) {
|
|
element.removeClass('fail').addClass('success');
|
|
buttonTitle = self.options.successText;
|
|
} else {
|
|
var error = response.errorMessage;
|
|
if (error) {
|
|
alert({
|
|
content: error
|
|
});
|
|
}
|
|
}
|
|
}).always(function () {
|
|
if (buttonTitle) {
|
|
$('#' + self.options.elementId + '_result').text(buttonTitle);
|
|
}
|
|
});
|
|
},
|
|
|
|
_collectParams: function () {
|
|
var params = {};
|
|
$.each(this.options.fieldMapping, function (key, el) {
|
|
params[key] = $('#amasty_elastic_connection_' + el).val();
|
|
});
|
|
|
|
return params;
|
|
}
|
|
});
|
|
|
|
return $.mage.connectionchecker;
|
|
});
|