Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mirrors
openwrt
luci
提交
fd052a6e
L
luci
项目概览
mirrors
/
openwrt
/
luci
大约 1 年 前同步成功
通知
43
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
luci
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fd052a6e
编写于
9月 26, 2011
作者:
J
Jo-Philipp Wich
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modules/admin-full: rework status javascript code to use XHR.poll()
上级
b2b3b181
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
650 addition
and
695 deletion
+650
-695
modules/admin-full/luasrc/view/admin_network/iface_overview.htm
...s/admin-full/luasrc/view/admin_network/iface_overview.htm
+82
-88
modules/admin-full/luasrc/view/admin_network/iface_status.htm
...les/admin-full/luasrc/view/admin_network/iface_status.htm
+61
-69
modules/admin-full/luasrc/view/admin_network/lease_status.htm
...les/admin-full/luasrc/view/admin_network/lease_status.htm
+34
-42
modules/admin-full/luasrc/view/admin_network/wifi_overview.htm
...es/admin-full/luasrc/view/admin_network/wifi_overview.htm
+147
-156
modules/admin-full/luasrc/view/admin_network/wifi_status.htm
modules/admin-full/luasrc/view/admin_network/wifi_status.htm
+54
-62
modules/admin-full/luasrc/view/admin_status/index.htm
modules/admin-full/luasrc/view/admin_status/index.htm
+272
-278
未找到文件。
modules/admin-full/luasrc/view/admin_network/iface_overview.htm
浏览文件 @
fd052a6e
...
...
@@ -44,8 +44,7 @@ $Id$
s
.
innerHTML
=
'
<%:Waiting for router...%>
'
;
}
var
rcxhr
=
new
XHR
();
rcxhr
.
get
(
'
<%=luci.dispatcher.build_url("admin", "network")%>/iface_
'
+
(
reconnect
?
'
reconnect
'
:
'
shutdown
'
)
+
'
/
'
+
id
,
null
,
XHR
.
get
(
'
<%=luci.dispatcher.build_url("admin", "network")%>/iface_
'
+
(
reconnect
?
'
reconnect
'
:
'
shutdown
'
)
+
'
/
'
+
id
,
null
,
function
(
x
)
{
if
(
s
)
...
...
@@ -67,117 +66,112 @@ $Id$
var
wifidevs
=
<%=
luci
.
http
.
write_json
(
netdevs
)
%>
;
var
arptable
=
<%=
luci
.
http
.
write_json
(
arpcache
)
%>
;
(
function
()
{
var
func
=
arguments
.
callee
;
iwxhr
.
get
(
'
<%=luci.dispatcher.build_url("admin", "network", "iface_status", table.concat(netlist, ","))%>
'
,
null
,
function
(
x
,
ifcs
)
XHR
.
poll
(
5
,
'
<%=luci.dispatcher.build_url("admin", "network", "iface_status", table.concat(netlist, ","))%>
'
,
null
,
function
(
x
,
ifcs
)
{
if
(
ifcs
)
{
if
(
ifcs
)
for
(
var
idx
=
0
;
idx
<
ifcs
.
length
;
idx
++
)
{
for
(
var
idx
=
0
;
idx
<
ifcs
.
length
;
idx
++
)
var
ifc
=
ifcs
[
idx
];
var
html
=
''
;
var
s
=
document
.
getElementById
(
ifc
.
id
+
'
-ifc-devices
'
);
if
(
s
)
{
var
ifc
=
ifcs
[
idx
];
var
html
=
''
;
var
stat
=
String
.
format
(
'
<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px; vertical-align:middle" />
'
,
ifc
.
type
,
ifc
.
is_up
?
''
:
'
_disabled
'
);
var
s
=
document
.
getElementById
(
ifc
.
id
+
'
-ifc-devices
'
);
if
(
s
)
if
(
ifc
.
subdevices
&&
ifc
.
subdevices
.
length
)
{
var
stat
=
String
.
format
(
'
<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px; vertical-align:middle" />
'
,
ifc
.
type
,
ifc
.
is_up
?
''
:
'
_disabled
'
);
stat
+=
'
<strong>(
'
;
if
(
ifc
.
subdevices
&&
ifc
.
subdevices
.
length
)
for
(
var
j
=
0
;
j
<
ifc
.
subdevices
.
length
;
j
++
)
{
stat
+=
'
<strong>(
'
;
for
(
var
j
=
0
;
j
<
ifc
.
subdevices
.
length
;
j
++
)
{
var
sif
=
ifc
.
subdevices
[
j
];
var
sif
=
ifc
.
subdevices
[
j
];
stat
+=
String
.
format
(
'
<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px; vertical-align:middle" title="%q" />
'
,
sif
.
type
,
sif
.
is_up
?
''
:
'
_disabled
'
,
sif
.
name
);
}
stat
+=
String
.
format
(
'
<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px; vertical-align:middle" title="%q" />
'
,
sif
.
type
,
sif
.
is_up
?
''
:
'
_disabled
'
,
sif
.
name
);
}
stat
+=
'
)</strong>
'
;
}
stat
+=
'
)</strong>
'
;
}
stat
+=
String
.
format
(
'
<br /><small>%s</small>
'
,
ifc
.
name
);
stat
+=
String
.
format
(
'
<br /><small>%s</small>
'
,
ifc
.
name
);
s
.
innerHTML
=
stat
;
}
s
.
innerHTML
=
stat
;
var
d
=
document
.
getElementById
(
ifc
.
id
+
'
-ifc-description
'
);
if
(
d
&&
ifc
.
ifname
)
{
if
(
ifc
.
is_up
)
{
html
+=
String
.
format
(
'
<strong><%:Uptime%>:</strong> %t<br />
'
,
ifc
.
uptime
);
}
var
d
=
document
.
getElementById
(
ifc
.
id
+
'
-ifc-description
'
);
if
(
d
&&
ifc
.
ifname
)
if
(
ifc
.
type
!=
'
tunnel
'
)
{
if
(
ifc
.
is_up
)
{
html
+=
String
.
format
(
'
<strong><%:Uptime%>:</strong> %t<br />
'
,
ifc
.
uptime
);
}
if
(
ifc
.
type
!=
'
tunnel
'
)
{
html
+=
String
.
format
(
'
<strong><%:MAC Address%>:</strong> %s<br />
'
,
ifc
.
macaddr
);
}
html
+=
String
.
format
(
'
<strong><%:RX%></strong>: %.2mB (%d <%:Pkts.%>)<br />
'
+
'
<strong><%:TX%></strong>: %.2mB (%d <%:Pkts.%>)<br />
'
,
ifc
.
rx_bytes
,
ifc
.
rx_packets
,
ifc
.
tx_bytes
,
ifc
.
tx_packets
);
html
+=
String
.
format
(
'
<strong><%:MAC Address%>:</strong> %s<br />
'
,
ifc
.
macaddr
);
}
if
(
ifc
.
ipaddrs
&&
ifc
.
ipaddrs
.
length
)
{
html
+=
'
<strong><%:IPv4%>: </strong>
'
;
html
+=
String
.
format
(
'
<strong><%:RX%></strong>: %.2mB (%d <%:Pkts.%>)<br />
'
+
'
<strong><%:TX%></strong>: %.2mB (%d <%:Pkts.%>)<br />
'
,
ifc
.
rx_bytes
,
ifc
.
rx_packets
,
ifc
.
tx_bytes
,
ifc
.
tx_packets
);
for
(
var
i
=
0
;
i
<
ifc
.
ipaddrs
.
length
;
i
++
)
html
+=
String
.
format
(
'
%s%s/%d
'
,
i
?
'
,
'
:
''
,
ifc
.
ipaddrs
[
i
].
addr
,
ifc
.
ipaddrs
[
i
].
prefix
);
if
(
ifc
.
ipaddrs
&&
ifc
.
ipaddrs
.
length
)
{
html
+=
'
<strong><%:IPv4%>: </strong>
'
;
html
+=
'
<br />
'
;
}
for
(
var
i
=
0
;
i
<
ifc
.
ipaddrs
.
length
;
i
++
)
html
+=
String
.
format
(
'
%s%s/%d
'
,
i
?
'
,
'
:
''
,
ifc
.
ipaddrs
[
i
].
addr
,
ifc
.
ipaddrs
[
i
].
prefix
);
if
(
ifc
.
ip6addrs
&&
ifc
.
ip6addrs
.
length
)
{
html
+=
'
<strong><%:IPv6%>: </strong>
'
;
html
+=
'
<br />
'
;
}
for
(
var
i
=
0
;
i
<
ifc
.
ip6addrs
.
length
;
i
++
)
html
+=
String
.
format
(
'
%s%s/%d
'
,
i
?
'
,
'
:
''
,
ifc
.
ip6addrs
[
i
].
addr
.
toUpperCase
(),
ifc
.
ip6addrs
[
i
].
prefix
);
if
(
ifc
.
ip6addrs
&&
ifc
.
ip6addrs
.
length
)
{
html
+=
'
<strong><%:IPv6%>: </strong>
'
;
html
+=
'
<br />
'
;
}
for
(
var
i
=
0
;
i
<
ifc
.
ip6addrs
.
length
;
i
++
)
html
+=
String
.
format
(
'
%s%s/%d
'
,
i
?
'
,
'
:
''
,
ifc
.
ip6addrs
[
i
].
addr
.
toUpperCase
(),
ifc
.
ip6addrs
[
i
].
prefix
);
d
.
innerHTML
=
html
;
}
else
if
(
d
)
{
d
.
innerHTML
=
'
<em><%:Interface not present or not connected yet.%></em>
'
;
html
+=
'
<br />
'
;
}
d
.
innerHTML
=
html
;
}
else
if
(
d
)
{
d
.
innerHTML
=
'
<em><%:Interface not present or not connected yet.%></em>
'
;
}
}
window
.
setTimeout
(
func
,
5000
);
}
)
})(
);
}
);
//]]>
</script>
<fieldset
class=
"cbi-section"
style=
"display:none"
>
...
...
modules/admin-full/luasrc/view/admin_network/iface_status.htm
浏览文件 @
fd052a6e
<
%+
cbi
/
valueheader
%
>
<script
type=
"text/javascript"
>
//
<!
[
CDATA
[
var
iwxhr
=
new
XHR
();
(
function
()
{
var
func
=
arguments
.
callee
;
iwxhr
.
get
(
'
<%=luci.dispatcher.build_url("admin", "network", "iface_status", self.network)%>
'
,
null
,
function
(
x
,
ifc
)
XHR
.
poll
(
5
,
'
<%=luci.dispatcher.build_url("admin", "network", "iface_status", self.network)%>
'
,
null
,
function
(
x
,
ifc
)
{
if
(
ifc
&&
(
ifc
=
ifc
[
0
]))
{
if
(
ifc
&&
(
ifc
=
ifc
[
0
]))
var
html
=
''
;
var
s
=
document
.
getElementById
(
'
<%=self.option%>-ifc-signal
'
);
if
(
s
)
s
.
innerHTML
=
String
.
format
(
'
<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px" />
'
+
'
<br /><small>%s</small>
'
,
ifc
.
type
,
ifc
.
is_up
?
''
:
'
_disabled
'
,
ifc
.
is_up
?
ifc
.
ifname
:
'
?
'
);
var
d
=
document
.
getElementById
(
'
<%=self.option%>-ifc-description
'
);
if
(
d
&&
ifc
.
ifname
&&
ifc
.
macaddr
!=
'
00:00:00:00:00:00
'
)
{
var
html
=
''
;
var
s
=
document
.
getElementById
(
'
<%=self.option%>-ifc-signal
'
);
if
(
s
)
s
.
innerHTML
=
String
.
format
(
'
<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px" />
'
+
'
<br /><small>%s</small>
'
,
ifc
.
type
,
ifc
.
is_up
?
''
:
'
_disabled
'
,
ifc
.
is_up
?
ifc
.
ifname
:
'
?
'
);
var
d
=
document
.
getElementById
(
'
<%=self.option%>-ifc-description
'
);
if
(
d
&&
ifc
.
ifname
&&
ifc
.
macaddr
!=
'
00:00:00:00:00:00
'
)
if
(
ifc
.
is_up
)
{
if
(
ifc
.
is_up
)
{
html
+=
String
.
format
(
'
<strong><%:Uptime%>:</strong> %t<br />
'
,
ifc
.
uptime
);
}
if
(
ifc
.
type
!=
'
tunnel
'
)
{
html
+=
String
.
format
(
'
<strong><%:MAC Address%>:</strong> %s<br />
'
,
ifc
.
macaddr
);
}
html
+=
String
.
format
(
'
<strong><%:Uptime%>:</strong> %t<br />
'
,
ifc
.
uptime
);
}
html
+=
String
.
format
(
'
<strong><%:RX%></strong>: %.2mB (%d <%:Pkts.%>)<br />
'
+
'
<strong><%:TX%></strong>: %.2mB (%d <%:Pkts.%>)<br />
'
,
ifc
.
rx_bytes
,
ifc
.
rx_packets
,
ifc
.
tx_bytes
,
ifc
.
tx_packets
);
if
(
ifc
.
type
!=
'
tunnel
'
)
{
html
+=
String
.
format
(
'
<strong><%:MAC Address%>:</strong> %s<br />
'
,
ifc
.
macaddr
);
}
if
(
ifc
.
ipaddrs
&&
ifc
.
ipaddrs
.
length
)
{
html
+=
'
<strong><%:IPv4%>: </strong>
'
;
html
+=
String
.
format
(
'
<strong><%:RX%></strong>: %.2mB (%d <%:Pkts.%>)<br />
'
+
'
<strong><%:TX%></strong>: %.2mB (%d <%:Pkts.%>)<br />
'
,
ifc
.
rx_bytes
,
ifc
.
rx_packets
,
ifc
.
tx_bytes
,
ifc
.
tx_packets
);
for
(
var
i
=
0
;
i
<
ifc
.
ipaddrs
.
length
;
i
++
)
html
+=
String
.
format
(
'
%s%s/%d
'
,
i
?
'
,
'
:
''
,
ifc
.
ipaddrs
[
i
].
addr
,
ifc
.
ipaddrs
[
i
].
prefix
);
if
(
ifc
.
ipaddrs
&&
ifc
.
ipaddrs
.
length
)
{
html
+=
'
<strong><%:IPv4%>: </strong>
'
;
html
+=
'
<br />
'
;
}
for
(
var
i
=
0
;
i
<
ifc
.
ipaddrs
.
length
;
i
++
)
html
+=
String
.
format
(
'
%s%s/%d
'
,
i
?
'
,
'
:
''
,
ifc
.
ipaddrs
[
i
].
addr
,
ifc
.
ipaddrs
[
i
].
prefix
);
if
(
ifc
.
ip6addrs
&&
ifc
.
ip6addrs
.
length
)
{
html
+=
'
<strong><%:IPv6%>: </strong>
'
;
html
+=
'
<br />
'
;
}
for
(
var
i
=
0
;
i
<
ifc
.
ip6addrs
.
length
;
i
++
)
html
+=
String
.
format
(
'
%s%s/%d
'
,
i
?
'
,
'
:
''
,
ifc
.
ip6addrs
[
i
].
addr
.
toUpperCase
(),
ifc
.
ip6addrs
[
i
].
prefix
);
if
(
ifc
.
ip6addrs
&&
ifc
.
ip6addrs
.
length
)
{
html
+=
'
<strong><%:IPv6%>: </strong>
'
;
html
+=
'
<br />
'
;
}
for
(
var
i
=
0
;
i
<
ifc
.
ip6addrs
.
length
;
i
++
)
html
+=
String
.
format
(
'
%s%s/%d
'
,
i
?
'
,
'
:
''
,
ifc
.
ip6addrs
[
i
].
addr
.
toUpperCase
(),
ifc
.
ip6addrs
[
i
].
prefix
);
d
.
innerHTML
=
html
;
}
else
if
(
d
)
{
d
.
innerHTML
=
'
<em><%:Interface not present or not connected yet.%></em>
'
;
html
+=
'
<br />
'
;
}
}
window
.
setTimeout
(
func
,
5000
);
d
.
innerHTML
=
html
;
}
else
if
(
d
)
{
d
.
innerHTML
=
'
<em><%:Interface not present or not connected yet.%></em>
'
;
}
}
)
})(
);
}
);
//]]>
</script>
<table>
...
...
modules/admin-full/luasrc/view/admin_network/lease_status.htm
浏览文件 @
fd052a6e
<script
type=
"text/javascript"
>
//
<!
[
CDATA
[
var
stxhr
=
new
XHR
();
(
function
()
{
var
func
=
arguments
.
callee
;
stxhr
.
get
(
'
<%=luci.dispatcher.build_url("admin", "network", "dhcplease_status")%>
'
,
null
,
function
(
x
,
st
)
XHR
.
poll
(
5
,
'
<%=luci.dispatcher.build_url("admin", "network", "dhcplease_status")%>
'
,
null
,
function
(
x
,
st
)
{
var
tb
=
document
.
getElementById
(
'
lease_status_table
'
);
if
(
st
&&
tb
)
{
var
tb
=
document
.
getElementById
(
'
lease_status_table
'
);
if
(
st
&&
tb
)
/* clear all rows */
while
(
tb
.
rows
.
length
>
1
)
tb
.
deleteRow
(
1
);
for
(
var
i
=
0
;
i
<
st
.
length
;
i
++
)
{
/* clear all rows */
while
(
tb
.
rows
.
length
>
1
)
tb
.
deleteRow
(
1
);
var
timestr
;
for
(
var
i
=
0
;
i
<
st
.
length
;
i
++
)
if
(
st
[
i
].
expires
<=
0
)
{
var
timestr
;
if
(
st
[
i
].
expires
<=
0
)
{
timestr
=
'
<em><%:expired%></em>
'
;
}
else
{
timestr
=
String
.
format
(
'
%t
'
,
st
[
i
].
expires
);
}
var
tr
=
tb
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row cbi-rowstyle-
'
+
((
i
%
2
)
+
1
);
tr
.
insertCell
(
-
1
).
innerHTML
=
st
[
i
].
hostname
?
st
[
i
].
hostname
:
'
?
'
;
tr
.
insertCell
(
-
1
).
innerHTML
=
st
[
i
].
ipaddr
;
tr
.
insertCell
(
-
1
).
innerHTML
=
st
[
i
].
macaddr
;
tr
.
insertCell
(
-
1
).
innerHTML
=
timestr
;
timestr
=
'
<em><%:expired%></em>
'
;
}
if
(
tb
.
rows
.
length
==
1
)
else
{
var
tr
=
tb
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row
'
;
var
td
=
tr
.
insertCell
(
-
1
);
td
.
colSpan
=
4
;
td
.
innerHTML
=
'
<em><br /><%:There are no active leases.%></em>
'
;
timestr
=
String
.
format
(
'
%t
'
,
st
[
i
].
expires
);
}
var
tr
=
tb
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row cbi-rowstyle-
'
+
((
i
%
2
)
+
1
);
tr
.
insertCell
(
-
1
).
innerHTML
=
st
[
i
].
hostname
?
st
[
i
].
hostname
:
'
?
'
;
tr
.
insertCell
(
-
1
).
innerHTML
=
st
[
i
].
ipaddr
;
tr
.
insertCell
(
-
1
).
innerHTML
=
st
[
i
].
macaddr
;
tr
.
insertCell
(
-
1
).
innerHTML
=
timestr
;
}
window
.
setTimeout
(
func
,
5000
);
if
(
tb
.
rows
.
length
==
1
)
{
var
tr
=
tb
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row
'
;
var
td
=
tr
.
insertCell
(
-
1
);
td
.
colSpan
=
4
;
td
.
innerHTML
=
'
<em><br /><%:There are no active leases.%></em>
'
;
}
}
)
})(
);
}
);
//]]>
</script>
<fieldset
class=
"cbi-section"
>
...
...
modules/admin-full/luasrc/view/admin_network/wifi_overview.htm
浏览文件 @
fd052a6e
...
...
@@ -119,7 +119,6 @@ $Id$
<script
type=
"text/javascript"
src=
"<%=resource%>/cbi.js"
></script>
<script
type=
"text/javascript"
>
//
<!
[
CDATA
[
var
iwxhr
=
new
XHR
();
var
wifidevs
=
<%=
luci
.
http
.
write_json
(
netdevs
)
%>
;
var
arptable
=
<%=
luci
.
http
.
write_json
(
arpcache
)
%>
;
...
...
@@ -147,8 +146,7 @@ $Id$
st
.
innerHTML
=
'
<em><%:Wireless is restarting...%></em>
'
;
}
var
rcxhr
=
new
XHR
();
rcxhr
.
get
(
'
<%=luci.dispatcher.build_url("admin", "network")%>/wireless_
'
+
(
reconnect
?
'
reconnect
'
:
'
shutdown
'
)
+
'
/
'
+
id
,
null
,
XHR
.
get
(
'
<%=luci.dispatcher.build_url("admin", "network")%>/wireless_
'
+
(
reconnect
?
'
reconnect
'
:
'
shutdown
'
)
+
'
/
'
+
id
,
null
,
function
(
x
)
{
if
(
s
)
...
...
@@ -166,182 +164,175 @@ $Id$
);
}
(
function
()
{
var
func
=
arguments
.
callee
;
iwxhr
.
get
(
'
<%=luci.dispatcher.build_url("admin", "network", "wireless_status", table.concat(netlist, ","))%>
'
,
null
,
function
(
x
,
st
)
XHR
.
poll
(
5
,
'
<%=luci.dispatcher.build_url("admin", "network", "wireless_status", table.concat(netlist, ","))%>
'
,
null
,
function
(
x
,
st
)
{
if
(
st
)
{
if
(
st
)
{
var
assoctable
=
document
.
getElementById
(
'
iw-assoclist
'
);
if
(
assoctable
)
while
(
assoctable
.
rows
.
length
>
1
)
assoctable
.
rows
[
1
].
parentNode
.
removeChild
(
assoctable
.
rows
[
1
]);
var
assoctable
=
document
.
getElementById
(
'
iw-assoclist
'
);
if
(
assoctable
)
while
(
assoctable
.
rows
.
length
>
1
)
assoctable
.
rows
[
1
].
parentNode
.
removeChild
(
assoctable
.
rows
[
1
]);
var
devup
=
{
};
var
rowstyle
=
1
;
var
devup
=
{
};
var
rowstyle
=
1
;
for
(
var
i
=
0
;
i
<
st
.
length
;
i
++
)
for
(
var
i
=
0
;
i
<
st
.
length
;
i
++
)
{
var
iw
=
st
[
i
];
var
is_assoc
=
(
iw
.
bssid
&&
iw
.
bssid
!=
'
00:00:00:00:00:00
'
&&
iw
.
channel
);
var
p
=
iw
.
quality
;
var
q
=
is_assoc
?
p
:
-
1
;
var
icon
;
if
(
q
<
0
)
icon
=
"
<%=resource%>/icons/signal-none.png
"
;
else
if
(
q
==
0
)
icon
=
"
<%=resource%>/icons/signal-0.png
"
;
else
if
(
q
<
25
)
icon
=
"
<%=resource%>/icons/signal-0-25.png
"
;
else
if
(
q
<
50
)
icon
=
"
<%=resource%>/icons/signal-25-50.png
"
;
else
if
(
q
<
75
)
icon
=
"
<%=resource%>/icons/signal-50-75.png
"
;
else
icon
=
"
<%=resource%>/icons/signal-75-100.png
"
;
if
(
!
devup
[
wifidevs
[
iw
.
id
]])
devup
[
wifidevs
[
iw
.
id
]]
=
is_assoc
;
var
sig
=
document
.
getElementById
(
iw
.
id
+
'
-iw-signal
'
);
if
(
sig
)
sig
.
innerHTML
=
String
.
format
(
'
<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" /><br />
'
+
'
<small>%d%%</small>
'
,
icon
,
iw
.
signal
,
iw
.
noise
,
p
);
var
toggle
=
document
.
getElementById
(
iw
.
id
+
'
-iw-toggle
'
);
if
(
toggle
)
{
var
iw
=
st
[
i
];
var
is_assoc
=
(
iw
.
bssid
&&
iw
.
bssid
!=
'
00:00:00:00:00:00
'
&&
iw
.
channel
);
var
p
=
iw
.
quality
;
var
q
=
is_assoc
?
p
:
-
1
;
var
icon
;
if
(
q
<
0
)
icon
=
"
<%=resource%>/icons/signal-none.png
"
;
else
if
(
q
==
0
)
icon
=
"
<%=resource%>/icons/signal-0.png
"
;
else
if
(
q
<
25
)
icon
=
"
<%=resource%>/icons/signal-0-25.png
"
;
else
if
(
q
<
50
)
icon
=
"
<%=resource%>/icons/signal-25-50.png
"
;
else
if
(
q
<
75
)
icon
=
"
<%=resource%>/icons/signal-50-75.png
"
;
if
(
is_assoc
)
{
toggle
.
style
.
backgroundImage
=
'
url(<%=resource%>/cbi/reset.gif)
'
;
toggle
.
value
=
'
<%:Disable%>
'
;
toggle
.
title
=
'
<%:Shutdown this network%>
'
;
}
else
icon
=
"
<%=resource%>/icons/signal-75-100.png
"
;
{
toggle
.
style
.
backgroundImage
=
'
url(<%=resource%>/cbi/reload.gif)
'
;
toggle
.
value
=
'
<%:Enable%>
'
;
toggle
.
title
=
'
<%:Activate this network%>
'
;
}
if
(
!
devup
[
wifidevs
[
iw
.
id
]])
devup
[
wifidevs
[
iw
.
id
]]
=
is_assoc
;
toggle
.
setAttribute
(
'
active
'
,
is_assoc
);
}
var
sig
=
document
.
getElementById
(
iw
.
id
+
'
-iw-signal
'
);
if
(
sig
)
sig
.
innerHTML
=
String
.
format
(
'
<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" /><br />
'
+
'
<small>%d%%</small>
'
,
icon
,
iw
.
signal
,
iw
.
noise
,
p
var
info
=
document
.
getElementById
(
iw
.
id
+
'
-iw-status
'
);
if
(
info
)
{
if
(
is_assoc
)
info
.
innerHTML
=
String
.
format
(
'
<strong><%:SSID%>:</strong> %h |
'
+
'
<strong><%:Mode%>:</strong> %s<br />
'
+
'
<strong><%:BSSID%>:</strong> %s |
'
+
'
<strong><%:Encryption%>:</strong> %s
'
,
iw
.
ssid
,
iw
.
mode
,
iw
.
bssid
,
iw
.
encryption
?
iw
.
encryption
:
'
<%:None%>
'
);
else
info
.
innerHTML
=
String
.
format
(
'
<strong><%:SSID%>:</strong> %h |
'
+
'
<strong><%:Mode%>:</strong> %s<br />
'
+
'
<em>%s</em>
'
,
iw
.
ssid
||
'
?
'
,
iw
.
mode
,
is_reconnecting
?
'
<em><%:Wireless is restarting...%></em>
'
:
'
<em><%:Wireless is disabled or not associated%></em>
'
);
}
var
toggle
=
document
.
getElementById
(
iw
.
id
+
'
-iw-toggle
'
);
if
(
toggle
)
{
if
(
is_assoc
)
{
toggle
.
style
.
backgroundImage
=
'
url(<%=resource%>/cbi/reset.gif)
'
;
toggle
.
value
=
'
<%:Disable%>
'
;
toggle
.
title
=
'
<%:Shutdown this network%>
'
;
}
else
{
toggle
.
style
.
backgroundImage
=
'
url(<%=resource%>/cbi/reload.gif)
'
;
toggle
.
value
=
'
<%:Enable%>
'
;
toggle
.
title
=
'
<%:Activate this network%>
'
;
}
toggle
.
setAttribute
(
'
active
'
,
is_assoc
);
}
var
dev
=
document
.
getElementById
(
wifidevs
[
iw
.
id
]
+
'
-iw-devinfo
'
);
if
(
dev
)
{
if
(
is_assoc
)
dev
.
innerHTML
=
String
.
format
(
'
<strong><%:Channel%>:</strong> %s (%s GHz) |
'
+
'
<strong><%:Bitrate%>:</strong> %s Mb/s
'
,
iw
.
channel
?
iw
.
channel
:
'
?
'
,
iw
.
frequency
?
iw
.
frequency
:
'
?
'
,
iw
.
bitrate
?
iw
.
bitrate
:
'
?
'
);
else
dev
.
innerHTML
=
''
;
}
var
info
=
document
.
getElementById
(
iw
.
id
+
'
-iw-status
'
);
if
(
info
)
if
(
assoctable
)
{
var
assoclist
=
[
];
for
(
var
bssid
in
iw
.
assoclist
)
{
if
(
is_assoc
)
info
.
innerHTML
=
String
.
format
(
'
<strong><%:SSID%>:</strong> %h |
'
+
'
<strong><%:Mode%>:</strong> %s<br />
'
+
'
<strong><%:BSSID%>:</strong> %s |
'
+
'
<strong><%:Encryption%>:</strong> %s
'
,
iw
.
ssid
,
iw
.
mode
,
iw
.
bssid
,
iw
.
encryption
?
iw
.
encryption
:
'
<%:None%>
'
);
else
info
.
innerHTML
=
String
.
format
(
'
<strong><%:SSID%>:</strong> %h |
'
+
'
<strong><%:Mode%>:</strong> %s<br />
'
+
'
<em>%s</em>
'
,
iw
.
ssid
||
'
?
'
,
iw
.
mode
,
is_reconnecting
?
'
<em><%:Wireless is restarting...%></em>
'
:
'
<em><%:Wireless is disabled or not associated%></em>
'
);
assoclist
.
push
(
iw
.
assoclist
[
bssid
]);
assoclist
[
assoclist
.
length
-
1
].
bssid
=
bssid
;
}
var
dev
=
document
.
getElementById
(
wifidevs
[
iw
.
id
]
+
'
-iw-devinfo
'
);
if
(
dev
)
assoclist
.
sort
(
function
(
a
,
b
)
{
a
.
bssid
<
b
.
bssid
});
for
(
var
j
=
0
;
j
<
assoclist
.
length
;
j
++
)
{
if
(
is_assoc
)
dev
.
innerHTML
=
String
.
format
(
'
<strong><%:Channel%>:</strong> %s (%s GHz) |
'
+
'
<strong><%:Bitrate%>:</strong> %s Mb/s
'
,
iw
.
channel
?
iw
.
channel
:
'
?
'
,
iw
.
frequency
?
iw
.
frequency
:
'
?
'
,
iw
.
bitrate
?
iw
.
bitrate
:
'
?
'
);
var
tr
=
assoctable
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row cbi-rowstyle-
'
+
rowstyle
;
var
icon
;
var
q
=
(
-
1
*
(
assoclist
[
j
].
noise
-
assoclist
[
j
].
signal
))
/
5
;
if
(
q
<
1
)
icon
=
"
<%=resource%>/icons/signal-0.png
"
;
else
if
(
q
<
2
)
icon
=
"
<%=resource%>/icons/signal-0-25.png
"
;
else
if
(
q
<
3
)
icon
=
"
<%=resource%>/icons/signal-25-50.png
"
;
else
if
(
q
<
4
)
icon
=
"
<%=resource%>/icons/signal-50-75.png
"
;
else
dev
.
innerHTML
=
''
;
}
icon
=
"
<%=resource%>/icons/signal-75-100.png
"
;
if
(
assoctable
)
{
var
assoclist
=
[
];
for
(
var
bssid
in
iw
.
assoclist
)
{
assoclist
.
push
(
iw
.
assoclist
[
bssid
]);
assoclist
[
assoclist
.
length
-
1
].
bssid
=
bssid
;
}
assoclist
.
sort
(
function
(
a
,
b
)
{
a
.
bssid
<
b
.
bssid
});
for
(
var
j
=
0
;
j
<
assoclist
.
length
;
j
++
)
{
var
tr
=
assoctable
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row cbi-rowstyle-
'
+
rowstyle
;
var
icon
;
var
q
=
(
-
1
*
(
assoclist
[
j
].
noise
-
assoclist
[
j
].
signal
))
/
5
;
if
(
q
<
1
)
icon
=
"
<%=resource%>/icons/signal-0.png
"
;
else
if
(
q
<
2
)
icon
=
"
<%=resource%>/icons/signal-0-25.png
"
;
else
if
(
q
<
3
)
icon
=
"
<%=resource%>/icons/signal-25-50.png
"
;
else
if
(
q
<
4
)
icon
=
"
<%=resource%>/icons/signal-50-75.png
"
;
else
icon
=
"
<%=resource%>/icons/signal-75-100.png
"
;
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" />
'
,
icon
,
assoclist
[
j
].
signal
,
assoclist
[
j
].
noise
);
tr
.
insertCell
(
-
1
).
innerHTML
=
iw
.
ssid
?
iw
.
ssid
:
'
?
'
;
tr
.
insertCell
(
-
1
).
innerHTML
=
assoclist
[
j
].
bssid
;
tr
.
insertCell
(
-
1
).
innerHTML
=
arptable
[
assoclist
[
j
].
bssid
]
?
arptable
[
assoclist
[
j
].
bssid
]
:
'
?
'
;
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
%d dBm
'
,
assoclist
[
j
].
signal
);
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
%d dBm
'
,
assoclist
[
j
].
noise
);
rowstyle
=
(
rowstyle
==
1
)
?
2
:
1
;
}
}
}
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" />
'
,
icon
,
assoclist
[
j
].
signal
,
assoclist
[
j
].
noise
);
if
(
assoctable
&&
assoctable
.
rows
.
length
==
1
)
{
var
tr
=
assoctable
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row
'
;
tr
.
insertCell
(
-
1
).
innerHTML
=
iw
.
ssid
?
iw
.
ssid
:
'
?
'
;
tr
.
insertCell
(
-
1
).
innerHTML
=
assoclist
[
j
].
bssid
;
var
td
=
tr
.
insertCell
(
-
1
);
td
.
colSpan
=
6
;
td
.
innerHTML
=
'
<br /><em><%:No information available%></em>
'
;
}
tr
.
insertCell
(
-
1
).
innerHTML
=
arptable
[
assoclist
[
j
].
bssid
]
?
arptable
[
assoclist
[
j
].
bssid
]
:
'
?
'
;
for
(
var
dev
in
devup
)
{
var
img
=
document
.
getElementById
(
dev
+
'
-iw-upstate
'
);
if
(
img
)
img
.
src
=
'
<%=resource%>/icons/wifi_big
'
+
(
devup
[
dev
]
?
''
:
'
_disabled
'
)
+
'
.png
'
;
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
%d dBm
'
,
assoclist
[
j
].
signal
);
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
%d dBm
'
,
assoclist
[
j
].
noise
);
rowstyle
=
(
rowstyle
==
1
)
?
2
:
1
;
}
}
}
window
.
setTimeout
(
func
,
5000
);
if
(
assoctable
&&
assoctable
.
rows
.
length
==
1
)
{
var
tr
=
assoctable
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row
'
;
var
td
=
tr
.
insertCell
(
-
1
);
td
.
colSpan
=
6
;
td
.
innerHTML
=
'
<br /><em><%:No information available%></em>
'
;
}
for
(
var
dev
in
devup
)
{
var
img
=
document
.
getElementById
(
dev
+
'
-iw-upstate
'
);
if
(
img
)
img
.
src
=
'
<%=resource%>/icons/wifi_big
'
+
(
devup
[
dev
]
?
''
:
'
_disabled
'
)
+
'
.png
'
;
}
}
)
})(
);
}
);
//]]>
</script>
<h2><a
id=
"content"
name=
"content"
><
%
:Wireless
Overview
%
></a></h2>
...
...
modules/admin-full/luasrc/view/admin_network/wifi_status.htm
浏览文件 @
fd052a6e
<
%+
cbi
/
valueheader
%
>
<script
type=
"text/javascript"
>
//
<!
[
CDATA
[
var
iwxhr
=
new
XHR
();
(
function
()
{
var
func
=
arguments
.
callee
;
iwxhr
.
get
(
'
<%=luci.dispatcher.build_url("admin", "network", "wireless_status", self.ifname)%>
'
,
null
,
function
(
x
,
iw
)
XHR
.
poll
(
5
,
'
<%=luci.dispatcher.build_url("admin", "network", "wireless_status", self.ifname)%>
'
,
null
,
function
(
x
,
iw
)
{
if
(
iw
&&
(
iw
=
iw
[
0
]))
{
if
(
iw
&&
(
iw
=
iw
[
0
]))
{
var
is_assoc
=
(
iw
.
bssid
&&
iw
.
bssid
!=
'
00:00:00:00:00:00
'
&&
iw
.
channel
);
var
p
=
iw
.
quality
;
var
q
=
is_assoc
?
p
:
-
1
;
var
icon
;
if
(
q
<
0
)
icon
=
"
<%=resource%>/icons/signal-none.png
"
;
else
if
(
q
==
0
)
icon
=
"
<%=resource%>/icons/signal-0.png
"
;
else
if
(
q
<
25
)
icon
=
"
<%=resource%>/icons/signal-0-25.png
"
;
else
if
(
q
<
50
)
icon
=
"
<%=resource%>/icons/signal-25-50.png
"
;
else
if
(
q
<
75
)
icon
=
"
<%=resource%>/icons/signal-50-75.png
"
;
else
icon
=
"
<%=resource%>/icons/signal-75-100.png
"
;
var
is_assoc
=
(
iw
.
bssid
&&
iw
.
bssid
!=
'
00:00:00:00:00:00
'
&&
iw
.
channel
);
var
p
=
iw
.
quality
;
var
q
=
is_assoc
?
p
:
-
1
;
var
s
=
document
.
getElementById
(
'
<%=self.option%>-iw-signal
'
);
if
(
s
)
s
.
innerHTML
=
String
.
format
(
'
<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" /><br />
'
+
'
<small>%d%%</small>
'
,
icon
,
iw
.
signal
,
iw
.
noise
,
p
);
var
icon
;
if
(
q
<
0
)
icon
=
"
<%=resource%>/icons/signal-none.png
"
;
else
if
(
q
==
0
)
icon
=
"
<%=resource%>/icons/signal-0.png
"
;
else
if
(
q
<
25
)
icon
=
"
<%=resource%>/icons/signal-0-25.png
"
;
else
if
(
q
<
50
)
icon
=
"
<%=resource%>/icons/signal-25-50.png
"
;
else
if
(
q
<
75
)
icon
=
"
<%=resource%>/icons/signal-50-75.png
"
;
else
icon
=
"
<%=resource%>/icons/signal-75-100.png
"
;
var
d
=
document
.
getElementById
(
'
<%=self.option%>-iw-description
'
);
if
(
d
&&
is_assoc
)
d
.
innerHTML
=
String
.
format
(
'
<strong><%:Mode%>:</strong> %s |
'
+
'
<strong><%:SSID%>:</strong> %h<br />
'
+
'
<strong><%:BSSID%>:</strong> %s |
'
+
'
<strong><%:Encryption%>:</strong> %s<br />
'
+
'
<strong><%:Channel%>:</strong> %d (%.3f GHz) |
'
+
'
<strong><%:Tx-Power%>:</strong> %d dBm<br />
'
+
'
<strong><%:Signal%>:</strong> %d dBm |
'
+
'
<strong><%:Noise%>:</strong> %d dBm<br />
'
+
'
<strong><%:Bit Rate%>:</strong> %.1f MBit/s |
'
+
'
<strong><%:Country%>:</strong> %s
'
,
iw
.
mode
,
iw
.
ssid
,
iw
.
bssid
,
iw
.
encryption
?
iw
.
encryption
:
'
<%:None%>
'
,
iw
.
channel
,
iw
.
frequency
?
iw
.
frequency
:
0
,
iw
.
txpower
,
iw
.
signal
,
iw
.
noise
,
iw
.
bitrate
?
iw
.
bitrate
:
0
,
iw
.
country
);
else
if
(
d
)
d
.
innerHTML
=
String
.
format
(
'
<strong><%:SSID%>:</strong> %h |
'
+
'
<strong><%:Mode%>:</strong> %s<br />
'
+
'
<em><%:Wireless is disabled or not associated%></em>
'
,
iw
.
ssid
||
'
?
'
,
iw
.
mode
);
}
var
s
=
document
.
getElementById
(
'
<%=self.option%>-iw-signal
'
);
if
(
s
)
s
.
innerHTML
=
String
.
format
(
'
<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" /><br />
'
+
'
<small>%d%%</small>
'
,
icon
,
iw
.
signal
,
iw
.
noise
,
p
);
window
.
setTimeout
(
func
,
5000
);
var
d
=
document
.
getElementById
(
'
<%=self.option%>-iw-description
'
);
if
(
d
&&
is_assoc
)
d
.
innerHTML
=
String
.
format
(
'
<strong><%:Mode%>:</strong> %s |
'
+
'
<strong><%:SSID%>:</strong> %h<br />
'
+
'
<strong><%:BSSID%>:</strong> %s |
'
+
'
<strong><%:Encryption%>:</strong> %s<br />
'
+
'
<strong><%:Channel%>:</strong> %d (%.3f GHz) |
'
+
'
<strong><%:Tx-Power%>:</strong> %d dBm<br />
'
+
'
<strong><%:Signal%>:</strong> %d dBm |
'
+
'
<strong><%:Noise%>:</strong> %d dBm<br />
'
+
'
<strong><%:Bit Rate%>:</strong> %.1f MBit/s |
'
+
'
<strong><%:Country%>:</strong> %s
'
,
iw
.
mode
,
iw
.
ssid
,
iw
.
bssid
,
iw
.
encryption
?
iw
.
encryption
:
'
<%:None%>
'
,
iw
.
channel
,
iw
.
frequency
?
iw
.
frequency
:
0
,
iw
.
txpower
,
iw
.
signal
,
iw
.
noise
,
iw
.
bitrate
?
iw
.
bitrate
:
0
,
iw
.
country
);
else
if
(
d
)
d
.
innerHTML
=
String
.
format
(
'
<strong><%:SSID%>:</strong> %h |
'
+
'
<strong><%:Mode%>:</strong> %s<br />
'
+
'
<em><%:Wireless is disabled or not associated%></em>
'
,
iw
.
ssid
||
'
?
'
,
iw
.
mode
);
}
)
})(
);
}
);
//]]>
</script>
<table>
...
...
modules/admin-full/luasrc/view/admin_status/index.htm
浏览文件 @
fd052a6e
...
...
@@ -119,350 +119,344 @@ $Id$
);
}
var
iwxhr
=
new
XHR
();
var
wifidevs
=
<%=
luci
.
http
.
write_json
(
netdevs
)
%>
;
var
arptable
=
<%=
luci
.
http
.
write_json
(
arpcache
)
%>
;
(
function
()
{
var
func
=
arguments
.
callee
;
XHR
.
poll
(
5
,
'
<%=REQUEST_URI%>
'
,
{
status
:
1
},
function
(
x
,
info
)
{
var
si
=
document
.
getElementById
(
'
wan4_i
'
);
var
ss
=
document
.
getElementById
(
'
wan4_s
'
);
var
ifc
=
info
.
wan
;
iwxhr
.
get
(
'
<%=REQUEST_URI%>
'
,
{
status
:
1
},
function
(
x
,
info
)
if
(
ifc
&&
ifc
.
ifname
&&
ifc
.
proto
!=
'
none
'
)
{
var
si
=
document
.
getElementById
(
'
wan4_i
'
);
var
ss
=
document
.
getElementById
(
'
wan4_s
'
);
var
ifc
=
info
.
wan
;
if
(
ifc
&&
ifc
.
ifname
&&
ifc
.
proto
!=
'
none
'
)
var
s
=
String
.
format
(
'
<strong><%:Type%>: </strong>%s<br />
'
+
'
<strong><%:Address%>: </strong>%s<br />
'
+
'
<strong><%:Netmask%>: </strong>%s<br />
'
+
'
<strong><%:Gateway%>: </strong>%s<br />
'
,
ifc
.
proto
,
(
ifc
.
ipaddr
)
?
ifc
.
ipaddr
:
'
0.0.0.0
'
,
(
ifc
.
netmask
&&
ifc
.
netmask
!=
ifc
.
ipaddr
)
?
ifc
.
netmask
:
'
255.255.255.255
'
,
(
ifc
.
gwaddr
)
?
ifc
.
gwaddr
:
'
0.0.0.0
'
);
for
(
var
i
=
0
;
i
<
ifc
.
dns
.
length
;
i
++
)
{
var
s
=
String
.
format
(
'
<strong><%:Type%>: </strong>%s<br />
'
+
'
<strong><%:Address%>: </strong>%s<br />
'
+
'
<strong><%:Netmask%>: </strong>%s<br />
'
+
'
<strong><%:Gateway%>: </strong>%s<br />
'
,
ifc
.
proto
,
(
ifc
.
ipaddr
)
?
ifc
.
ipaddr
:
'
0.0.0.0
'
,
(
ifc
.
netmask
&&
ifc
.
netmask
!=
ifc
.
ipaddr
)
?
ifc
.
netmask
:
'
255.255.255.255
'
,
(
ifc
.
gwaddr
)
?
ifc
.
gwaddr
:
'
0.0.0.0
'
);
for
(
var
i
=
0
;
i
<
ifc
.
dns
.
length
;
i
++
)
{
s
+=
String
.
format
(
'
<strong><%:DNS%> %d: </strong>%s<br />
'
,
i
+
1
,
ifc
.
dns
[
i
]
);
}
if
(
ifc
.
expires
>
-
1
)
{
s
+=
String
.
format
(
'
<strong><%:Expires%>: </strong>%t<br />
'
,
ifc
.
expires
);
}
if
(
ifc
.
uptime
>
0
)
{
s
+=
String
.
format
(
'
<strong><%:Connected%>: </strong>%t<br />
'
,
ifc
.
uptime
);
}
ss
.
innerHTML
=
String
.
format
(
'
<small>%s</small>
'
,
s
);
si
.
innerHTML
=
String
.
format
(
'
<img src="<%=resource%>/icons/ethernet.png" />
'
+
'
<br /><small><a href="%s">%s</a></small>
'
,
ifc
.
link
,
ifc
.
ifname
s
+=
String
.
format
(
'
<strong><%:DNS%> %d: </strong>%s<br />
'
,
i
+
1
,
ifc
.
dns
[
i
]
);
}
else
if
(
ifc
.
expires
>
-
1
)
{
si
.
innerHTML
=
'
<img src="<%=resource%>/icons/ethernet_disabled.png" /><br /><small>?</small>
'
;
ss
.
innerHTML
=
'
<em>Not connected</em>
'
;
s
+=
String
.
format
(
'
<strong><%:Expires%>: </strong>%t<br />
'
,
ifc
.
expires
);
}
<%
if
has_ipv6
then
%>
var
si6
=
document
.
getElementById
(
'
wan6_i
'
);
var
ss6
=
document
.
getElementById
(
'
wan6_s
'
);
var
ifc6
=
info
.
wan6
;
if
(
ifc6
&&
ifc6
.
ifname
&&
ifc6
.
proto
!=
'
none
'
)
if
(
ifc
.
uptime
>
0
)
{
var
s
=
String
.
format
(
'
<strong><%:Address%>: </strong>%s<br />
'
+
'
<strong><%:Gateway%>: </strong>%s<br />
'
,
(
ifc6
.
ip6addr
)
?
ifc6
.
ip6addr
:
'
::
'
,
(
ifc6
.
gw6addr
)
?
ifc6
.
gw6addr
:
'
::
'
s
+=
String
.
format
(
'
<strong><%:Connected%>: </strong>%t<br />
'
,
ifc
.
uptime
);
}
for
(
var
i
=
0
;
i
<
ifc6
.
dns
.
length
;
i
++
)
{
s
+=
String
.
format
(
'
<strong><%:DNS%> %d: </strong>%s<br />
'
,
i
+
1
,
ifc6
.
dns
[
i
]
);
}
ss
.
innerHTML
=
String
.
format
(
'
<small>%s</small>
'
,
s
);
si
.
innerHTML
=
String
.
format
(
'
<img src="<%=resource%>/icons/ethernet.png" />
'
+
'
<br /><small><a href="%s">%s</a></small>
'
,
ifc
.
link
,
ifc
.
ifname
);
}
else
{
si
.
innerHTML
=
'
<img src="<%=resource%>/icons/ethernet_disabled.png" /><br /><small>?</small>
'
;
ss
.
innerHTML
=
'
<em>Not connected</em>
'
;
}
if
(
ifc6
.
uptime
>
0
)
{
s
+=
String
.
format
(
'
<strong><%:Connected%>: </strong>%t<br />
'
,
ifc6
.
uptime
);
}
<%
if
has_ipv6
then
%>
var
si6
=
document
.
getElementById
(
'
wan6_i
'
);
var
ss6
=
document
.
getElementById
(
'
wan6_s
'
);
var
ifc6
=
info
.
wan6
;
ss6
.
innerHTML
=
String
.
format
(
'
<small>%s</small>
'
,
s
);
si6
.
innerHTML
=
String
.
format
(
'
<img src="<%=resource%>/icons/ethernet.png" />
'
+
'
<br /><small><a href="%s">%s</a></small>
'
,
ifc6
.
link
,
ifc6
.
ifname
);
}
else
if
(
ifc6
&&
ifc6
.
ifname
&&
ifc6
.
proto
!=
'
none
'
)
{
var
s
=
String
.
format
(
'
<strong><%:Address%>: </strong>%s<br />
'
+
'
<strong><%:Gateway%>: </strong>%s<br />
'
,
(
ifc6
.
ip6addr
)
?
ifc6
.
ip6addr
:
'
::
'
,
(
ifc6
.
gw6addr
)
?
ifc6
.
gw6addr
:
'
::
'
);
for
(
var
i
=
0
;
i
<
ifc6
.
dns
.
length
;
i
++
)
{
si6
.
innerHTML
=
'
<img src="<%=resource%>/icons/ethernet_disabled.png" /><br /><small>?</small>
'
;
ss6
.
innerHTML
=
'
<em>Not connected</em>
'
;
s
+=
String
.
format
(
'
<strong><%:DNS%> %d: </strong>%s<br />
'
,
i
+
1
,
ifc6
.
dns
[
i
]
);
}
<%
end
%>
<%
if
has_dhcp
then
%>
var
ls
=
document
.
getElementById
(
'
lease_status_table
'
);
if
(
ls
)
if
(
ifc6
.
uptime
>
0
)
{
/* clear all rows */
while
(
ls
.
rows
.
length
>
1
)
ls
.
rows
[
0
].
parentNode
.
deleteRow
(
1
);
s
+=
String
.
format
(
'
<strong><%:Connected%>: </strong>%t<br />
'
,
ifc6
.
uptime
);
}
for
(
var
i
=
0
;
i
<
info
.
leases
.
length
;
i
++
)
{
var
timestr
;
ss6
.
innerHTML
=
String
.
format
(
'
<small>%s</small>
'
,
s
);
si6
.
innerHTML
=
String
.
format
(
'
<img src="<%=resource%>/icons/ethernet.png" />
'
+
'
<br /><small><a href="%s">%s</a></small>
'
,
ifc6
.
link
,
ifc6
.
ifname
);
}
else
{
si6
.
innerHTML
=
'
<img src="<%=resource%>/icons/ethernet_disabled.png" /><br /><small>?</small>
'
;
ss6
.
innerHTML
=
'
<em>Not connected</em>
'
;
}
<%
end
%>
if
(
info
.
leases
[
i
].
expires
<=
0
)
timestr
=
'
<em><%:expired%></em>
'
;
else
timestr
=
String
.
format
(
'
%t
'
,
info
.
leases
[
i
].
expires
);
<%
if
has_dhcp
then
%>
var
ls
=
document
.
getElementById
(
'
lease_status_table
'
);
if
(
ls
)
{
/* clear all rows */
while
(
ls
.
rows
.
length
>
1
)
ls
.
rows
[
0
].
parentNode
.
deleteRow
(
1
);
var
tr
=
ls
.
rows
[
0
].
parentNode
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row cbi-rowstyle-
'
+
((
i
%
2
)
+
1
);
for
(
var
i
=
0
;
i
<
info
.
leases
.
length
;
i
++
)
{
var
timestr
;
tr
.
insertCell
(
-
1
).
innerHTML
=
info
.
leases
[
i
].
hostname
?
info
.
leases
[
i
].
hostname
:
'
?
'
;
tr
.
insertCell
(
-
1
).
innerHTML
=
info
.
leases
[
i
].
ipaddr
;
tr
.
insertCell
(
-
1
).
innerHTML
=
info
.
leases
[
i
].
macaddr
;
tr
.
insertCell
(
-
1
).
innerHTML
=
timestr
;
}
if
(
info
.
leases
[
i
].
expires
<=
0
)
timestr
=
'
<em><%:expired%></em>
'
;
else
timestr
=
String
.
format
(
'
%t
'
,
info
.
leases
[
i
].
expires
);
if
(
ls
.
rows
.
length
==
1
)
{
var
tr
=
ls
.
rows
[
0
].
parentNode
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row
'
;
var
tr
=
ls
.
rows
[
0
].
parentNode
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row cbi-rowstyle-
'
+
((
i
%
2
)
+
1
);
var
td
=
tr
.
insertCell
(
-
1
)
;
td
.
colSpan
=
4
;
td
.
innerHTML
=
'
<em><br /><%:There are no active leases.%></em>
'
;
}
tr
.
insertCell
(
-
1
).
innerHTML
=
info
.
leases
[
i
].
hostname
?
info
.
leases
[
i
].
hostname
:
'
?
'
;
tr
.
insertCell
(
-
1
).
innerHTML
=
info
.
leases
[
i
].
ipaddr
;
tr
.
insertCell
(
-
1
).
innerHTML
=
info
.
leases
[
i
].
macaddr
;
tr
.
insertCell
(
-
1
).
innerHTML
=
timestr
;
}
<%
end
%>
<%
if
has_wifi
then
%>
var
assoclist
=
[
];
var
ws
=
document
.
getElementById
(
'
wifi_status_table
'
);
if
(
ws
)
if
(
ls
.
rows
.
length
==
1
)
{
var
wsbody
=
ws
.
rows
[
0
].
parentNode
;
while
(
ws
.
rows
.
length
>
0
)
wsbody
.
deleteRow
(
0
);
var
tr
=
ls
.
rows
[
0
].
parentNode
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row
'
;
for
(
var
didx
=
0
;
didx
<
info
.
wifinets
.
length
;
didx
++
)
{
var
dev
=
info
.
wifinets
[
didx
];
var
td
=
tr
.
insertCell
(
-
1
);
td
.
colSpan
=
4
;
td
.
innerHTML
=
'
<em><br /><%:There are no active leases.%></em>
'
;
}
}
<%
end
%>
var
tr
=
wsbody
.
insertRow
(
-
1
);
var
td
;
<%
if
has_wifi
then
%>
var
assoclist
=
[
]
;
td
=
tr
.
insertCell
(
-
1
);
td
.
width
=
"
33%
"
;
td
.
innerHTML
=
dev
.
name
;
td
.
style
.
verticalAlign
=
"
top
"
;
var
ws
=
document
.
getElementById
(
'
wifi_status_table
'
);
if
(
ws
)
{
var
wsbody
=
ws
.
rows
[
0
].
parentNode
;
while
(
ws
.
rows
.
length
>
0
)
wsbody
.
deleteRow
(
0
);
td
=
tr
.
insertCell
(
-
1
);
for
(
var
didx
=
0
;
didx
<
info
.
wifinets
.
length
;
didx
++
)
{
var
dev
=
info
.
wifinets
[
didx
];
var
s
=
''
;
var
tr
=
wsbody
.
insertRow
(
-
1
);
var
td
;
for
(
var
nidx
=
0
;
nidx
<
dev
.
networks
.
length
;
nidx
++
)
{
var
net
=
dev
.
networks
[
nidx
];
var
is_assoc
=
(
net
.
bssid
!=
'
00:00:00:00:00:00
'
&&
net
.
channel
);
var
icon
;
if
(
!
is_assoc
)
icon
=
"
<%=resource%>/icons/signal-none.png
"
;
else
if
(
net
.
quality
==
0
)
icon
=
"
<%=resource%>/icons/signal-0.png
"
;
else
if
(
net
.
quality
<
25
)
icon
=
"
<%=resource%>/icons/signal-0-25.png
"
;
else
if
(
net
.
quality
<
50
)
icon
=
"
<%=resource%>/icons/signal-25-50.png
"
;
else
if
(
net
.
quality
<
75
)
icon
=
"
<%=resource%>/icons/signal-50-75.png
"
;
else
icon
=
"
<%=resource%>/icons/signal-75-100.png
"
;
td
=
tr
.
insertCell
(
-
1
);
td
.
width
=
"
33%
"
;
td
.
innerHTML
=
dev
.
name
;
td
.
style
.
verticalAlign
=
"
top
"
;
s
+=
String
.
format
(
'
<table><tr><td style="text-align:center; width:32px; padding:3px">
'
+
'
<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" />
'
+
'
<br /><small>%d%%</small>
'
+
'
</td><td style="text-align:left; padding:3px"><small>
'
+
'
<strong><%:SSID%>:</strong> <a href="%s">%h</a><br />
'
+
'
<strong><%:Mode%>:</strong> %s<br />
'
+
'
<strong><%:Channel%>:</strong> %d (%.2f GHz)<br />
'
+
'
<strong><%:Bitrate%>:</strong> %s Mb/s<br />
'
,
icon
,
net
.
signal
,
net
.
noise
,
net
.
quality
,
net
.
link
,
net
.
ssid
,
net
.
mode
,
net
.
channel
,
net
.
frequency
,
net
.
bitrate
||
'
?
'
);
if
(
is_assoc
)
{
s
+=
String
.
format
(
'
<strong><%:BSSID%>:</strong> %s<br />
'
+
'
<strong><%:Encryption%>:</strong> %s
'
,
net
.
bssid
,
net
.
encryption
);
}
else
{
s
+=
'
<em><%:Wireless is disabled or not associated%></em>
'
;
}
s
+=
'
</small></td></tr></table>
'
;
for
(
var
bssid
in
net
.
assoclist
)
{
assoclist
.
push
({
bssid
:
bssid
,
signal
:
net
.
assoclist
[
bssid
].
signal
,
noise
:
net
.
assoclist
[
bssid
].
noise
,
link
:
net
.
link
,
name
:
net
.
name
});
}
}
td
=
tr
.
insertCell
(
-
1
);
if
(
!
s
)
s
=
'
<em><%:No information available%></em>
'
;
var
s
=
''
;
td
.
innerHTML
=
s
;
}
}
var
ac
=
document
.
getElementById
(
'
wifi_assoc_table
'
);
if
(
ac
)
{
/* clear all rows */
while
(
ac
.
rows
.
length
>
1
)
ac
.
rows
[
0
].
parentNode
.
deleteRow
(
1
);
assoclist
.
sort
(
function
(
a
,
b
)
{
return
(
a
.
name
==
b
.
name
)
?
(
a
.
bssid
<
b
.
bssid
)
:
(
a
.
name
>
b
.
name
)
;
});
for
(
var
i
=
0
;
i
<
assoclist
.
length
;
i
++
)
for
(
var
nidx
=
0
;
nidx
<
dev
.
networks
.
length
;
nidx
++
)
{
var
tr
=
ac
.
rows
[
0
].
parentNode
.
insertRow
(
-
1
)
;
tr
.
className
=
'
cbi-section-table-row cbi-rowstyle-
'
+
(
1
+
(
i
%
2
)
);
var
net
=
dev
.
networks
[
nidx
]
;
var
is_assoc
=
(
net
.
bssid
!=
'
00:00:00:00:00:00
'
&&
net
.
channel
);
var
icon
;
var
q
=
(
-
1
*
(
assoclist
[
i
].
noise
-
assoclist
[
i
].
signal
))
/
5
;
if
(
q
<
1
)
if
(
!
is_assoc
)
icon
=
"
<%=resource%>/icons/signal-none.png
"
;
else
if
(
net
.
quality
==
0
)
icon
=
"
<%=resource%>/icons/signal-0.png
"
;
else
if
(
q
<
2
)
else
if
(
net
.
quality
<
25
)
icon
=
"
<%=resource%>/icons/signal-0-25.png
"
;
else
if
(
q
<
3
)
else
if
(
net
.
quality
<
50
)
icon
=
"
<%=resource%>/icons/signal-25-50.png
"
;
else
if
(
q
<
4
)
else
if
(
net
.
quality
<
75
)
icon
=
"
<%=resource%>/icons/signal-50-75.png
"
;
else
icon
=
"
<%=resource%>/icons/signal-75-100.png
"
;
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" />
'
,
icon
,
assoclist
[
i
].
signal
,
assoclist
[
i
].
noise
s
+=
String
.
format
(
'
<table><tr><td style="text-align:center; width:32px; padding:3px">
'
+
'
<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" />
'
+
'
<br /><small>%d%%</small>
'
+
'
</td><td style="text-align:left; padding:3px"><small>
'
+
'
<strong><%:SSID%>:</strong> <a href="%s">%h</a><br />
'
+
'
<strong><%:Mode%>:</strong> %s<br />
'
+
'
<strong><%:Channel%>:</strong> %d (%.2f GHz)<br />
'
+
'
<strong><%:Bitrate%>:</strong> %s Mb/s<br />
'
,
icon
,
net
.
signal
,
net
.
noise
,
net
.
quality
,
net
.
link
,
net
.
ssid
,
net
.
mode
,
net
.
channel
,
net
.
frequency
,
net
.
bitrate
||
'
?
'
);
tr
.
insertCell
(
-
1
).
innerHTML
=
assoclist
[
i
].
bssid
;
if
(
is_assoc
)
{
s
+=
String
.
format
(
'
<strong><%:BSSID%>:</strong> %s<br />
'
+
'
<strong><%:Encryption%>:</strong> %s
'
,
net
.
bssid
,
net
.
encryption
);
}
else
{
s
+=
'
<em><%:Wireless is disabled or not associated%></em>
'
;
}
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
<a href="%s">%h</a>
'
,
assoclist
[
i
].
link
,
assoclist
[
i
].
name
);
s
+=
'
</small></td></tr></table>
'
;
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
%d dBm
'
,
assoclist
[
i
].
signal
);
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
%d dBm
'
,
assoclist
[
i
].
noise
);
for
(
var
bssid
in
net
.
assoclist
)
{
assoclist
.
push
({
bssid
:
bssid
,
signal
:
net
.
assoclist
[
bssid
].
signal
,
noise
:
net
.
assoclist
[
bssid
].
noise
,
link
:
net
.
link
,
name
:
net
.
name
});
}
}
if
(
ac
.
rows
.
length
==
1
)
{
var
tr
=
ac
.
rows
[
0
].
parentNode
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row
'
;
if
(
!
s
)
s
=
'
<em><%:No information available%></em>
'
;
var
td
=
tr
.
insertCell
(
-
1
);
td
.
colSpan
=
5
;
td
.
innerHTML
=
'
<br /><em><%:No information available%></em>
'
;
}
td
.
innerHTML
=
s
;
}
<%
end
%>
}
var
e
;
var
ac
=
document
.
getElementById
(
'
wifi_assoc_table
'
);
if
(
ac
)
{
/* clear all rows */
while
(
ac
.
rows
.
length
>
1
)
ac
.
rows
[
0
].
parentNode
.
deleteRow
(
1
);
assoclist
.
sort
(
function
(
a
,
b
)
{
return
(
a
.
name
==
b
.
name
)
?
(
a
.
bssid
<
b
.
bssid
)
:
(
a
.
name
>
b
.
name
)
;
});
for
(
var
i
=
0
;
i
<
assoclist
.
length
;
i
++
)
{
var
tr
=
ac
.
rows
[
0
].
parentNode
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row cbi-rowstyle-
'
+
(
1
+
(
i
%
2
));
var
icon
;
var
q
=
(
-
1
*
(
assoclist
[
i
].
noise
-
assoclist
[
i
].
signal
))
/
5
;
if
(
q
<
1
)
icon
=
"
<%=resource%>/icons/signal-0.png
"
;
else
if
(
q
<
2
)
icon
=
"
<%=resource%>/icons/signal-0-25.png
"
;
else
if
(
q
<
3
)
icon
=
"
<%=resource%>/icons/signal-25-50.png
"
;
else
if
(
q
<
4
)
icon
=
"
<%=resource%>/icons/signal-50-75.png
"
;
else
icon
=
"
<%=resource%>/icons/signal-75-100.png
"
;
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
<img src="%s" title="<%:Signal%>: %d dBm / <%:Noise%>: %d dBm" />
'
,
icon
,
assoclist
[
i
].
signal
,
assoclist
[
i
].
noise
);
if
(
e
=
document
.
getElementById
(
'
localtime
'
))
e
.
innerHTML
=
info
.
localtime
;
tr
.
insertCell
(
-
1
).
innerHTML
=
assoclist
[
i
].
bssid
;
if
(
e
=
document
.
getElementById
(
'
uptime
'
))
e
.
innerHTML
=
String
.
format
(
'
%t
'
,
info
.
uptime
);
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
<a href="%s">%h</a>
'
,
assoclist
[
i
].
link
,
assoclist
[
i
].
name
);
if
(
e
=
document
.
getElementById
(
'
loadavg
'
))
e
.
innerHTML
=
String
.
format
(
'
%.02f, %.02f, %.02f
'
,
info
.
loadavg
[
0
],
info
.
loadavg
[
1
],
info
.
loadavg
[
2
]);
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
%d dBm
'
,
assoclist
[
i
].
signal
);
tr
.
insertCell
(
-
1
).
innerHTML
=
String
.
format
(
'
%d dBm
'
,
assoclist
[
i
].
noise
);
}
if
(
e
=
document
.
getElementById
(
'
memtotal
'
))
e
.
innerHTML
=
progressbar
(
(
info
.
memfree
+
info
.
membuffers
+
info
.
memcached
)
+
"
kB
"
,
info
.
memtotal
+
"
kB
"
);
if
(
ac
.
rows
.
length
==
1
)
{
var
tr
=
ac
.
rows
[
0
].
parentNode
.
insertRow
(
-
1
);
tr
.
className
=
'
cbi-section-table-row
'
;
if
(
e
=
document
.
getElementById
(
'
memfree
'
))
e
.
innerHTML
=
progressbar
(
info
.
memfree
+
"
kB
"
,
info
.
memtotal
+
"
kB
"
);
var
td
=
tr
.
insertCell
(
-
1
);
td
.
colSpan
=
5
;
td
.
innerHTML
=
'
<br /><em><%:No information available%></em>
'
;
}
}
<%
end
%>
if
(
e
=
document
.
getElementById
(
'
memcache
'
))
e
.
innerHTML
=
progressbar
(
info
.
memcached
+
"
kB
"
,
info
.
memtotal
+
"
kB
"
);
var
e
;
if
(
e
=
document
.
getElementById
(
'
membuff
'
))
e
.
innerHTML
=
progressbar
(
info
.
membuffers
+
"
kB
"
,
info
.
memtotal
+
"
kB
"
);
if
(
e
=
document
.
getElementById
(
'
localtime
'
))
e
.
innerHTML
=
info
.
localtime
;
if
(
e
=
document
.
getElementById
(
'
conns
'
))
e
.
innerHTML
=
progressbar
(
info
.
conncount
,
info
.
connmax
);
if
(
e
=
document
.
getElementById
(
'
uptime
'
))
e
.
innerHTML
=
String
.
format
(
'
%t
'
,
info
.
uptime
);
window
.
setTimeout
(
func
,
5000
);
}
)
})();
if
(
e
=
document
.
getElementById
(
'
loadavg
'
))
e
.
innerHTML
=
String
.
format
(
'
%.02f, %.02f, %.02f
'
,
info
.
loadavg
[
0
],
info
.
loadavg
[
1
],
info
.
loadavg
[
2
]);
if
(
e
=
document
.
getElementById
(
'
memtotal
'
))
e
.
innerHTML
=
progressbar
(
(
info
.
memfree
+
info
.
membuffers
+
info
.
memcached
)
+
"
kB
"
,
info
.
memtotal
+
"
kB
"
);
if
(
e
=
document
.
getElementById
(
'
memfree
'
))
e
.
innerHTML
=
progressbar
(
info
.
memfree
+
"
kB
"
,
info
.
memtotal
+
"
kB
"
);
if
(
e
=
document
.
getElementById
(
'
memcache
'
))
e
.
innerHTML
=
progressbar
(
info
.
memcached
+
"
kB
"
,
info
.
memtotal
+
"
kB
"
);
if
(
e
=
document
.
getElementById
(
'
membuff
'
))
e
.
innerHTML
=
progressbar
(
info
.
membuffers
+
"
kB
"
,
info
.
memtotal
+
"
kB
"
);
if
(
e
=
document
.
getElementById
(
'
conns
'
))
e
.
innerHTML
=
progressbar
(
info
.
conncount
,
info
.
connmax
);
}
);
//]]>
</script>
<h2><a
id=
"content"
name=
"content"
><
%
:Status
%
></a></h2>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录