@@ -4,7 +4,7 @@ var d = 0;
var server _status = new Array ( ) ;
function timeSince ( date ) {
if ( date == 0 )
if ( date == 0 )
return "从未." ;
var seconds = Math . floor ( ( new Date ( ) - date ) / 1000 ) ;
@@ -15,10 +15,11 @@ function timeSince(date) {
return "几秒前." ;
}
function bytesToSize ( bytes , precision , si ) {
function bytesToSize ( bytes , precision , si )
{
var ret ;
si = typeof si !== 'undefined' ? si : 0 ;
if ( si != 0 ) {
if ( si != 0 ) {
var megabyte = 1000 * 1000 ;
var gigabyte = megabyte * 1000 ;
var terabyte = gigabyte * 1000 ;
@@ -49,41 +50,40 @@ function bytesToSize(bytes, precision, si) {
}
function uptime ( ) {
$ . getJSON ( "json/stats.json" , function ( result ) {
$ . getJSON ( "json/stats.json" , function ( result ) {
$ ( "#loading-notice" ) . remove ( ) ;
if ( result . reload )
setTimeout ( function ( ) { location . reload ( ) } , 1000 ) ;
if ( result . reload )
setTimeout ( function ( ) { location . reload ( ) } , 1000 ) ;
let i = 0 ;
for ( let key in result . servers ) {
for ( var i = 0 , rlen = result . servers . length ; i < rlen ; i ++ ) {
var TableRow = $ ( "#servers tr#r" + i ) ;
var ExpandRow = $ ( "#servers #rt" + i ) ;
var hack ; // fuck CSS for making me do this
if ( i % 2 ) hack = "odd" ; else hack = "even" ;
if ( i % 2 ) hack = "odd" ; else hack = "even" ;
if ( ! TableRow . length ) {
$ ( "#servers" ) . append (
"<tr id=\"r" + i + "\" data-toggle=\"collapse\" data-target=\"#rt" + i + "\" class=\"accordion-toggle " + hack + "\">" +
"<td id=\"online_status\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
"<td id=\"month_traffic\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
"<td id=\"name\">加载中</td>" +
"<td id=\"type\">加载中</td>" +
"<td id=\"location\">加载中</td>" +
"<td id=\"uptime\">加载中</td>" +
"<td id=\"load\">加载中</td>" +
"<td id=\"network\">加载中</td>" +
"<td id=\"traffic\">加载中</td>" +
"<td id=\"cpu\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
"<td id=\"memory\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
"<td id=\"hdd\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
"<td id=\"ping\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
"<td id=\"online_status\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
"<td id=\"month_traffic\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
"<td id=\"name\">加载中</td>" +
"<td id=\"type\">加载中</td>" +
"<td id=\"location\">加载中</td>" +
"<td id=\"uptime\">加载中</td>" +
"<td id=\"load\">加载中</td>" +
"<td id=\"network\">加载中</td>" +
"<td id=\"traffic\">加载中</td>" +
"<td id=\"cpu\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
"<td id=\"memory\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
"<td id=\"hdd\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
"<td id=\"ping\"><div class=\"progress\"><div style=\"width: 100%;\" class=\"progress-bar progress-bar-warning\"><small>加载中</small></div></div></td>" +
"</tr>" +
"<tr class=\"expandRow " + hack + "\"><td colspan=\"16\"><div class=\"accordian-body collapse\" id=\"rt" + i + "\">" +
"<div id=\"expand_mem\">加载中</div>" +
"<div id=\"expand_swap\">加载中</div>" +
"<div id=\"expand_hdd\">加载中</div>" +
"<div id=\"expand_tupd\">加载中</div>" +
"<div id=\"expand_ping\">加载中</div>" +
"<div id=\"expand_custom\">加载中</div>" +
"<div id=\"expand_mem\">加载中</div>" +
"<div id=\"expand_swap\">加载中</div>" +
"<div id=\"expand_hdd\">加载中</div>" +
"<div id=\"expand_tupd\">加载中</div>" +
"<div id=\"expand_ping\">加载中</div>" +
"<div id=\"expand_custom\">加载中</div>" +
"</div></td></tr>"
) ;
TableRow = $ ( "#servers tr#r" + i ) ;
@@ -91,20 +91,20 @@ function uptime() {
server _status [ i ] = true ;
}
TableRow = TableRow [ 0 ] ;
if ( error ) {
if ( error ) {
TableRow . setAttribute ( "data-target" , "#rt" + i ) ;
server _status [ i ] = true ;
}
// online_status
if ( result . servers [ key ] . online4 && ! result . servers [ key ] . online6 ) {
if ( result . servers [ i ] . online4 && ! result . servers [ i ] . online6 ) {
TableRow . children [ "online_status" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-success" ;
TableRow . children [ "online_status" ] . children [ 0 ] . children [ 0 ] . innerHTML = "<small>IPv4</small>" ;
} else if ( result . servers [ key ] . online4 && result . servers [ key ] . online6 ) {
} else if ( result . servers [ i ] . online4 && result . servers [ i ] . online6 ) {
TableRow . children [ "online_status" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-success" ;
TableRow . children [ "online_status" ] . children [ 0 ] . children [ 0 ] . innerHTML = "<small>双栈</small>" ;
} else if ( ! result . servers [ key ] . online4 && result . servers [ key ] . online6 ) {
TableRow . children [ "online_status" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-success" ;
} else if ( ! result . servers [ i ] . online4 && result . servers [ i ] . online6 ) {
TableRow . children [ "online_status" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-success" ;
TableRow . children [ "online_status" ] . children [ 0 ] . children [ 0 ] . innerHTML = "<small>IPv6</small>" ;
} else {
TableRow . children [ "online_status" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-danger" ;
@@ -112,20 +112,20 @@ function uptime() {
}
// Name
TableRow . children [ "name" ] . innerHTML = result . servers [ key ] . name ;
TableRow . children [ "name" ] . innerHTML = result . servers [ i ] . name ;
// Type
TableRow . children [ "type" ] . innerHTML = result . servers [ key ] . type ;
TableRow . children [ "type" ] . innerHTML = result . servers [ i ] . type ;
// Location
TableRow . children [ "location" ] . innerHTML = result . servers [ key ] . location ;
if ( ! result . servers [ key ] . online4 && ! result . servers [ key ] . online6 ) {
TableRow . children [ "location" ] . innerHTML = result . servers [ i ] . location ;
if ( ! result . servers [ i ] . online4 && ! result . servers [ i ] . online6 ) {
if ( server _status [ i ] ) {
TableRow . children [ "uptime" ] . innerHTML = "– " ;
TableRow . children [ "load" ] . innerHTML = "– " ;
TableRow . children [ "network" ] . innerHTML = "– " ;
TableRow . children [ "traffic" ] . innerHTML = "– " ;
TableRow . children [ "month_traffic" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-danger " ;
TableRow . children [ "month_traffic" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-warning " ;
TableRow . children [ "month_traffic" ] . children [ 0 ] . children [ 0 ] . innerHTML = "<small>关闭</small>" ;
TableRow . children [ "cpu" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-danger" ;
TableRow . children [ "cpu" ] . children [ 0 ] . children [ 0 ] . style . width = "100%" ;
@@ -139,7 +139,7 @@ function uptime() {
TableRow . children [ "ping" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-danger" ;
TableRow . children [ "ping" ] . children [ 0 ] . children [ 0 ] . style . width = "100%" ;
TableRow . children [ "ping" ] . children [ 0 ] . children [ 0 ] . innerHTML = "<small>关闭</small>" ;
if ( ExpandRow . hasClass ( "in" ) ) {
if ( ExpandRow . hasClass ( "in" ) ) {
ExpandRow . collapse ( "hide" ) ;
}
TableRow . setAttribute ( "data-target" , "" ) ;
@@ -153,68 +153,68 @@ function uptime() {
// month traffic
var monthtraffic = "" ;
var trafficdiff _in = result . servers [ key ] . network _in - result . servers [ key ] . last _network _in ;
var trafficdiff _out = result . servers [ key ] . network _out - result . servers [ key ] . last _network _out ;
if ( trafficdiff _in < 1024 * 1024 * 1024 * 1024 )
monthtraffic += ( trafficdiff _in / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "G" ;
var trafficdiff _in = result . servers [ i ] . network _in - result . servers [ i ] . last _network _in ;
var trafficdiff _out = result . servers [ i ] . network _out - result . servers [ i ] . last _network _out ;
if ( trafficdiff _in < 1024 * 1024 * 1024 * 1024 )
monthtraffic += ( trafficdiff _in / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "G" ;
else
monthtraffic += ( trafficdiff _in / 1024 / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "T" ;
monthtraffic += ( trafficdiff _in / 1024 / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "T" ;
monthtraffic += " | "
if ( trafficdiff _out < 1024 * 1024 * 1024 * 1024 )
monthtraffic += ( trafficdiff _out / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "G" ;
if ( trafficdiff _out < 1024 * 1024 * 1024 * 1024 )
monthtraffic += ( trafficdiff _out / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "G" ;
else
monthtraffic += ( trafficdiff _out / 1024 / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "T" ;
monthtraffic += ( trafficdiff _out / 1024 / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "T" ;
TableRow . children [ "month_traffic" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-success" ;
TableRow . children [ "month_traffic" ] . children [ 0 ] . children [ 0 ] . innerHTML = "<small>" + monthtraffic + "</small>" ;
TableRow . children [ "month_traffic" ] . children [ 0 ] . children [ 0 ] . innerHTML = "<small>" + monthtraffic + "</small>" ;
// Uptime
TableRow . children [ "uptime" ] . innerHTML = result . servers [ key ] . uptime ;
TableRow . children [ "uptime" ] . innerHTML = result . servers [ i ] . uptime ;
// Load: default load_1, you can change show: load_1, load_5, load_15
if ( result . servers [ key ] . load == - 1 ) {
TableRow . children [ "load" ] . innerHTML = "– " ;
if ( result . servers [ i ] . load == - 1 ) {
TableRow . children [ "load" ] . innerHTML = "– " ;
} else {
TableRow . children [ "load" ] . innerHTML = result . servers [ key ] . load _1 . toFixed ( 2 ) ;
TableRow . children [ "load" ] . innerHTML = result . servers [ i ] . load _1 . toFixed ( 2 ) ;
}
// Network
var netstr = "" ;
if ( result . servers [ key ] . network _rx < 1024 * 1024 )
netstr += ( result . servers [ key ] . network _rx / 1024 ) . toFixed ( 1 ) + "K" ;
if ( result . servers [ i ] . network _rx < 1024 * 1024 )
netstr += ( result . servers [ i ] . network _rx / 1024 ) . toFixed ( 1 ) + "K" ;
else
netstr += ( result . servers [ key ] . network _rx / 1024 / 1024 ) . toFixed ( 1 ) + "M" ;
netstr += ( result . servers [ i ] . network _rx / 1024 / 1024 ) . toFixed ( 1 ) + "M" ;
netstr += " | "
if ( result . servers [ key ] . network _tx < 1024 * 1024 )
netstr += ( result . servers [ key ] . network _tx / 1024 ) . toFixed ( 1 ) + "K" ;
if ( result . servers [ i ] . network _tx < 1024 * 1024 )
netstr += ( result . servers [ i ] . network _tx / 1024 ) . toFixed ( 1 ) + "K" ;
else
netstr += ( result . servers [ key ] . network _tx / 1024 / 1024 ) . toFixed ( 1 ) + "M" ;
netstr += ( result . servers [ i ] . network _tx / 1024 / 1024 ) . toFixed ( 1 ) + "M" ;
TableRow . children [ "network" ] . innerHTML = netstr ;
//Traffic
var trafficstr = "" ;
if ( result . servers [ key ] . network _in < 1024 * 1024 * 1024 * 1024 )
trafficstr += ( result . servers [ key ] . network _in / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "G" ;
else
trafficstr += ( result . servers [ key ] . network _in / 1024 / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "T" ;
if ( result . servers [ i ] . network _in < 1024 * 1024 * 1024 * 1024 )
trafficstr += ( result . servers [ i ] . network _in / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "G" ;
else
trafficstr += ( result . servers [ i ] . network _in / 1024 / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "T" ;
trafficstr += " | "
if ( result . servers [ key ] . network _out < 1024 * 1024 * 1024 * 1024 )
trafficstr += ( result . servers [ key ] . network _out / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "G" ;
if ( result . servers [ i ] . network _out < 1024 * 1024 * 1024 * 1024 )
trafficstr += ( result . servers [ i ] . network _out / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "G" ;
else
trafficstr += ( result . servers [ key ] . network _out / 1024 / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "T" ;
trafficstr += ( result . servers [ i ] . network _out / 1024 / 1024 / 1024 / 1024 ) . toFixed ( 1 ) + "T" ;
TableRow . children [ "traffic" ] . innerHTML = trafficstr ;
// CPU
if ( result . servers [ key ] . cpu >= 90 )
if ( result . servers [ i ] . cpu >= 90 )
TableRow . children [ "cpu" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-danger" ;
else if ( result . servers [ key ] . cpu >= 80 )
else if ( result . servers [ i ] . cpu >= 80 )
TableRow . children [ "cpu" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-warning" ;
else
TableRow . children [ "cpu" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-success" ;
TableRow . children [ "cpu" ] . children [ 0 ] . children [ 0 ] . style . width = result . servers [ key ] . cpu + "%" ;
TableRow . children [ "cpu" ] . children [ 0 ] . children [ 0 ] . innerHTML = result . servers [ key ] . cpu + "%" ;
TableRow . children [ "cpu" ] . children [ 0 ] . children [ 0 ] . style . width = result . servers [ i ] . cpu + "%" ;
TableRow . children [ "cpu" ] . children [ 0 ] . children [ 0 ] . innerHTML = result . servers [ i ] . cpu + "%" ;
// Memory
var Mem = ( ( result . servers [ key ] . memory _used / result . servers [ key ] . memory _total ) * 100.0 ) . toFixed ( 0 ) ;
var Mem = ( ( result . servers [ i ] . memory _used / result . servers [ i ] . memory _total ) * 100.0 ) . toFixed ( 0 ) ;
if ( Mem >= 90 )
TableRow . children [ "memory" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-danger" ;
else if ( Mem >= 80 )
@@ -223,12 +223,12 @@ function uptime() {
TableRow . children [ "memory" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-success" ;
TableRow . children [ "memory" ] . children [ 0 ] . children [ 0 ] . style . width = Mem + "%" ;
TableRow . children [ "memory" ] . children [ 0 ] . children [ 0 ] . innerHTML = Mem + "%" ;
ExpandRow [ 0 ] . children [ "expand_mem" ] . innerHTML = "内存: " + bytesToSize ( result . servers [ key ] . memory _used * 1024 , 2 ) + " / " + bytesToSize ( result . servers [ key ] . memory _total * 1024 , 2 ) ;
ExpandRow [ 0 ] . children [ "expand_mem" ] . innerHTML = "内存: " + bytesToSize ( result . servers [ i ] . memory _used * 1024 , 2 ) + " / " + bytesToSize ( result . servers [ i ] . memory _total * 1024 , 2 ) ;
// Swap
ExpandRow [ 0 ] . children [ "expand_swap" ] . innerHTML = "交换分区: " + bytesToSize ( result . servers [ key ] . swap _used * 1024 , 2 ) + " / " + bytesToSize ( result . servers [ key ] . swap _total * 1024 , 2 ) ;
ExpandRow [ 0 ] . children [ "expand_swap" ] . innerHTML = "交换分区: " + bytesToSize ( result . servers [ i ] . swap _used * 1024 , 2 ) + " / " + bytesToSize ( result . servers [ i ] . swap _total * 1024 , 2 ) ;
// HDD
var HDD = ( ( result . servers [ key ] . hdd _used / result . servers [ key ] . hdd _total ) * 100.0 ) . toFixed ( 0 ) ;
var HDD = ( ( result . servers [ i ] . hdd _used / result . servers [ i ] . hdd _total ) * 100.0 ) . toFixed ( 0 ) ;
if ( HDD >= 90 )
TableRow . children [ "hdd" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-danger" ;
else if ( HDD >= 80 )
@@ -240,49 +240,48 @@ function uptime() {
// IO Speed for HDD.
// IO, 过小的B字节单位没有意义
var io = "" ;
if ( result . servers [ key ] . io _read < 1024 * 1024 )
io += parseInt ( result . servers [ key ] . io _read / 1024 ) + "K" ;
if ( result . servers [ i ] . io _read < 1024 * 1024 )
io += parseInt ( result . servers [ i ] . io _read / 1024 ) + "K" ;
else
io += parseInt ( result . servers [ key ] . io _read / 1024 / 1024 ) + "M" ;
io += parseInt ( result . servers [ i ] . io _read / 1024 / 1024 ) + "M" ;
io += " / "
if ( result . servers [ key ] . io _write < 1024 * 1024 )
io += parseInt ( result . servers [ key ] . io _write / 1024 ) + "K" ;
if ( result . servers [ i ] . io _write < 1024 * 1024 )
io += parseInt ( result . servers [ i ] . io _write / 1024 ) + "K" ;
else
io += parseInt ( result . servers [ key ] . io _write / 1024 / 1024 ) + "M" ;
io += parseInt ( result . servers [ i ] . io _write / 1024 / 1024 ) + "M" ;
// Expand for HDD.
ExpandRow [ 0 ] . children [ "expand_hdd" ] . innerHTML = "硬盘|读写: " + bytesToSize ( result . servers [ key ] . hdd _used * 1024 * 1024 , 2 ) + " / " + bytesToSize ( result . servers [ key ] . hdd _total * 1024 * 1024 , 2 ) + " | " + io ;
ExpandRow [ 0 ] . children [ "expand_hdd" ] . innerHTML = "硬盘|读写: " + bytesToSize ( result . servers [ i ] . hdd _used * 1024 * 1024 , 2 ) + " / " + bytesToSize ( result . servers [ i ] . hdd _total * 1024 * 1024 , 2 ) + " | " + io ;
// delay time
// delay time
// tcp, udp, process, thread count
ExpandRow [ 0 ] . children [ "expand_tupd" ] . innerHTML = "TCP/UDP/进/线: " + result . servers [ key ] . tcp _count + " / " + result . servers [ key ] . udp _count + " / " + result . servers [ key ] . process _count + " / " + result . servers [ key ] . thread _count ;
ExpandRow [ 0 ] . children [ "expand_ping" ] . innerHTML = "联通/电信/移动: " + result . servers [ key ] . time _10010 + "ms / " + result . servers [ key ] . time _189 + "ms / " + result . servers [ key ] . time _10086 + "ms"
ExpandRow [ 0 ] . children [ "expand_tupd" ] . innerHTML = "TCP/UDP/进/线: " + result . servers [ i ] . tcp _count + " / " + result . servers [ i ] . udp _count + " / " + result . servers [ i ] . process _count + " / " + result . servers [ i ] . thread _count ;
ExpandRow [ 0 ] . children [ "expand_ping" ] . innerHTML = "联通/电信/移动: " + result . servers [ i ] . time _10010 + "ms / " + result . servers [ i ] . time _189 + "ms / " + result . servers [ i ] . time _10086 + "ms"
// ping
var PING _10010 = result . servers [ key ] . ping _10010 . toFixed ( 0 ) ;
var PING _189 = result . servers [ key ] . ping _189 . toFixed ( 0 ) ;
var PING _10086 = result . servers [ key ] . ping _10086 . toFixed ( 0 ) ;
if ( PING _10010 >= 7 0 || PING _189 >= 7 0 || PING _10086 >= 7 0)
TableRow . children [ "ping" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-warning" ;
else
TableRow . children [ "ping" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-success" ;
TableRow . children [ "ping" ] . children [ 0 ] . children [ 0 ] . innerHTML = PING _10010 + "- " + PING _189 + "- " + PING _10086 + "" ;
// ping
var PING _10010 = result . servers [ i ] . ping _10010 . toFixed ( 0 ) ;
var PING _189 = result . servers [ i ] . ping _189 . toFixed ( 0 ) ;
var PING _10086 = result . servers [ i ] . ping _10086 . toFixed ( 0 ) ;
if ( PING _10010 >= 2 0 || PING _189 >= 2 0 || PING _10086 >= 2 0)
TableRow . children [ "ping" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-warning" ;
else
TableRow . children [ "ping" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-success" ;
TableRow . children [ "ping" ] . children [ 0 ] . children [ 0 ] . innerHTML = PING _10010 + "%💻 " + PING _189 + "%💻 " + PING _10086 + "% " ;
// Custom
if ( result . servers [ key ] . custom ) {
ExpandRow [ 0 ] . children [ "expand_custom" ] . innerHTML = result . servers [ key ] . custom
if ( result . servers [ i ] . custom ) {
ExpandRow [ 0 ] . children [ "expand_custom" ] . innerHTML = result . servers [ i ] . custom
} else {
ExpandRow [ 0 ] . children [ "expand_custom" ] . innerHTML = ""
}
}
i ++ ;
} ;
d = new Date ( result . updated * 1000 ) ;
d = new Date ( result . updated * 1000 ) ;
error = 0 ;
} ) . fail ( function ( update _error ) {
} ) . fail ( function ( update _error ) {
if ( ! error ) {
$ ( "#servers > tr.accordion-toggle" ) . each ( function ( i ) {
$ ( "#servers > tr.accordion-toggle" ) . each ( function ( i ) {
var TableRow = $ ( "#servers tr#r" + i ) [ 0 ] ;
var ExpandRow = $ ( "#servers #rt" + i ) ;
TableRow . children [ "online_status" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-error" ;
@@ -309,7 +308,7 @@ function uptime() {
TableRow . children [ "ping" ] . children [ 0 ] . children [ 0 ] . className = "progress-bar progress-bar-error" ;
TableRow . children [ "ping" ] . children [ 0 ] . children [ 0 ] . style . width = "100%" ;
TableRow . children [ "ping" ] . children [ 0 ] . children [ 0 ] . innerHTML = "<small>错误</small>" ;
if ( ExpandRow . hasClass ( "in" ) ) {
if ( ExpandRow . hasClass ( "in" ) ) {
ExpandRow . collapse ( "hide" ) ;
}
TableRow . setAttribute ( "data-target" , "" ) ;
@@ -333,65 +332,65 @@ setInterval(updateTime, 2000);
// styleswitcher.js
function setActiveStyleSheet ( title , cookie = false ) {
var i , a , main ;
for ( i = 0 ; ( a = document . getElementsByTagName ( "link" ) [ i ] ) ; i ++ ) {
if ( a . getAttribute ( "rel" ) . indexOf ( "style" ) != - 1 && a . getAttribute ( "title" ) ) {
a . disabled = true ;
if ( a . getAttribute ( "title" ) == title ) a . disabled = false ;
}
}
if ( true == cookie ) {
createCookie ( "style" , title , 365 ) ;
}
function setActiveStyleSheet ( title , cookie = false ) {
var i , a , main ;
for ( i = 0 ; ( a = document . getElementsByTagName ( "link" ) [ i ] ) ; i ++ ) {
if ( a . getAttribute ( "rel" ) . indexOf ( "style" ) != - 1 && a . getAttribute ( "title" ) ) {
a . disabled = true ;
if ( a . getAttribute ( "title" ) == title ) a . disabled = false ;
}
}
if ( true == cookie ) {
createCookie ( "style" , title , 365 ) ;
}
}
function getActiveStyleSheet ( ) {
var i , a ;
for ( i = 0 ; ( a = document . getElementsByTagName ( "link" ) [ i ] ) ; i ++ ) {
if ( a . getAttribute ( "rel" ) . indexOf ( "style" ) != - 1 && a . getAttribute ( "title" ) && ! a . disabled )
for ( i = 0 ; ( a = document . getElementsByTagName ( "link" ) [ i ] ) ; i ++ ) {
if ( a . getAttribute ( "rel" ) . indexOf ( "style" ) != - 1 && a . getAttribute ( "title" ) && ! a . disabled )
return a . getAttribute ( "title" ) ;
}
return null ;
}
function createCookie ( name , value , days ) {
function createCookie ( name , value , days ) {
if ( days ) {
var date = new Date ( ) ;
date . setTime ( date . getTime ( ) + ( days * 24 * 60 * 60 * 1000 ) ) ;
var expires = "; expires=" + date . toGMTString ( ) ;
date . setTime ( date . getTime ( ) + ( days * 24 * 60 * 60 * 1000 ) ) ;
var expires = "; expires=" + date . toGMTString ( ) ;
}
else expires = "" ;
document . cookie = name + "=" + value + expires + "; path=/" ;
document . cookie = name + "=" + value + expires + "; path=/" ;
}
function readCookie ( name ) {
var nameEQ = name + "=" ;
var ca = document . cookie . split ( ';' ) ;
for ( var i = 0 ; i < ca . length ; i ++ ) {
for ( var i = 0 ; i < ca . length ; i ++ ) {
var c = ca [ i ] ;
while ( c . charAt ( 0 ) == ' ' )
c = c . substring ( 1 , c . length ) ;
while ( c . charAt ( 0 ) == ' ' )
c = c . substring ( 1 , c . length ) ;
if ( c . indexOf ( nameEQ ) == 0 )
return c . substring ( nameEQ . length , c . length ) ;
return c . substring ( nameEQ . length , c . length ) ;
}
return null ;
}
window . onload = function ( e ) {
var cookie = readCookie ( "style" ) ;
if ( cookie && cookie != 'null' ) {
setActiveStyleSheet ( cookie ) ;
} else {
function handleChange ( mediaQueryListEvent ) {
if ( mediaQueryListEvent . matches ) {
setActiveStyleSheet ( 'dark' ) ;
} else {
setActiveStyleSheet ( 'light' ) ;
}
}
const mediaQueryListDark = window . matchMedia ( '(prefers-color-scheme: dark)' ) ;
setActiveStyleSheet ( mediaQueryListDark . matches ? 'dark' : 'light' ) ;
mediaQueryListDark . addEventListener ( "change" , handleChange ) ;
}
window . onload = function ( e ) {
var cookie = readCookie ( "style" ) ;
if ( cookie && cookie != 'null' ) {
setActiveStyleSheet ( cookie ) ;
} else {
function handleChange ( mediaQueryListEvent ) {
if ( mediaQueryListEvent . matches ) {
setActiveStyleSheet ( 'dark' ) ;
} else {
setActiveStyleSheet ( 'light' ) ;
}
}
const mediaQueryListDark = window . matchMedia ( '(prefers-color-scheme: dark)' ) ;
setActiveStyleSheet ( mediaQueryListDark . matches ? 'dark' : 'light' ) ;
mediaQueryListDark . addEventListener ( "change" , handleChange ) ;
}
}