mirror of https://github.com/Aidaho12/haproxy-wi
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
403 lines
12 KiB
403 lines
12 KiB
function sort_by_status() { |
|
$('<div id="err_services" style="clear: both;"></div>').appendTo('.main'); |
|
$('<div id="good_services" style="clear: both;"></div>').appendTo('.main'); |
|
$('<div id="dis_services" style="clear: both;"></div>').appendTo('.main'); |
|
$(".good").prependTo("#good_services"); |
|
$(".err").prependTo("#err_services"); |
|
$(".dis").prependTo("#dis_services"); |
|
$('.group').remove(); |
|
$('.group_name').detach(); |
|
window.history.pushState("SMON Dashboard", "SMON Dashboard", cur_url[0]+"?action=view&sort=by_status"); |
|
} |
|
function showSmon(action) { |
|
var sort = ''; |
|
var location = window.location.href; |
|
var cur_url = '/app/' + location.split('/').pop(); |
|
console.log(cur_url) |
|
if (action == 'refresh') { |
|
try { |
|
sort = cur_url[1].split('&')[1]; |
|
sort = sort.split('=')[1]; |
|
} catch (e) { |
|
sort = ''; |
|
} |
|
} |
|
$.ajax({ |
|
url: "/app/smon/refresh", |
|
data: { |
|
sort: sort, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function (data) { |
|
if (data.indexOf('SMON error:') != '-1') { |
|
toastr.error(data); |
|
} else { |
|
toastr.clear(); |
|
$("#smon_dashboard").html(data); |
|
// if (action == 'not_sort') { |
|
// window.history.pushState("SMON Dashboard", document.title, "/app/smon"); |
|
// } else { |
|
// window.history.pushState("SMON Dashboard", document.title, cur_url[0] + "?" + cur_url[1]); |
|
// } |
|
} |
|
} |
|
}); |
|
} |
|
function addNewSmonServer(dialog_id) { |
|
var valid = true; |
|
var check_type = $('#check_type').val(); |
|
if (check_type == 'tcp') { |
|
allFields = $([]).add($('#new-smon-ip')).add($('#new-smon-port')).add($('#new-smon-name')) |
|
allFields.removeClass("ui-state-error"); |
|
valid = valid && checkLength($('#new-smon-ip'), "Hostname", 1); |
|
valid = valid && checkLength($('#new-smon-name'), "Name", 1); |
|
valid = valid && checkLength($('#new-smon-port'), "Port", 1); |
|
} |
|
if (check_type == 'http') { |
|
allFields = $([]).add($('#new-smon-url')).add($('#new-smon-name')) |
|
allFields.removeClass("ui-state-error"); |
|
valid = valid && checkLength($('#new-smon-name'), "Name", 1); |
|
valid = valid && checkLength($('#new-smon-url'), "URL", 1); |
|
} |
|
if (check_type == 'ping') { |
|
allFields = $([]).add($('#new-smon-ip')).add($('#new-smon-name')).add($('#new-smon-packet_size')) |
|
allFields.removeClass("ui-state-error"); |
|
valid = valid && checkLength($('#new-smon-name'), "Name", 1); |
|
valid = valid && checkLength($('#new-smon-ip'), "Hostname", 1); |
|
valid = valid && checkLength($('#new-smon-packet_size'), "Packet size", 1); |
|
} |
|
if (check_type == 'dns') { |
|
allFields = $([]).add($('#new-smon-ip')).add($('#new-smon-port')).add($('#new-smon-name')).add($('#new-smon-resolver-server')) |
|
allFields.removeClass("ui-state-error"); |
|
valid = valid && checkLength($('#new-smon-name'), "Name", 1); |
|
valid = valid && checkLength($('#new-smon-ip'), "Hostname", 1); |
|
valid = valid && checkLength($('#new-smon-port'), "Port", 1); |
|
valid = valid && checkLength($('#new-smon-resolver-server'), "Resolver server", 1); |
|
} |
|
var enable = 0; |
|
if ($('#new-smon-enable').is(':checked')) { |
|
enable = '1'; |
|
} |
|
if (valid) { |
|
$.ajax( { |
|
url: "/app/smon/add", |
|
data: { |
|
newsmonname: $('#new-smon-name').val(), |
|
newsmon: $('#new-smon-ip').val(), |
|
newsmonport: $('#new-smon-port').val(), |
|
newsmonresserver: $('#new-smon-resolver-server').val(), |
|
newsmondns_record_type: $('#new-smon-dns_record_type').val(), |
|
newsmonenable: enable, |
|
newsmonurl: $('#new-smon-url').val(), |
|
newsmonbody: $('#new-smon-body').val(), |
|
newsmongroup: $('#new-smon-group').val(), |
|
newsmondescription: $('#new-smon-description').val(), |
|
newsmontelegram: $('#new-smon-telegram').val(), |
|
newsmonslack: $('#new-smon-slack').val(), |
|
newsmonpd: $('#new-smon-pd').val(), |
|
newsmonpacket_size: $('#new-smon-packet_size').val(), |
|
newsmon_http_method: $('#new-smon-method').val(), |
|
newsmonchecktype: check_type, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error:') != '-1' || data.indexOf('unique') != '-1') { |
|
toastr.error(data); |
|
} else { |
|
if (check_type == 'ping') { |
|
table_id = 'ajax-smon-ping'; |
|
} else if (check_type == 'tcp') { |
|
table_id = 'ajax-smon-tcp'; |
|
} else if (check_type == 'dns') { |
|
table_id = 'ajax-smon-dns'; |
|
} |
|
else { |
|
table_id = 'ajax-smon-http'; |
|
} |
|
common_ajax_action_after_success(dialog_id, 'newserver', table_id, data); |
|
$( "input[type=submit], button" ).button(); |
|
$( "input[type=checkbox]" ).checkboxradio(); |
|
$( "select" ).selectmenu(); |
|
$.getScript('/inc/users.js'); |
|
} |
|
} |
|
} ); |
|
} |
|
} |
|
function confirmDeleteSmon(id, check_type) { |
|
var delete_word = $('#translate').attr('data-delete'); |
|
var cancel_word = $('#translate').attr('data-cancel'); |
|
$( "#dialog-confirm" ).dialog({ |
|
resizable: false, |
|
height: "auto", |
|
width: 400, |
|
modal: true, |
|
title: delete_word+" " +$('#smon-ip-'+id).val() + "?", |
|
buttons: [{ |
|
text: delete_word, |
|
click: function () { |
|
$(this).dialog("close"); |
|
removeSmon(id, check_type); |
|
} |
|
}, { |
|
text: cancel_word, |
|
click: function() { |
|
$( this ).dialog( "close" ); |
|
} |
|
}] |
|
}); |
|
} |
|
function removeSmon(id, check_type) { |
|
$("#smon-"+id).css("background-color", "#f2dede"); |
|
$.ajax( { |
|
url: "/app/smon/delete/" + id, |
|
// data: { |
|
// smondel: id, |
|
// token: $('#token').val() |
|
// }, |
|
type: "GET", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if(data == "Ok") { |
|
$("#smon-"+check_type+"-"+id).remove(); |
|
} else { |
|
toastr.error(data); |
|
} |
|
} |
|
} ); |
|
} |
|
|
|
function updateSmon(id, check_type) { |
|
toastr.clear(); |
|
var enable = 0; |
|
if ($('#smon-enable-'+id).is(':checked')) { |
|
enable = '1'; |
|
} |
|
$.ajax( { |
|
url: "/app/smon/update/"+id, |
|
data: { |
|
updateSmonName: $('#smon-name-'+id).val(), |
|
updateSmonIp: $('#smon-ip-'+id).val(), |
|
updateSmonResServer: $('#smon-resolver-'+id).val(), |
|
updateSmonRecordType: $('#smon-record_type-'+id).val(), |
|
updateSmonPort: $('#smon-port-'+id).val(), |
|
updateSmonUrl: $('#smon-url-'+id).val(), |
|
updateSmonEn: enable, |
|
updateSmonBody: $('#smon-body-'+id).val(), |
|
updateSmonTelegram: $('#smon-telegram-'+id).val(), |
|
updateSmonSlack: $('#smon-slack-'+id).val(), |
|
updateSmonPD: $('#smon-pd-'+id).val(), |
|
updateSmonGroup: $('#smon-group-'+id).val(), |
|
updateSmonDesc: $('#smon-desc-'+id).val(), |
|
updateSmonPacket_size: $('#smon-packet_size-'+id).val(), |
|
updateSmon_http_method: $('#smon-http_method-'+id).val(), |
|
check_type: check_type, |
|
token: $('#token').val() |
|
}, |
|
type: "POST", |
|
success: function( data ) { |
|
data = data.replace(/\s+/g,' '); |
|
if (data.indexOf('error:') != '-1' || data.indexOf('unique') != '-1') { |
|
toastr.error(data); |
|
} else { |
|
toastr.clear(); |
|
$("#smon-"+check_type+"-"+id).addClass( "update", 1000 ); |
|
setTimeout(function() { |
|
$("#smon-"+check_type+"-"+id).removeClass( "update" ); |
|
}, 2500 ); |
|
} |
|
} |
|
} ); |
|
} |
|
function cloneSmom(id, check_type) { |
|
check_and_clear_check_type(check_type); |
|
$( "#add-smon-button-"+check_type ).trigger( "click" ); |
|
if ($('#smon-enable-'+id).is(':checked')) { |
|
$('#new-smon-enable').prop('checked', true) |
|
} else { |
|
$('#new-smon-enable').prop('checked', false) |
|
} |
|
$('#new-smon-enable').checkboxradio("refresh"); |
|
$('#new-smon-name').val($('#smon-name-'+id).val()); |
|
$('#new-smon-ip').val($('#smon-ip-'+id).val()); |
|
$('#new-smon-port').val($('#smon-port-'+id).val()); |
|
$('#new-smon-resolver-server').val($('#smon-resolver-'+id).val()); |
|
$('#new-smon-dns_record_typer').val($('#smon-record_type-'+id).val()); |
|
$('#new-smon-url').val($('#smon-url-'+id).val()); |
|
$('#new-smon-group').val($('#smon-group-'+id).val()); |
|
$('#new-smon-description').val($('#smon-desc-'+id).val()) |
|
$('#new-smon-packet_size').val($('#smon-packet_size-'+id).val()) |
|
$('#new-smon-telegram').val($('#smon-telegram-'+id+' option:selected').val()).change() |
|
$('#new-smon-slack').val($('#smon-slack-'+id+' option:selected').val()).change() |
|
$('#new-smon-pd').val($('#smon-pd-'+id+' option:selected').val()).change() |
|
$('#new-smon-telegram').selectmenu("refresh"); |
|
$('#new-smon-slack').selectmenu("refresh"); |
|
$('#new-smon-pd').selectmenu("refresh"); |
|
} |
|
$( function() { |
|
$('#add-smon-button-http').click(function() { |
|
addSmonServer.dialog('open'); |
|
check_and_clear_check_type('http'); |
|
}); |
|
$('#add-smon-button-tcp').click(function() { |
|
addSmonServer.dialog('open'); |
|
check_and_clear_check_type('tcp'); |
|
}); |
|
$('#add-smon-button-ping').click(function() { |
|
addSmonServer.dialog('open'); |
|
check_and_clear_check_type('ping'); |
|
}); |
|
$('#add-smon-button-dns').click(function() { |
|
addSmonServer.dialog('open'); |
|
check_and_clear_check_type('dns'); |
|
}); |
|
$( "#ajax-smon-http input" ).change(function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateSmon(id[2], 'http'); |
|
}); |
|
$( "#ajax-smon-http select" ).on('selectmenuchange',function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateSmon(id[2], 'http'); |
|
}); |
|
$( "#ajax-smon-tcp input" ).change(function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateSmon(id[2], 'tcp'); |
|
}); |
|
$( "#ajax-smon-tcp select" ).on('selectmenuchange',function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateSmon(id[2], 'tcp'); |
|
}); |
|
$( "#ajax-smon-ping input" ).change(function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateSmon(id[2], 'ping'); |
|
}); |
|
$( "#ajax-smon-ping select" ).on('selectmenuchange',function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateSmon(id[2], 'ping'); |
|
}); |
|
$( "#ajax-smon-dns input" ).change(function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateSmon(id[2], 'dns'); |
|
}); |
|
$( "#ajax-smon-dns select" ).on('selectmenuchange',function() { |
|
var id = $(this).attr('id').split('-'); |
|
updateSmon(id[2], 'dns'); |
|
}); |
|
$( "#check_type" ).on('selectmenuchange',function() { |
|
check_and_clear_check_type($('#check_type').val()); |
|
}); |
|
var add_word = $('#translate').attr('data-add'); |
|
var cancel_word = $('#translate').attr('data-cancel'); |
|
var smon_add_tabel_title = $( "#smon-add-table-overview" ).attr('title'); |
|
var addSmonServer = $( "#smon-add-table" ).dialog({ |
|
autoOpen: false, |
|
resizable: false, |
|
height: "auto", |
|
width: 600, |
|
modal: true, |
|
title: smon_add_tabel_title, |
|
show: { |
|
effect: "fade", |
|
duration: 200 |
|
}, |
|
hide: { |
|
effect: "fade", |
|
duration: 200 |
|
}, |
|
buttons: [{ |
|
text: add_word, |
|
click: function () { |
|
addNewSmonServer(this); |
|
} |
|
}, { |
|
text: cancel_word, |
|
click: function () { |
|
$(this).dialog("close"); |
|
clearTips(); |
|
} |
|
}] |
|
}); |
|
}); |
|
function check_and_clear_check_type(check_type) { |
|
if (check_type == 'http') { |
|
$('.new_smon_hostname').hide(); |
|
$("#check_type").val('http'); |
|
$('#check_type').selectmenu("refresh"); |
|
$('.smon_tcp_check').hide(); |
|
$('.smon_ping_check').hide(); |
|
$('.smon_dns_check').hide(); |
|
clear_check_vals(); |
|
$('.smon_http_check').show(); |
|
} else if (check_type == 'tcp') { |
|
$("#check_type").val('tcp'); |
|
$('#check_type').selectmenu("refresh"); |
|
$('.new_smon_hostname').show(); |
|
$('.smon_http_check').hide(); |
|
$('.smon_dns_check').hide(); |
|
$('.smon_ping_check').hide(); |
|
clear_check_vals(); |
|
$('.smon_tcp_check').show(); |
|
} else if (check_type == 'dns') { |
|
$("#check_type").val('dns'); |
|
$('#check_type').selectmenu("refresh"); |
|
$('.smon_tcp_check').hide(); |
|
$('.new_smon_hostname').show(); |
|
$('.smon_http_check').hide(); |
|
$('.smon_ping_check').hide(); |
|
clear_check_vals(); |
|
$('#new-smon-port').val('53'); |
|
$('.smon_dns_check').show(); |
|
} else { |
|
$('.smon_http_check').hide(); |
|
$('.new_smon_hostname').show(); |
|
$('.smon_tcp_check').hide(); |
|
$('.smon_dns_check').hide(); |
|
$('.smon_ping_check').show(); |
|
$("#check_type").val('ping'); |
|
$('#check_type').selectmenu("refresh"); |
|
clear_check_vals(); |
|
|
|
} |
|
} |
|
function clear_check_vals() { |
|
$('#new_smon_hostname').val(''); |
|
$('#new-smon-url').val(''); |
|
$('#new-smon-body').val(''); |
|
$('#new-smon-port').val(''); |
|
$('#new-smon-packet_size').val(''); |
|
} |
|
function show_statuses(dashboard_id, check_id) { |
|
$.ajax({ |
|
url: "/app/smon/history/statuses/" + dashboard_id + "/" + check_id, |
|
success: function (data) { |
|
data = data.replace(/\s+/g, ' '); |
|
if (data.indexOf('error:') != '-1' || data.indexOf('unique') != '-1') { |
|
toastr.error(data); |
|
} else { |
|
toastr.clear(); |
|
$("#smon_history_statuses").html(data); |
|
$( "[title]" ).tooltip({ |
|
"content": function () { |
|
return $(this).attr("data-help"); |
|
}, |
|
show: {"delay": 1000} |
|
}); |
|
} |
|
} |
|
}); |
|
$.ajax({ |
|
url: "/app/smon/history/cur_status/" + dashboard_id + "/" + check_id, |
|
success: function (data) { |
|
data = data.replace(/\s+/g, ' '); |
|
if (data.indexOf('error:') != '-1' || data.indexOf('unique') != '-1') { |
|
toastr.error(data); |
|
} else { |
|
toastr.clear(); |
|
$("#cur_status").html(data); |
|
} |
|
} |
|
}); |
|
}
|
|
|