File: /python/moda/public_html/tech/old/assets/js/AdminConfigServersInterface.js
$(document).ready(function(){
$("#inputOverridePort").click(function() {
if ($("#inputOverridePort").prop("checked")) {
$("#inputPort").prop("disabled", false);
} else {
$("#inputPort").prop("disabled", true);
if ($("#inputSecure").prop("checked")) {
$("#inputPort").val(defaultSSLPort);
} else {
$("#inputPort").val(defaultNonSSLPort);
}
}
});
$("#inputSecure").click(function() {
if (!$("#inputOverridePort").prop("checked")) {
if ($("#inputSecure").prop("checked")) {
$("#inputPort").val(defaultSSLPort);
} else {
$("#inputPort").val(defaultNonSSLPort);
}
}
});
$("#preAddForm").find("input,textarea,select").on("keyup change", function(){
var copyValue = $(this).val();
var targetField = $(this).data("related-id");
if (targetField == "inputHostname") {
if (checkIfValidIP(copyValue)) {
targetField = 'inputPrimaryIp';
$('#inputHostname').val('');
} else {
$('#inputPrimaryIp').val('');
}
}
$("#" + targetField).val(copyValue);
});
$("#inputServerType,#addType").change(function() {
WHMCS.http.jqClient.post(
"configservers.php",
'token=' + csrfToken + '&action=getmoduleinfo&type=' + $(this).val(),
function(data) {
$(".connection-test-result").fadeOut();
if (data.cantestconnection=="1") {
connectionTestSupported = true;
$("#connectionTestBtn").fadeIn();
$("#newTestConn").show();
$("#newContAny").show();
$("#newCont").hide();
} else {
$("#connectionTestBtn").fadeOut();
$("#newContAny").hide();
connectionTestSupported = false;
$("#newTestConn").hide();
$("#newCont").removeClass("hidden").show();
}
if (data.supportsadminsso=="1") {
$("#containerAccessControl").fadeIn();
} else {
$("#containerAccessControl").fadeOut();
}
defaultSSLPort = data.defaultsslport;
defaultNonSSLPort = data.defaultnonsslport;
if (!defaultSSLPort && !defaultNonSSLPort) {
$("#trPort").fadeOut();
} else {
$("#trPort").fadeIn();
}
if (!$("#inputOverridePort").prop("checked")) {
if ($("#inputSecure").prop("checked")) {
$("#inputPort").val(defaultSSLPort);
} else {
$("#inputPort").val(defaultNonSSLPort);
}
}
var accessHash = $("#serverHash"),
apiToken = $("#apiToken");
if (typeof data.apiTokens !== "undefined" && data.apiTokens === true) {
var currentAccessHash = accessHash.val();
if (accessHash.hasClass('hidden') === false && (!currentAccessHash || currentAccessHash.indexOf("\n") < 0)) {
apiToken.removeClass('hidden').prop('disabled', false);
apiToken.val(currentAccessHash);
$("#newToken").removeClass('hidden').prop('disabled', false)
.val(currentAccessHash);
accessHash.addClass('hidden').prop('disabled', true);
$("#newHash").addClass('hidden').prop('disabled', true);
$("span.access-hash").hide();
$("span.api-key").removeClass('hidden').show();
}
} else {
if (accessHash.hasClass('hidden')) {
var currentApiToken = apiToken.val();
accessHash.removeClass('hidden').prop('disabled', false);
accessHash.text(currentApiToken);
$("#newHash").removeClass('hidden').prop('disabled', false)
.text(currentApiToken);
apiToken.addClass('hidden').prop('disabled', true);
$("#newToken").addClass('hidden').prop('disabled', true);
$("span.api-key").hide();
$("span.access-hash").removeClass('hidden').show();
}
}
},
"json"
);
});
$("#addType").change();
$("#connectionTestBtn").click(function() {
$(".alert.connection-test-result").removeClass("alert-success")
.removeClass("alert-danger").addClass("alert-grey")
.html($("#newServerWizardConnecting").html())
.hide().removeClass("hidden").fadeIn();
WHMCS.http.jqClient.jsonPost({
url: "configservers.php",
data: $("#frmServerConfig").serialize() + '&action=testconnection',
success: function(data) {
if (data.success) {
// growl success
var values = data.autoPopulateValues,
inputName = $("#inputName"),
inputHostname = $("#inputHostname"),
inputPrimaryIp = $("#inputPrimaryIp"),
inputAssignedIps = $("#assignedIps");
if (values.name && inputName.val() == "") {
inputName.val(values.name);
}
if (values.hostname && inputHostname.val() == "") {
inputHostname.val(values.hostname);
}
if (values.primaryIp && inputPrimaryIp.val() == "") {
inputPrimaryIp.val(values.primaryIp);
}
$.each(values.nameservers, function(index, value) {
index = index + 1;
var input = $("input[name='nameserver" + index + "']");
if (input.val() == "") {
input.val(value);
}
});
$(".alert.connection-test-result").removeClass("alert-grey").addClass("alert-success")
.html($("#newServerWizardSuccess").html());
$("#newServerWizardSuccess").removeClass("hidden").show();
$("#newContAny").click();
} else {
$(".alert.connection-test-result").removeClass("alert-grey").addClass("alert-danger")
.html(data.errorMsg);
$("#newServerWizardSuccess").addClass("hidden");
}
},
always: function() {
$("#newContAny").removeAttr("disabled");
}
});
});
$("#newTestConn").click(function(e) {
$("#connectionTestBtn").click();
});
$("#newCont,#newContAny").click(function(e) {
if (!$("#frmServerConfig").is(":visible")) {
$("#preAddForm").slideUp("fast");
$("#frmServerConfig").hide()
.removeClass("hidden")
.slideDown("fast");
}
});
$("#advServerAdd").click(function(e) {
e.preventDefault();
$("#preAddForm").hide();
$("#frmServerConfig").removeClass("hidden").show();
});
$("#serveradd").click(function () {
$("#serverslist option:selected").appendTo("#selectedservers");
return false;
});
$("#serverrem").click(function () {
$("#selectedservers option:selected").appendTo("#serverslist");
return false;
});
$('#btnRefreshAllData').on('click', function (e) {
e.preventDefault();
if ($(this).hasClass('disabled')) {
return;
}
var serverRows = $('.refresh-server-item').not('.disabled');
refreshingAccounts = serverRows.length;
if (refreshingAccounts === 0) {
return;
}
$(this).addClass('disabled').prop('disabled', true).find('i').addClass('fa-spin');
serverRows.each(function(index) {
$(this).click();
});
});
$('.refresh-server-item').on('click', function (e) {
e.preventDefault();
if ($(this).hasClass('disabled')) {
return;
}
var serverId = $(this).data('server-id'),
faTag = $(this).find('i');
if (typeof serverId === "undefined" || serverId === 0) {
return;
}
faTag.addClass('fa-spin')
.closest('.btn')
.prop('disabled', true)
.addClass('disabled');
/**
* Ajax Call
*/
WHMCS.http.jqClient.jsonPost({
url: WHMCS.adminUtils.getAdminRouteUrl('/setup/servers/meta/refresh'),
data: {
id: serverId,
token: csrfToken
},
success: function(response) {
faTag.closest('tr')
.find('.remote-meta-data')
.html(response.metaData);
faTag.closest('tr')
.find('.server-usage-count')
.html(response.numAccounts);
},
error: function(error) {
jQuery.growl.warning(
{
title: error.title,
message: error.message
}
);
},
always: function () {
faTag.removeClass('fa-spin')
.closest('.btn')
.prop('disabled', false)
.removeClass('disabled');
refreshingAccounts--;
if (refreshingAccounts === 0) {
$('#btnRefreshAllData')
.prop('disabled', false)
.removeClass('disabled').find('i').removeClass('fa-spin');
}
}
});
});
$('.force-meta-refresh').each(function (index) {
$(this).click();
}) ;
});
var refreshingAccounts = 0;
function hideAccessControl() {
$(".trAccessControl").fadeOut();
}
function showAccessControl() {
$(".trAccessControl").fadeIn();
}
function checkIfValidIP(str) {
const regexExpIp4 = /^([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$/;
const regexExpIp6 = /^((?:[0-9A-Fa-f]{1,4}))((?::[0-9A-Fa-f]{1,4}))*::((?:[0-9A-Fa-f]{1,4}))((?::[0-9A-Fa-f]{1,4}))*|((?:[0-9A-Fa-f]{1,4}))((?::[0-9A-Fa-f]{1,4})){7}$/;
return (regexExpIp4.test(str) || regexExpIp6.test(str));
}