var url = "/inc/script.js" ;
var cur _url = window . location . href . split ( '/' ) . pop ( ) ;
cur _url = cur _url . split ( '?' ) ;
var intervalId ;
$ ( function ( ) {
$ ( '.menu li ul li' ) . each ( function ( ) {
var link = $ ( this ) . find ( 'a' ) . attr ( 'href' ) ;
var link2 = link . split ( '/' ) [ 2 ]
if ( cur _url [ 0 ] == link2 ) {
$ ( this ) . parent ( ) . css ( 'display' , 'contents' ) ;
$ ( this ) . parent ( ) . css ( 'font-size' , '13px' ) ;
$ ( this ) . parent ( ) . css ( 'top' , '0' ) ;
$ ( this ) . parent ( ) . css ( 'left' , '0' ) ;
$ ( this ) . parent ( ) . children ( ) . css ( 'margin-left' , '-20px' ) ;
$ ( this ) . parent ( ) . find ( 'a' ) . css ( 'padding-left' , '20px' ) ;
$ ( this ) . find ( 'a' ) . css ( 'padding-left' , '30px' ) ;
$ ( this ) . find ( 'a' ) . css ( 'border-left' , '4px solid #5D9CEB' ) ;
}
} ) ;
} ) ;
jQuery . expr [ ':' ] . regex = function ( elem , index , match ) {
var matchParams = match [ 3 ] . split ( ',' ) ,
validLabels = /^(data|css):/ ,
attr = {
method : matchParams [ 0 ] . match ( validLabels ) ?
matchParams [ 0 ] . split ( ':' ) [ 0 ] : 'attr' ,
property : matchParams . shift ( ) . replace ( validLabels , '' )
} ,
regexFlags = 'ig' ,
regex = new RegExp ( matchParams . join ( '' ) . replace ( /^\s+|\s+$/g , '' ) , regexFlags ) ;
return regex . test ( jQuery ( elem ) [ attr . method ] ( attr . property ) ) ;
}
window . onblur = function ( ) {
window . onfocus = function ( ) {
if ( Cookies . get ( 'auto-refresh-pause' ) == "0" && Cookies . get ( 'auto-refresh' ) > 5000 ) {
if ( cur _url [ 0 ] == "logs.py" ) {
showLog ( ) ;
} else if ( cur _url [ 0 ] == "viewsttats.py" ) {
showStats ( )
} else if ( cur _url [ 0 ] == "overview.py" ) {
showOverview ( ) ;
} else if ( cur _url [ 0 ] == "viewlogs.py" ) {
viewLogs ( ) ;
} else if ( cur _url [ 0 ] == "metrics.py" ) {
showMetrics ( ) ;
}
}
}
} ;
if ( Cookies . get ( 'restart' ) ) {
var ip = Cookies . get ( 'restart' ) ;
$ . ajax ( {
url : "options.py" ,
data : {
act : "checkrestart" ,
serv : ip ,
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
if ( data . indexOf ( 'ok' ) != '-1' ) {
$ ( "#apply" ) . css ( 'display' , 'block' ) ;
$ ( "#apply_div" ) . css ( 'width' , '850px' ) ;
if ( cur _url [ 0 ] == "hapservers.py" ) {
$ ( "#apply_div" ) . css ( 'width' , '650px' ) ;
$ ( "#apply_div" ) . html ( "You made changes to the server: " + ip + ". Changes will take effect only after<a id='" + ip + "' class='restart' title='Restart HAproxy service' onclick=\"confirmAjaxAction('stop', 'hap', '" + ip + "')\">restart</a><a href='#' title='close' id='apply_close' style='float: right'><b>X</b></a>" ) ;
} else {
$ ( "#apply_div" ) . html ( "You made changes to the server: " + ip + ". Changes will take effect only after restart. <a href='hapservers.py' title='Overview'>Go to the HAProxy Overview page and restart</a><a href='#' title='close' id='apply_close' style='float: right'><b>X</b></a>" ) ;
}
$ . getScript ( '/inc/overview.js' ) ;
}
}
} ) ;
}
function autoRefreshStyle ( autoRefresh ) {
var margin ;
if ( cur _url [ 0 ] == "overview.py" || cur _url [ 0 ] == "waf.py" || cur _url [ 0 ] == "metrics.py" ) {
if ( autoRefresh < 60000 ) {
autoRefresh = 60000 ;
}
}
autoRefresh = autoRefresh / 1000 ;
if ( autoRefresh == 60 ) {
timeRange = " minute"
autoRefresh = autoRefresh / 60 ;
} else if ( autoRefresh > 60 && autoRefresh < 3600 ) {
timeRange = " minutes"
autoRefresh = autoRefresh / 60 ;
} else if ( autoRefresh >= 3600 && autoRefresh < 86401 ) {
timeRange = " hours"
autoRefresh = autoRefresh / 3600 ;
} else {
timeRange = " seconds" ;
}
$ ( '#1' ) . text ( autoRefresh + timeRange ) ;
$ ( '#0' ) . text ( autoRefresh + timeRange ) ;
$ ( '.auto-refresh-pause' ) . css ( 'display' , 'inline' ) ;
$ ( '.auto-refresh-resume' ) . css ( 'display' , 'none' ) ;
$ ( '.auto-refresh-pause' ) . css ( 'margin-left' , "-25px" ) ;
$ ( '.auto-refresh-resume' ) . css ( 'margin-left' , "-25px" ) ;
$ ( '.auto-refresh img' ) . remove ( ) ;
}
function setRefreshInterval ( interval ) {
if ( interval == "0" ) {
Cookies . remove ( 'auto-refresh' ) ;
pauseAutoRefresh ( ) ;
$ ( '.auto-refresh' ) . prepend ( '<img src=/inc/images/update.png alt="restart" class="icon">' ) ;
$ ( '.auto-refresh' ) . css ( 'margin-top' , '-3px' ) ;
$ ( '#1' ) . text ( 'Auto-refresh' ) ;
$ ( '#0' ) . text ( 'Auto-refresh' ) ;
$ ( '.auto-refresh-pause' ) . css ( 'display' , 'none' ) ;
$ ( '.auto-refresh-resume' ) . css ( 'display' , 'none' ) ;
hideAutoRefreshDiv ( ) ;
} else {
clearInterval ( intervalId ) ;
Cookies . set ( 'auto-refresh' , interval , { expires : 365 } ) ;
Cookies . set ( 'auto-refresh-pause' , "0" , { expires : 365 } ) ;
startSetInterval ( interval ) ;
hideAutoRefreshDiv ( ) ;
autoRefreshStyle ( interval ) ;
}
}
function startSetInterval ( interval ) {
if ( Cookies . get ( 'auto-refresh-pause' ) == "0" ) {
if ( cur _url [ 0 ] == "logs.py" ) {
intervalId = setInterval ( 'showLog()' , interval ) ;
showLog ( ) ;
} else if ( cur _url [ 0 ] == "viewsttats.py" ) {
intervalId = setInterval ( 'showStats()' , interval ) ;
showStats ( )
} else if ( cur _url [ 0 ] == "overview.py" ) {
if ( interval < 60000 ) {
interval = 60000 ;
}
intervalId = setInterval ( 'showOverview(ip, hostnamea)' , interval ) ;
showOverview ( ip , hostnamea ) ;
} else if ( cur _url [ 0 ] == "viewlogs.py" ) {
intervalId = setInterval ( 'viewLogs()' , interval ) ;
viewLogs ( ) ;
} else if ( cur _url [ 0 ] == "metrics.py" ) {
if ( interval < 60000 ) {
interval = 60000 ;
}
intervalId = setInterval ( 'showMetrics()' , interval ) ;
showMetrics ( ) ;
} else if ( cur _url [ 0 ] == "waf.py" ) {
if ( interval < 60000 ) {
interval = 60000 ;
}
intervalId = setInterval ( 'showOverviewWaf(ip, hostnamea)' , interval ) ;
showOverviewWaf ( ip , hostnamea ) ;
showWafMetrics ( ) ;
} else if ( cur _url [ 0 ] == "hapservers.py" ) {
if ( interval < 60000 ) {
interval = 60000 ;
}
intervalId = setInterval ( 'showMetrics()' , interval ) ;
showMetrics ( ) ;
}
} else {
pauseAutoRefresh ( ) ;
}
}
function pauseAutoRefresh ( ) {
clearInterval ( intervalId ) ;
$ ( function ( ) {
$ ( '.auto-refresh-pause' ) . css ( 'display' , 'none' ) ;
$ ( '.auto-refresh-resume' ) . css ( 'display' , 'inline' ) ;
Cookies . set ( 'auto-refresh-pause' , "1" , { expires : 365 } ) ;
} ) ;
}
function pauseAutoResume ( ) {
var autoRefresh = Cookies . get ( 'auto-refresh' ) ;
setRefreshInterval ( autoRefresh ) ;
Cookies . set ( 'auto-refresh-pause' , "0" , { expires : 365 } ) ;
}
function hideAutoRefreshDiv ( ) {
$ ( function ( ) {
$ ( '.auto-refresh-div' ) . hide ( "blind" , "fast" ) ;
$ ( '#1' ) . css ( "display" , "none" ) ;
$ ( '#0' ) . css ( "display" , "inline" ) ;
} ) ;
}
$ ( document ) . ajaxSend ( function ( event , request , settings ) {
$ ( '#cover' ) . fadeIn ( 'fast' ) ;
NProgress . start ( ) ;
} ) ;
$ ( document ) . ajaxComplete ( function ( event , request , settings ) {
$ ( '#cover' ) . fadeOut ( 'fast' ) ;
NProgress . done ( ) ;
} ) ;
function showStats ( ) {
$ . ajax ( {
url : "options.py" ,
data : {
act : "stats" ,
serv : $ ( "#serv" ) . val ( ) ,
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
$ ( "#ajax" ) . html ( data ) ;
window . history . pushState ( "Stats" , "Stats" , cur _url [ 0 ] + "?serv=" + $ ( "#serv" ) . val ( ) ) ;
wait ( ) ;
}
} ) ;
}
function openStats ( ) {
var serv = $ ( "#serv" ) . val ( ) ;
var url = "viewsttats.py?serv=" + serv
var win = window . open ( url , '_blank' ) ;
win . focus ( ) ;
}
function openVersions ( ) {
var serv = $ ( "#serv" ) . val ( ) ;
var url = "versions.py?serv=" + serv + "&open=open"
var win = window . open ( url , "_self" ) ;
win . focus ( ) ;
}
function showLog ( ) {
var waf = 0 ;
if ( $ ( '#waf' ) . is ( ':checked' ) ) {
waf = '1' ;
}
var rows = $ ( '#rows' ) . val ( )
var grep = $ ( '#grep' ) . val ( )
var hour = $ ( '#time_range_out_hour' ) . val ( )
var minut = $ ( '#time_range_out_minut' ) . val ( )
var hour1 = $ ( '#time_range_out_hour1' ) . val ( )
var minut1 = $ ( '#time_range_out_minut1' ) . val ( )
$ . ajax ( {
url : "options.py" ,
data : {
rows : rows ,
serv : $ ( "#serv" ) . val ( ) ,
waf : waf ,
grep : grep ,
hour : hour ,
minut : minut ,
hour1 : hour1 ,
minut1 : minut1 ,
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
$ ( "#ajax" ) . html ( data ) ;
window . history . pushState ( "Logs" , "Logs" , cur _url [ 0 ] + "?serv=" + $ ( "#serv" ) . val ( ) +
'&rows=' + rows +
'&grep=' + grep +
'&hour=' + hour +
'&minut=' + minut +
'&hour1=' + hour1 +
'&minut1=' + minut1 +
'&waf=' + waf ) ;
}
} ) ;
}
function showMap ( ) {
$ ( "#ajax" ) . empty ( ) ;
$ ( "#ajax-compare" ) . empty ( ) ;
$ ( "#config" ) . empty ( ) ;
$ ( ".alert-info" ) . empty ( ) ;
var unique = $ . now ( ) ;
$ . ajax ( {
url : "options.py" ,
data : {
serv : $ ( "#serv" ) . val ( ) ,
act : "showMap" ,
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
$ ( "#ajax" ) . html ( data ) ;
window . history . pushState ( "Show map" , "Show map" , cur _url [ 0 ] + '?serv=' + $ ( "#serv" ) . val ( ) + '&showMap' ) ;
}
} ) ;
}
function showRuntime ( ) {
if ( $ ( '#save' ) . prop ( 'checked' ) ) {
saveCheck = "on" ;
} else {
saveCheck = "" ;
}
$ . ajax ( {
url : "options.py" ,
data : {
servaction : $ ( '#servaction' ) . val ( ) ,
serv : $ ( "#serv" ) . val ( ) ,
servbackend : $ ( "#servbackend" ) . val ( ) ,
save : saveCheck ,
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
$ ( "#ajaxruntime" ) . html ( data ) ;
}
} ) ;
}
function showCompare ( ) {
$ . ajax ( {
url : "options.py" ,
data : {
serv : $ ( "#serv" ) . val ( ) ,
left : $ ( '#left' ) . val ( ) ,
right : $ ( "#right" ) . val ( ) ,
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
$ ( "#ajax" ) . html ( data ) ;
}
} ) ;
}
function showCompareConfigs ( ) {
$ ( "#ajax" ) . empty ( ) ;
$ ( "#config" ) . empty ( ) ;
$ ( ".alert-info" ) . empty ( ) ;
$ . ajax ( {
url : "options.py" ,
data : {
serv : $ ( "#serv" ) . val ( ) ,
act : "showCompareConfigs" ,
open : "open" ,
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
$ ( "#ajax-compare" ) . html ( data ) ;
$ ( "input[type=submit], button" ) . button ( ) ;
$ ( "select" ) . selectmenu ( ) ;
window . history . pushState ( "Show compare config" , "Show compare config" , cur _url [ 0 ] + '?serv=' + $ ( "#serv" ) . val ( ) + '&showCompare' ) ;
}
} ) ;
}
function showConfig ( ) {
$ ( "#ajax" ) . empty ( ) ;
$ ( "#ajax-compare" ) . empty ( ) ;
$ ( "#config" ) . empty ( ) ;
$ ( ".alert-info" ) . empty ( ) ;
$ . ajax ( {
url : "options.py" ,
data : {
serv : $ ( "#serv" ) . val ( ) ,
act : "configShow" ,
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
$ ( "#ajax" ) . html ( data ) ;
$ . getScript ( '/inc/configshow.js' ) ;
window . history . pushState ( "Show config" , "Show config" , cur _url [ 0 ] + '?serv=' + $ ( "#serv" ) . val ( ) + '&showConfig' ) ;
}
} ) ;
}
function showUploadConfig ( ) {
var view = $ ( '#view' ) . val ( ) ;
if ( view != "1" ) {
view = ""
}
$ . ajax ( {
url : "options.py" ,
data : {
serv : $ ( "#serv" ) . val ( ) ,
act : "configShow" ,
configver : $ ( '#configver' ) . val ( ) ,
token : $ ( '#token' ) . val ( ) ,
view : view
} ,
type : "POST" ,
success : function ( data ) {
$ ( "#ajax" ) . html ( data ) ;
if ( view == "1" ) {
window . history . pushState ( "Show config" , "Show config" , cur _url [ 0 ] + "?serv=" + $ ( "#serv" ) . val ( ) + "&open=open&configver=" + $ ( '#configver' ) . val ( ) + "&view=" + $ ( '#view' ) . val ( ) ) ;
} else {
window . history . pushState ( "Show config" , "Show config" , cur _url [ 0 ] + "?serv=" + $ ( "#serv" ) . val ( ) + "&open=open&configver=" + $ ( '#configver' ) . val ( ) ) ;
}
$ . getScript ( '/inc/configshow.js' ) ;
}
} ) ;
}
function viewLogs ( ) {
if ( $ ( '#viewlogs' ) . val ( ) == 'haproxy-wi.error.log' || $ ( '#viewlogs' ) . val ( ) == 'haproxy-wi.access.log' ) {
showApacheLog ( $ ( '#viewlogs' ) . val ( ) ) ;
} else {
var rows = $ ( '#rows' ) . val ( )
var grep = $ ( '#grep' ) . val ( )
var hour = $ ( '#time_range_out_hour' ) . val ( )
var minut = $ ( '#time_range_out_minut' ) . val ( )
var hour1 = $ ( '#time_range_out_hour1' ) . val ( )
var minut1 = $ ( '#time_range_out_minut1' ) . val ( )
$ . ajax ( {
url : "options.py" ,
data : {
viewlogs : $ ( '#viewlogs' ) . val ( ) ,
rows : rows ,
grep : grep ,
hour : hour ,
minut : minut ,
hour1 : hour1 ,
minut1 : minut1 ,
token : $ ( '#token' ) . val ( ) ,
} ,
type : "POST" ,
success : function ( data ) {
$ ( "#ajax" ) . html ( data ) ;
window . history . pushState ( "View logs" , "View logs" , cur _url [ 0 ] + "?viewlogs=" + $ ( "#viewlogs" ) . val ( ) +
'&rows=' + rows +
'&grep=' + grep +
'&hour=' + hour +
'&minut=' + minut +
'&hour1=' + hour1 +
'&minut1=' + minut1 ) ;
}
} ) ;
}
}
$ ( function ( ) {
$ ( '#errorMess' ) . click ( function ( ) {
$ ( '#error' ) . remove ( ) ;
} ) ;
$ ( "#serv" ) . on ( 'selectmenuchange' , function ( ) {
$ ( "#show" ) . css ( "pointer-events" , "inherit" ) ;
$ ( "#show" ) . css ( "cursor" , "pointer" ) ;
} ) ;
if ( $ ( "#serv option:selected" ) . val ( ) == "Choose server" ) {
$ ( "#show" ) . css ( "pointer-events" , "none" ) ;
$ ( "#show" ) . css ( "cursor" , "not-allowed" ) ;
}
var pause = '<a onclick="pauseAutoRefresh()" title="Pause auto-refresh" class="auto-refresh-pause"></a>'
var autoRefresh = Cookies . get ( 'auto-refresh' ) ;
if ( $ ( '.auto-refresh' ) ) {
if ( autoRefresh ) {
startSetInterval ( autoRefresh ) ;
autoRefreshStyle ( autoRefresh ) ;
}
}
$ ( "#tabs" ) . tabs ( ) ;
$ ( "select" ) . selectmenu ( ) ;
// var tooltips = $( "[title]" ).tooltip();
$ ( "input[type=submit], button" ) . button ( ) ;
$ ( "input[type=checkbox]" ) . checkboxradio ( ) ;
$ ( ".controlgroup" ) . controlgroup ( ) ;
$ ( "#hide_menu" ) . click ( function ( ) {
$ ( ".top-menu" ) . hide ( "drop" , "fast" ) ;
$ ( ".container" ) . css ( "max-width" , "100%" ) ;
$ ( ".footer" ) . css ( "max-width" , "97%" ) ;
$ ( ".container" ) . css ( "margin-left" , "1%" ) ;
$ ( ".footer" ) . css ( "margin-left" , "1%" ) ;
$ ( ".show_menu" ) . show ( ) ;
$ ( "#hide_menu" ) . hide ( ) ;
Cookies . set ( 'hide_menu' , 'hide' , { expires : 365 } ) ;
} ) ;
$ ( "#show_menu" ) . click ( function ( ) {
$ ( ".top-menu" ) . show ( "drop" , "fast" ) ;
$ ( ".container" ) . css ( "max-width" , "100%" ) ;
$ ( ".footer" ) . css ( "max-width" , "100%" ) ;
$ ( ".container" ) . css ( "margin-left" , "207px" ) ;
$ ( ".footer" ) . css ( "margin-left" , "207px" ) ;
$ ( ".show_menu" ) . hide ( ) ;
$ ( "#hide_menu" ) . show ( ) ;
Cookies . set ( 'hide_menu' , 'show' , { expires : 365 } ) ;
} ) ;
var hideMenu = Cookies . get ( 'hide_menu' ) ;
if ( hideMenu == "show" ) {
$ ( ".top-menu" ) . show ( "drop" , "fast" ) ;
$ ( ".container" ) . css ( "max-width" , "100%" ) ;
$ ( ".container" ) . css ( "margin-left" , "207px" ) ;
$ ( ".footer" ) . css ( "margin-left" , "207px" ) ;
$ ( ".footer" ) . css ( "max-width" , "100%" ) ;
$ ( "#hide_menu" ) . show ( ) ;
$ ( ".show_menu" ) . hide ( ) ;
}
if ( hideMenu == "hide" ) {
$ ( ".top-menu" ) . hide ( ) ;
$ ( ".container" ) . css ( "max-width" , "97%" ) ;
$ ( ".container" ) . css ( "margin-left" , "1%" ) ;
$ ( ".footer" ) . css ( "margin-left" , "1%" ) ;
$ ( ".footer" ) . css ( "max-width" , "97%" ) ;
$ ( ".show_menu" ) . show ( ) ;
$ ( "#hide_menu" ) . hide ( ) ;
}
var now = new Date ( Date . now ( ) ) ;
if ( $ ( '#time_range_out_hour' ) . val ( ) != '' && $ ( '#time_range_out_hour' ) . val ( ) != 'None' ) {
var date1 = parseInt ( $ ( '#time_range_out_hour' ) . val ( ) , 10 ) * 60 + parseInt ( $ ( '#time_range_out_minut' ) . val ( ) , 10 )
} else {
var date1 = now . getHours ( ) * 60 - 1 * 60 ;
}
if ( $ ( '#time_range_out_hour' ) . val ( ) != '' && $ ( '#time_range_out_hour' ) . val ( ) != 'None' ) {
var date2 = parseInt ( $ ( '#time_range_out_hour1' ) . val ( ) , 10 ) * 60 + parseInt ( $ ( '#time_range_out_minut1' ) . val ( ) , 10 )
} else {
var date2 = now . getHours ( ) * 60 + now . getMinutes ( ) ;
}
$ ( "#time-range" ) . slider ( {
range : true ,
min : 0 ,
max : 1440 ,
step : 15 ,
values : [ date1 , date2 ] ,
slide : function ( e , ui ) {
var hours = Math . floor ( ui . values [ 0 ] / 60 ) ;
var minutes = ui . values [ 0 ] - ( hours * 60 ) ;
if ( hours . toString ( ) . length == 1 ) hours = '0' + hours ;
if ( minutes . toString ( ) . length == 1 ) minutes = '0' + minutes ;
var hours1 = Math . floor ( ui . values [ 1 ] / 60 ) ;
var minutes1 = ui . values [ 1 ] - ( hours1 * 60 ) ;
if ( hours1 . toString ( ) . length == 1 ) hours1 = '0' + hours1 ;
if ( minutes1 . toString ( ) . length == 1 ) minutes1 = '0' + minutes1 ;
if ( $ ( '#time_range_out_hour' ) . val ( ) != '' && $ ( '#time_range_out_hour' ) . val ( ) != 'None' ) {
$ ( '#time_range_out_hour' ) . val ( hours ) ;
}
if ( $ ( '#time_range_out_minut' ) . val ( ) != '' && $ ( '#time_range_out_minut' ) . val ( ) != 'None' ) {
$ ( '#time_range_out_minut' ) . val ( minutes ) ;
}
if ( $ ( '#time_range_out_hour1' ) . val ( ) != '' && $ ( '#time_range_out_hour1' ) . val ( ) != 'None' ) {
$ ( '#time_range_out_hour1' ) . val ( hours1 ) ;
}
if ( $ ( '#time_range_out_minut1' ) . val ( ) != '' && $ ( '#time_range_out_minut1' ) . val ( ) != 'None' ) {
$ ( '#time_range_out_minut1' ) . val ( minutes1 ) ;
}
}
} ) ;
var date1 _hours = Math . floor ( date1 / 60 ) ;
var date2 _hours = date1 _hours + 1 ;
var date2 _minute = now . getMinutes ( )
if ( date1 _hours <= 9 ) date1 _hours = '0' + date1 _hours ;
if ( date2 _hours <= 9 ) date2 _hours = '0' + date2 _hours ;
if ( date2 _minute <= 9 ) date2 _minute = '0' + date2 _minute ;
if ( $ ( '#time_range_out_hour' ) . val ( ) != '' && $ ( '#time_range_out_hour' ) . val ( ) != 'None' ) {
$ ( '#time_range_out_hour' ) . val ( $ ( '#time_range_out_hour' ) . val ( ) ) ;
} else {
$ ( '#time_range_out_hour' ) . val ( date1 _hours ) ;
}
if ( $ ( '#time_range_out_minut' ) . val ( ) != '' && $ ( '#time_range_out_minut' ) . val ( ) != 'None' ) {
$ ( '#time_range_out_minut' ) . val ( $ ( '#time_range_out_minut' ) . val ( ) ) ;
} else {
$ ( '#time_range_out_minut' ) . val ( '00' ) ;
}
if ( $ ( '#time_range_out_hour1' ) . val ( ) != '' && $ ( '#time_range_out_hour1' ) . val ( ) != 'None' ) {
$ ( '#time_range_out_hour1' ) . val ( $ ( '#time_range_out_hour1' ) . val ( ) ) ;
} else {
$ ( '#time_range_out_hour1' ) . val ( date2 _hours ) ;
}
if ( $ ( '#time_range_out_minut1' ) . val ( ) != '' && $ ( '#time_range_out_minut1' ) . val ( ) != 'None' ) {
$ ( '#time_range_out_minut1' ) . val ( $ ( '#time_range_out_minut1' ) . val ( ) ) ;
} else {
$ ( '#time_range_out_minut1' ) . val ( date2 _minute ) ;
}
$ ( '#0' ) . click ( function ( ) {
$ ( '.auto-refresh-div' ) . show ( "blind" , "fast" ) ;
$ ( '#0' ) . css ( "display" , "none" ) ;
$ ( '#1' ) . css ( "display" , "inline" ) ;
} ) ;
$ ( '#1' ) . click ( function ( ) {
$ ( '.auto-refresh-div' ) . hide ( "blind" , "fast" ) ;
$ ( '#1' ) . css ( "display" , "none" ) ;
$ ( '#0' ) . css ( "display" , "inline" ) ;
} ) ;
$ ( '#select_all' ) . click ( function ( ) {
var checkboxes = $ ( this ) . closest ( 'form' ) . find ( ':checkbox' ) ;
if ( $ ( this ) . prop ( 'checked' ) ) {
$ ( "form input[type='checkbox']" ) . attr ( "checked" , true ) . change ( ) ;
$ ( "#label_select_all" ) . text ( "Unselect all" ) ;
} else {
$ ( "form input[type='checkbox']" ) . attr ( "checked" , false ) . change ( ) ;
$ ( "#label_select_all" ) . text ( "Select all" ) ;
}
} ) ;
$ ( '#runtimeapiform' ) . submit ( function ( ) {
showRuntime ( ) ;
return false ;
} ) ;
$ ( '#auth' ) . submit ( function ( ) {
let searchParams = new URLSearchParams ( window . location . search )
if ( searchParams . has ( 'ref' ) ) {
var ref = searchParams . get ( 'ref' ) ;
} else {
var ref = "overview.py" ;
}
$ . ajax ( {
url : "login.py" ,
data : {
login : $ ( '#login' ) . val ( ) ,
pass : $ ( '#pass' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
if ( data . indexOf ( 'ok' ) != '-1' ) {
window . location . replace ( ref ) ;
} else if ( data . indexOf ( 'disabled' ) != '-1' ) {
$ ( '.alert' ) . show ( ) ;
$ ( '.alert' ) . html ( data ) ;
} else if ( data . indexOf ( 'ban' ) != '-1' ) {
ban ( ) ;
}
}
} ) ;
return false ;
} ) ;
var showUpdates = $ ( "#show-updates" ) . dialog ( {
autoOpen : false ,
resizable : false ,
height : "auto" ,
width : 600 ,
modal : true ,
title : 'There is a new version HAProxy-WI.' ,
show : {
effect : "fade" ,
duration : 200
} ,
hide : {
effect : "fade" ,
duration : 200
} ,
buttons : {
Close : function ( ) {
$ ( this ) . dialog ( "close" ) ;
clearTips ( ) ;
}
}
} ) ;
$ ( '#show-updates-button' ) . click ( function ( ) {
showUpdates . dialog ( 'open' ) ;
} ) ;
var location = window . location . href ;
var cur _url = '/app/' + location . split ( '/' ) . pop ( ) ;
cur _url = cur _url . split ( '?' ) ;
cur _url = cur _url [ 0 ] . split ( '#' ) ;
if ( cur _url [ 0 ] == "/app/users.py" || cur _url [ 0 ] == "/app/servers.py" ) {
$ ( ".users" ) . on ( "click" , function ( ) {
$ ( '.menu li ul li' ) . each ( function ( ) {
$ ( this ) . find ( 'a' ) . css ( 'padding-left' , '20px' )
$ ( this ) . find ( 'a' ) . css ( 'border-left' , '0px solid #5D9CEB' ) ;
$ ( this ) . children ( ".users" ) . css ( 'padding-left' , '30px' ) ;
$ ( this ) . children ( ".users" ) . css ( 'border-left' , '4px solid #5D9CEB' ) ;
} ) ;
$ ( "#tabs" ) . tabs ( "option" , "active" , 0 ) ;
} ) ;
if ( cur _url [ 0 ] == "/app/users.py" ) {
$ ( ".group" ) . on ( "click" , function ( ) {
$ ( '.menu li ul li' ) . each ( function ( ) {
$ ( this ) . find ( 'a' ) . css ( 'padding-left' , '20px' )
$ ( this ) . find ( 'a' ) . css ( 'border-left' , '0px solid #5D9CEB' ) ;
$ ( this ) . children ( ".group" ) . css ( 'padding-left' , '30px' ) ;
$ ( this ) . children ( ".group" ) . css ( 'border-left' , '4px solid #5D9CEB' ) ;
} ) ;
$ ( "#tabs" ) . tabs ( "option" , "active" , 1 ) ;
} ) ;
$ ( ".runtime" ) . on ( "click" , function ( ) {
$ ( '.menu li ul li' ) . each ( function ( ) {
$ ( this ) . find ( 'a' ) . css ( 'border-left' , '0px solid #5D9CEB' ) ;
$ ( this ) . find ( 'a' ) . css ( 'padding-left' , '20px' )
$ ( this ) . children ( ".runtime" ) . css ( 'padding-left' , '30px' ) ;
$ ( this ) . children ( ".runtime" ) . css ( 'border-left' , '4px solid #5D9CEB' ) ;
} ) ;
$ ( "#tabs" ) . tabs ( "option" , "active" , 2 ) ;
} ) ;
$ ( ".admin" ) . on ( "click" , function ( ) {
$ ( '.menu li ul li' ) . each ( function ( ) {
$ ( this ) . find ( 'a' ) . css ( 'padding-left' , '20px' )
$ ( this ) . find ( 'a' ) . css ( 'border-left' , '0px solid #5D9CEB' ) ;
$ ( this ) . children ( ".admin" ) . css ( 'padding-left' , '30px' ) ;
$ ( this ) . children ( ".admin" ) . css ( 'border-left' , '4px solid #5D9CEB' ) ;
} ) ;
$ ( "#tabs" ) . tabs ( "option" , "active" , 3 ) ;
} ) ;
$ ( ".settings" ) . on ( "click" , function ( ) {
$ ( '.menu li ul li' ) . each ( function ( ) {
$ ( this ) . find ( 'a' ) . css ( 'border-left' , '0px solid #5D9CEB' ) ;
$ ( this ) . find ( 'a' ) . css ( 'padding-left' , '20px' )
$ ( this ) . children ( ".settings" ) . css ( 'padding-left' , '30px' ) ;
$ ( this ) . children ( ".settings" ) . css ( 'border-left' , '4px solid #5D9CEB' ) ;
} ) ;
$ ( "#tabs" ) . tabs ( "option" , "active" , 5 ) ;
} ) ;
$ ( ".updatehapwi" ) . on ( "click" , function ( ) {
$ ( '.menu li ul li' ) . each ( function ( ) {
$ ( this ) . find ( 'a' ) . css ( 'border-left' , '0px solid #5D9CEB' ) ;
$ ( this ) . find ( 'a' ) . css ( 'padding-left' , '20px' )
$ ( this ) . children ( ".updatehapwi" ) . css ( 'padding-left' , '30px' ) ;
$ ( this ) . children ( ".updatehapwi" ) . css ( 'border-left' , '4px solid #5D9CEB' ) ;
} ) ;
$ ( "#tabs" ) . tabs ( "option" , "active" , 6 ) ;
} ) ;
} else {
$ ( ".runtime" ) . on ( "click" , function ( ) {
$ ( '.menu li ul li' ) . each ( function ( ) {
$ ( this ) . find ( 'a' ) . css ( 'padding-left' , '20px' )
$ ( this ) . find ( 'a' ) . css ( 'border-left' , '0px solid #5D9CEB' ) ;
$ ( this ) . children ( ".runtime" ) . css ( 'padding-left' , '30px' ) ;
$ ( this ) . children ( ".runtime" ) . css ( 'border-left' , '4px solid #5D9CEB' ) ;
} ) ;
$ ( "#tabs" ) . tabs ( "option" , "active" , 1 ) ;
} ) ;
$ ( ".admin" ) . on ( "click" , function ( ) {
$ ( '.menu li ul li' ) . each ( function ( ) {
$ ( this ) . find ( 'a' ) . css ( 'border-left' , '0px solid #5D9CEB' ) ;
$ ( this ) . find ( 'a' ) . css ( 'padding-left' , '20px' )
$ ( this ) . children ( ".admin" ) . css ( 'padding-left' , '30px' ) ;
$ ( this ) . children ( ".admin" ) . css ( 'border-left' , '4px solid #5D9CEB' ) ;
} ) ;
$ ( "#tabs" ) . tabs ( "option" , "active" , 2 ) ;
} ) ;
$ ( ".hap" ) . on ( "click" , function ( ) {
$ ( '.menu li ul li' ) . each ( function ( ) {
$ ( this ) . find ( 'a' ) . css ( 'padding-left' , '20px' )
$ ( this ) . find ( 'a' ) . css ( 'border-left' , '0px solid #5D9CEB' ) ;
$ ( this ) . children ( ".hap" ) . css ( 'padding-left' , '30px' ) ;
$ ( this ) . children ( ".hap" ) . css ( 'border-left' , '4px solid #5D9CEB' ) ;
} ) ;
$ ( "#tabs" ) . tabs ( "option" , "active" , 4 ) ;
} ) ;
$ ( ".backup" ) . on ( "click" , function ( ) {
$ ( '.menu li ul li' ) . each ( function ( ) {
$ ( this ) . find ( 'a' ) . css ( 'padding-left' , '20px' )
$ ( this ) . find ( 'a' ) . css ( 'border-left' , '0px solid #5D9CEB' ) ;
$ ( this ) . children ( ".backup" ) . css ( 'padding-left' , '30px' ) ;
$ ( this ) . children ( ".backup" ) . css ( 'border-left' , '4px solid #5D9CEB' ) ;
} ) ;
$ ( "#tabs" ) . tabs ( "option" , "active" , 5 ) ;
} ) ;
}
}
$ ( "#haproxyaddserv" ) . on ( 'selectmenuchange' , function ( ) {
$ . ajax ( {
url : "options.py" ,
data : {
get _hap _v : 1 ,
serv : $ ( '#haproxyaddserv option:selected' ) . val ( ) ,
token : $ ( '#token' ) . val ( )
} ,
type : "POST" ,
success : function ( data ) {
data = data . replace ( /^\s+|\s+$/g , '' ) ;
if ( data != '' ) {
data = data + '-1' ;
$ ( '#cur_hap_ver' ) . text ( data ) ;
$ ( '#install' ) . text ( 'Update' ) ;
$ ( '#install' ) . attr ( 'title' , 'Update HAProxy' ) ;
$ ( '#syn_flood' ) . checkboxradio ( 'disable' ) ;
$ ( '#syn_flood' ) . prop ( "checked" , false ) ;
$ ( '#syn_flood' ) . checkboxradio ( 'refresh' ) ;
} else {
$ ( '#cur_hap_ver' ) . text ( 'HAProxy has not installed' ) ;
$ ( '#install' ) . text ( 'Install' ) ;
$ ( '#install' ) . attr ( 'title' , 'Install HAProxy' ) ;
$ ( '#syn_flood' ) . checkboxradio ( 'enable' ) ;
$ ( '#syn_flood' ) . prop ( "checked" , true ) ;
$ ( '#syn_flood' ) . checkboxradio ( 'refresh' ) ;
}
}
} ) ;
} ) ;
} ) ;
function sleep ( ms ) {
return new Promise ( resolve => setTimeout ( resolve , ms ) ) ;
}
async function ban ( ) {
$ ( '#login' ) . attr ( 'disabled' , 'disabled' ) ;
$ ( '#pass' ) . attr ( 'disabled' , 'disabled' ) ;
$ ( "input[type=submit], button" ) . button ( 'disable' ) ;
$ ( '.alert' ) . show ( ) ;
$ ( '#ban_10' ) . show ( ) ;
$ ( '#ban_timer' ) . text ( 10 ) ;
let i = 10 ;
while ( i > 0 ) {
i -- ;
await sleep ( 1000 ) ;
$ ( '#ban_timer' ) . text ( i ) ;
}
$ ( '#login' ) . removeAttr ( 'disabled' ) ;
$ ( '#pass' ) . removeAttr ( 'disabled' ) ;
$ ( "input[type=submit], button" ) . button ( 'enable' ) ;
$ ( '#ban_10' ) . hide ( ) ;
}
function replace _text ( id _textarea , text _var ) {
var str = $ ( id _textarea ) . val ( ) ;
var len = str . length ;
var len _var = text _var . length ;
var beg = str . indexOf ( text _var ) ;
var end = beg + len _var
var text _val = str . substring ( 0 , beg ) + str . substring ( end , len ) ;
$ ( id _textarea ) . text ( text _val ) ;
}
function createHistroy ( ) {
try {
var get _history _array = JSON . parse ( Cookies . get ( 'history' ) ) ;
}
catch {
var get _history _array = [ 'login.py' , 'login.py' , 'login.py' ] ;
Cookies . set ( 'history' , JSON . stringify ( get _history _array ) , { expires : 1 , path : '/app' } ) ;
}
}
function listHistroy ( ) {
var browse _history = JSON . parse ( Cookies . get ( 'history' ) ) ;
var history _link = '' ;
var title = [ ]
var link _text = [ ]
for ( let i = 0 ; i < browse _history . length ; i ++ ) {
if ( i == 0 ) {
if ( browse _history [ 0 ] == browse _history [ 1 ] ) {
continue
}
browse _history [ 0 ] = browse _history [ 1 ] ;
}
if ( i == 1 ) {
if ( browse _history [ 1 ] == browse _history [ 2 ] ) {
continue
}
browse _history [ 1 ] = browse _history [ 2 ]
}
if ( i == 2 ) {
browse _history [ 2 ] = cur _url [ 0 ]
}
$ ( function ( ) {
$ ( '.menu li ul li' ) . each ( function ( ) {
var link1 = $ ( this ) . find ( 'a' ) . attr ( 'href' ) ;
var link2 = link1 . split ( '/' ) [ 2 ]
if ( browse _history [ i ] == link2 ) {
title [ i ] = $ ( this ) . find ( 'a' ) . attr ( 'title' ) ;
link _text [ i ] = $ ( this ) . find ( 'a' ) . text ( ) ;
history _link = '<li><a href="' + browse _history [ i ] + '" title="' + title [ i ] + '">' + link _text [ i ] + '</a></li>'
$ ( '#browse_histroy' ) . append ( history _link ) ;
}
} ) ;
} ) ;
}
Cookies . set ( 'history' , JSON . stringify ( browse _history ) , { expires : 1 , path : '/app' } ) ;
}
createHistroy ( )
listHistroy ( )