Files
drmaterac.pl/iadmin/themes/default/js/bundle/admin_parameters/performancePage.js
2025-01-06 20:47:25 +01:00

120 lines
4.1 KiB
JavaScript

/**
* 2007-2018 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/OSL-3.0
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2018 PrestaShop SA
* @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
function PerformancePage(addServerUrl, removeServerUrl, testServerUrl) {
this.addServerUrl = addServerUrl;
this.removeServerUrl = removeServerUrl;
this.testServerUrl = testServerUrl;
this.getAddServerUrl = function() {
return this.addServerUrl;
};
this.getRemoveServerlUrl = function() {
return this.removeServerUrl;
};
this.getTestServerUrl = function() {
return this.testServerUrl;
};
this.getFormValues = function() {
var serverIpInput = document.getElementById('form_add_memcache_server_memcache_ip');
var serverPortInput = document.getElementById('form_add_memcache_server_memcache_port');
var serverWeightInput = document.getElementById('form_add_memcache_server_memcache_weight');
return {
'server_ip': serverIpInput.value,
'server_port': serverPortInput.value,
'server_weight': serverWeightInput.value,
};
};
this.createRow = function(params) {
var serversTable = document.getElementById('servers-table');
var newRow = document.createElement('tr');
newRow.setAttribute('id', 'row_'+ params.id);
newRow.innerHTML =
'<td>'+ params.id +'</td>\n' +
'<td>'+ params.server_ip +'</td>\n' +
'<td>'+ params.server_port +'</td>\n' +
'<td>'+ params.server_weight +'</td>\n' +
'<td>\n' +
' <a class="btn btn-default" href="#" onclick="app.removeServer('+ params.id +');"><i class="material-icons">remove_circle</i> Remove</a>\n' +
'</td>\n';
serversTable.appendChild(newRow);
};
this.addServer = function() {
var app = this;
this.send(this.getAddServerUrl(), 'POST', this.getFormValues(), function(results) {
if (!results.hasOwnProperty('error')) {
app.createRow(results);
}
});
};
this.removeServer = function(serverId, removeMsg) {
var removeOk = confirm(removeMsg);
if (removeOk) {
this.send(this.getRemoveServerlUrl(), 'DELETE', {'server_id': serverId}, function(results) {
if (results === undefined) {
var row = document.getElementById('row_'+serverId);
row.parentNode.removeChild(row);
}
});
}
};
this.testServer = function() {
var app = this;
this.send(this.getTestServerUrl(), 'GET', this.getFormValues(), function(results) {
if (results.hasOwnProperty('error') || results.test === false) {
app.addClass('is-invalid');
return;
}
app.addClass('is-valid');
});
};
this.addClass = function(className) {
var serverFormInputs = document.querySelectorAll('#server-form input[type=text]');
for (var i = 0; i < serverFormInputs.length; i++) {
serverFormInputs[i].className = 'form-control '+ className;
}
}
/* global $ */
this.send = function(url, method, params, callback) {
return $.ajax({
url: url,
method: method,
data: params
}).done(callback);
};
}