Files
haproxy-wi/app/static/js/overview.js
Aidaho 9c5bc5ca4b v7.3.1.0: Refactor error handling and improve README.md readability
The error handling has been refactored in the Roxywi overview and routes files to raise and return more comprehensive exceptions. Unnecessary commented out JSON parsing code in the service installation file has been removed for better code clarity. Aside from these, various minor grammar and formatting fixes have been made to the README.md to improve readability.
2024-06-16 12:27:47 +03:00

582 lines
16 KiB
JavaScript

let cur_url = window.location.href.split('/app/').pop();
cur_url = cur_url.split('/');
function showHapservers(serv, hostnamea, service) {
let i;
for (i = 0; i < serv.length; i++) {
showHapserversCallBack(serv[i], hostnamea[i], service)
}
}
function showHapserversCallBack(serv, hostnamea, service) {
$.ajax( {
url: "/app/service/" + service + "/" + serv + "/last-edit",
beforeSend: function() {
$("#edit_date_"+hostnamea).html('<img class="loading_small_haproxyservers" src="/app/static/images/loading.gif" />');
},
type: "GET",
success: function( data ) {
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
if (data.indexOf('ls: cannot access') != '-1') {
$("#edit_date_" + hostnamea).empty();
$("#edit_date_" + hostnamea).html();
} else {
$("#edit_date_" + hostnamea).empty();
$("#edit_date_" + hostnamea).html(data);
}
}
}
} );
}
function overviewHapserverBackends(serv, hostnamea, service) {
$.ajax( {
url: "/app/service/" + service + "/backends/" + serv[0],
beforeSend: function() {
$("#top-"+hostnamea).html('<img class="loading_small" style="padding-left: 45%;" src="/app/static/images/loading.gif" />');
},
success: function( data ) {
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
$("#top-" + hostnamea).empty();
$("#top-" + hostnamea).html(data);
}
}
} );
}
function showOverview(serv, hostnamea) {
showOverviewHapWI();
showUsersOverview();
let i;
for (i = 0; i < serv.length; i++) {
showOverviewCallBack(serv[i], hostnamea[i])
}
showSubOverview();
showServicesOverview();
updatingCpuRamCharts();
}
function showOverviewCallBack(serv, hostnamea) {
$.ajax( {
url: "/app/overview/server/"+serv,
beforeSend: function() {
$("#"+hostnamea).html('<img class="loading_small" src="/app/static/images/loading.gif" />');
},
type: "GET",
success: function( data ) {
if (data.indexOf('error:') != '-1') {
toastr.error(data);
$("#"+hostnamea).html("");
} else {
$("#" + hostnamea).empty();
$("#" + hostnamea).html(data);
}
}
} );
}
function showServicesOverview() {
$.ajax( {
url: "/app/overview/services",
beforeSend: function() {
$("#services_ovw").html('<img class="loading_small_bin_bout" style="padding-left: 100%;padding-top: 40px;padding-bottom: 40px;" src="/app/static/images/loading.gif" />');
},
type: "GET",
success: function( data ) {
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
$("#services_ovw").empty();
$("#services_ovw").html(data);
}
}
} );
}
function showOverviewServer(name, ip, id, service) {
$.ajax( {
url: "/app/service/cpu-ram-metrics/" + ip + "/" + id + "/" + name + "/" + service,
success: function( data ) {
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
$("#ajax-server-" + id).empty();
$("#ajax-server-" + id).css('display', 'block');
$("#ajax-server-" + id).css('background-color', '#fbfbfb');
$("#ajax-server-" + id).css('border', '1px solid #A4C7F5');
$(".ajax-server").css('display', 'block');
$(".div-server").css('clear', 'both');
$(".div-pannel").css('clear', 'both');
$(".div-pannel").css('display', 'block');
$(".div-pannel").css('padding-top', '10px');
$(".div-pannel").css('height', '70px');
$("#div-pannel-" + id).insertBefore('#up-pannel')
$("#ajax-server-" + id).html(data);
$.getScript(awesome)
getChartDataHapWiRam()
getChartDataHapWiCpu()
}
}
} );
}
function ajaxActionServers(action, id, service) {
$.ajax( {
url: "/app/service/action/" + service + "/" + id + "/" + action,
success: function( data ) {
data = data.replace(/\s+/g,' ');
if( data == 'Bad config, check please ' ) {
toastr.error(data);
} else {
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
if (data.indexOf('warning: ') != '-1') {
toastr.warning(data);
} else {
location.reload();
}
}
}
},
error: function(){
alert(w.data_error);
}
} );
}
$( function() {
try {
if ((cur_url[0] == 'service' && cur_url[2] != '') || cur_url[0] == '') {
ChartsIntervalId = setInterval(updatingCpuRamCharts, 30000);
$(window).focus(function () {
ChartsIntervalId = setInterval(updatingCpuRamCharts, 30000);
});
$(window).blur(function () {
clearInterval(ChartsIntervalId);
});
}
} catch (e) {
console.log(e);
}
try {
if (cur_url[0] == '') {
UsersShowIntervalId = setInterval(showUsersOverview, 600000);
$(window).focus(function () {
UsersShowIntervalId = setInterval(showUsersOverview, 600000);
});
$(window).blur(function () {
clearInterval(UsersShowIntervalId);
});
}
} catch (e) {
console.log(e);
}
$( "#show-all-users" ).click( function() {
$(".show-users").show("fast");
$("#hide-all-users").css("display", "block");
$("#show-all-users").css("display", "none");
});
$("#hide-all-users").click(function() {
$(".show-users").hide("fast");
$("#hide-all-users").css("display", "none");
$("#show-all-users").css("display", "block");
});
$( "#show-all-groups" ).click( function() {
$(".show-groups").show("fast");
$("#hide-all-groups").css("display", "block");
$("#show-all-groups").css("display", "none");
});
$( "#hide-all-groups" ).click( function() {
$(".show-groups").hide("fast");
$("#hide-all-groups").css("display", "none");
$("#show-all-groups").css("display", "block");
});
$( "#show-all-haproxy-wi-log" ).click( function() {
$(".show-haproxy-wi-log").show("fast");
$("#hide-all-haproxy-wi-log").css("display", "block");
$("#show-all-haproxy-wi-log").css("display", "none");
});
$( "#hide-all-haproxy-wi-log" ).click( function() {
$(".show-haproxy-wi-log").hide("fast");
$("#hide-all-haproxy-wi-log").css("display", "none");
$("#show-all-haproxy-wi-log").css("display", "block");
});
if (cur_url[0] == "" || cur_url[0] == "waf" || cur_url[0] == "metrics") {
$('#secIntervals').css('display', 'none');
}
$('#apply_close').click( function() {
$("#apply").css('display', 'none');
localStorage.removeItem('restart');
});
$( ".server-act-links" ).change(function() {
let id = $(this).attr('id').split('-');
if (cur_url[0] != 'portscanner') {
try {
let service_name = id[2]
} catch (err) {
let service_name = 'haproxy'
}
updateHapWIServer(id[1], service_name)
}
});
});
function confirmAjaxAction(action, service, id) {
let action_word = translate_div.attr('data-'+action);
$( "#dialog-confirm" ).dialog({
resizable: false,
height: "auto",
width: 400,
modal: true,
title: action_word + " " + id + "?",
buttons: [{
text: action_word,
click: function () {
$(this).dialog("close");
if (service == "haproxy") {
ajaxActionServers(action, id, service);
if (action == "restart" || action == "reload") {
if (localStorage.getItem('restart')) {
localStorage.removeItem('restart');
$("#apply").css('display', 'none');
}
}
} else if (service == "waf") {
ajaxActionServers(action, id, 'waf_haproxy');
} else if (service == "nginx") {
ajaxActionServers(action, id, service);
} else if (service == "keepalived") {
ajaxActionServers(action, id, service);
} else if (service == "apache") {
ajaxActionServers(action, id, service);
} else if (service == "waf_nginx") {
ajaxActionServers(action, id, service);
}
}
}, {
text: cancel_word,
click: function() {
$( this ).dialog( "close" );
}
}]
});
}
function updateHapWIServer(id, service_name) {
let alert_en = 0;
let metrics = 0;
let active = 0;
if ($('#alert-' + id).is(':checked')) {
alert_en = '1';
}
if ($('#metrics-' + id).is(':checked')) {
metrics = '1';
}
if ($('#active-' + id).is(':checked')) {
active = '1';
}
$.ajax({
url: "/app/service/" + service_name + "/tools/update",
data: {
server_id: id,
name: $('#server-name-' + id).val(),
metrics: metrics,
alert_en: alert_en,
active: active,
token: $('#token').val()
},
type: "POST",
success: function (data) {
data = data.replace(/\s+/g, ' ');
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
toastr.clear();
$("#server-" + id + "-" + service_name).addClass("update", 1000);
setTimeout(function () {
$("#server-" + id + "-" + service_name).removeClass("update");
}, 2500);
}
}
});
}
function change_pos(pos, id) {
$.ajax({
url: "/app/service/position/" + id + "/" + pos,
// data: {
// token: $('#token').val()
// },
// type: "POST",
error: function () {
console.log(w.data_error);
}
});
}
function showBytes(serv) {
$.ajax( {
url: "/app/service/haproxy/bytes",
data: {
showBytes: serv
},
type: "POST",
beforeSend: function() {
$("#show_bin_bout").html('<img class="loading_small_bin_bout" src="/app/static/images/loading.gif" />');
$("#sessions").html('<img class="loading_small_bin_bout" src="/app/static/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
$("#bin_bout").html(data);
$.getScript(awesome)
}
}
} );
}
function showNginxConnections(serv) {
$.ajax( {
url: "/app/service/nginx/connections",
data: {
nginxConnections: serv
},
type: "POST",
beforeSend: function() {
$("#sessions").html('<img class="loading_small_bin_bout" src="/app/static/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
$("#bin_bout").html(data);
$.getScript(awesome)
}
}
} );
}
function showApachekBytes(serv) {
$.ajax( {
url: "/app/service/apache/bytes",
data: {
apachekBytes: serv
},
type: "POST",
beforeSend: function() {
$("#sessions").html('<img class="loading_small_bin_bout" src="/app/static/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
$("#bin_bout").html(data);
$.getScript(awesome)
}
}
} );
}
function keepalivedBecameMaster(serv) {
$.ajax( {
url: "/app/service/keepalived/become-master",
data: {
keepalivedBecameMaster: serv
},
type: "POST",
beforeSend: function() {
$("#bin_bout").html('<img class="loading_small_bin_bout" src="/app/static/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
$("#bin_bout").html(data);
$.getScript(awesome)
}
}
} );
}
function showUsersOverview() {
$.ajax( {
url: "overview/users",
// data: {
// show_users_ovw: 1,
// token: $('#token').val()
// },
type: "GET",
beforeSend: function() {
$("#users-table").html('<img class="loading_small_bin_bout" style="padding-left: 100%;padding-top: 40px;padding-bottom: 40px;" src="/app/static/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
$("#users-table").html(data);
}
}
} );
}
function showSubOverview() {
$.ajax( {
url: "/app/overview/sub",
// data: {
// show_sub_ovw: 1,
// token: $('#token').val()
// },
type: "GET",
beforeSend: function() {
$("#sub-table").html('<img class="loading_small_bin_bout" style="padding-left: 40%;padding-top: 40px;padding-bottom: 40px;" src="/app/static/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
$("#sub-table").html(data);
}
}
} );
}
function serverSettings(id, name) {
let settings_word = translate_div.attr('data-settings');
let for_word = translate_div.attr('data-for');
let service = $('#service').val();
$.ajax({
url: "/app/service/settings/" + service + "/" + id,
success: function (data) {
data = data.replace(/\s+/g, ' ');
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
$("#dialog-settings-service").html(data)
$("input[type=checkbox]").checkboxradio();
$("#dialog-settings-service").dialog({
resizable: false,
height: "auto",
width: 400,
modal: true,
title: settings_word + " " + for_word + " " + name,
buttons: [{
text: save_word,
click: function () {
$(this).dialog("close");
serverSettingsSave(id, name, service, $(this));
}
}, {
text: cancel_word,
click: function () {
$(this).dialog("close");
}
}]
});
}
}
});
}
function serverSettingsSave(id, name, service, dialog_id) {
let haproxy_enterprise = 0;
let service_dockerized = 0;
let service_restart = 0;
if ($('#haproxy_enterprise').is(':checked')) {
haproxy_enterprise = '1';
}
if ($('#haproxy_dockerized').is(':checked')) {
service_dockerized = '1';
}
if ($('#nginx_dockerized').is(':checked')) {
service_dockerized = '1';
}
if ($('#apache_dockerized').is(':checked')) {
service_dockerized = '1';
}
if ($('#haproxy_restart').is(':checked')) {
service_restart = '1';
}
if ($('#nginx_restart').is(':checked')) {
service_restart = '1';
}
if ($('#apache_restart').is(':checked')) {
service_restart = '1';
}
$.ajax({
url: "/app/service/settings/" + service,
data: {
serverSettingsSave: id,
serverSettingsEnterprise: haproxy_enterprise,
serverSettingsDockerized: service_dockerized,
serverSettingsRestart: service_restart,
token: $('#token').val()
},
type: "POST",
success: function (data) {
data = data.replace(/\s+/g, ' ');
if (data.indexOf('error:') != '-1') {
toastr.error(data);
} else {
dialog_id.dialog('close');
location.reload();
}
}
});
}
function check_service_status(id, ip, service) {
if (sessionStorage.getItem('check-service') == 0) {
return false;
}
NProgress.configure({showSpinner: false});
if (service == 'keepalived') return false;
$.ajax({
url: "/app/service/action/" + service + "/check-service",
data: {
server_ip: ip
},
type: "POST",
success: function (data) {
if (data.indexOf('logout') != '-1') {
sessionStorage.setItem('check-service', 0)
}
data = data.replace(/\s+/g, ' ');
if (cur_url[0] == 'service') {
if (data.indexOf('up') != '-1') {
$('#div-server-' + id).addClass('div-server-head-up');
$('#div-server-' + id).removeClass('div-server-head-down');
} else if (data.indexOf('down') != '-1') {
$('#div-server-' + id).removeClass('div-server-head-up');
$('#div-server-' + id).addClass('div-server-head-down');
}
} else if (cur_url[0] == '') {
let span_id = $('#' + service + "_" + id);
if (data.indexOf('up') != '-1') {
span_id.addClass('serverUp');
span_id.removeClass('serverDown');
if (span_id.attr('title').indexOf('Service is down') != '-1') {
span_id.attr('title', 'Service running')
}
} else if (data.indexOf('down') != '-1') {
span_id.addClass('serverDown');
span_id.removeClass('serverUp');
span_id.attr('title', 'Service is down')
}
}
}
});
NProgress.configure({showSpinner: true});
}
function ShowOverviewLogs() {
$.ajax( {
url: "/app/overview/logs",
type: "GET",
beforeSend: function() {
$("#overview-logs").html('<img class="loading_small_bin_bout" style="padding-left: 40%;padding-top: 40px;padding-bottom: 40px;" src="/app/static/images/loading.gif" />');
},
success: function( data ) {
data = data.replace(/\s+/g,' ');
$("#overview-logs").html(data);
$.getScript(awesome)
$.getScript(overview)
}
} );
}