modules/admin-mini: Revised homepage
authorSteven Barth <steven@midlink.org>
Sun, 17 Aug 2008 00:19:44 +0000 (00:19 +0000)
committerSteven Barth <steven@midlink.org>
Sun, 17 Aug 2008 00:19:44 +0000 (00:19 +0000)
modules/admin-mini/luasrc/controller/mini/index.lua
modules/admin-mini/luasrc/model/cbi/mini/index.lua [new file with mode: 0644]
modules/admin-mini/luasrc/view/mini/index.htm
modules/admin-mini/luasrc/view/mini/index2.htm [new file with mode: 0644]

index a1a29b5cefd58cf87fe61554d13cd574c9b01465..77847dccca3bc585f1f93fa74a61ca82fee8e759 100644 (file)
@@ -33,7 +33,7 @@ function index()
        page.ucidata = true
        
        entry({"mini", "index"}, alias("mini", "index", "index"), i18n("overview"), 10)
-       entry({"mini", "index", "index"}, template("mini/index"), i18n("general"), 1)
+       entry({"mini", "index", "index"}, form("mini/index"), i18n("general"), 1)
        entry({"mini", "index", "luci"}, cbi("mini/luci"), i18n("settings"), 10)
        entry({"mini", "index", "logout"}, call("action_logout"), i18n("logout"))
 end
diff --git a/modules/admin-mini/luasrc/model/cbi/mini/index.lua b/modules/admin-mini/luasrc/model/cbi/mini/index.lua
new file mode 100644 (file)
index 0000000..eb7d77e
--- /dev/null
@@ -0,0 +1,105 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2008 Steven Barth <steven@midlink.org>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+]]--
+require("luci.sys")
+require("luci.tools.webadmin")
+
+w = Template("mini/index")
+
+f = SimpleForm("main", translate("system"))
+f.reset = false
+f.submit = false
+
+local system, model, memtotal, memcached, membuffers, memfree = luci.sys.sysinfo()
+local uptime = luci.sys.uptime()
+f:field(DummyValue, "_system", translate("system")).value = system
+f:field(DummyValue, "_cpu", translate("m_i_processor")).value = model
+
+local load1, load5, load15 = luci.sys.loadavg()
+f:field(DummyValue, "_la", translate("load")).value = 
+ string.format("%.2f, %.2f, %.2f", load1, load5, load15)
+f:field(DummyValue, "_memtotal", translate("m_i_memory")).value = 
+ string.format("%.2f MB (%.0f%% %s, %.0f%% %s, %.0f%% %s)",
+  tonumber(memtotal) / 1024,
+  100 * memcached / memtotal,
+  translate("mem_cached") or "",
+  100 * membuffers / memtotal,
+  translate("mem_buffered") or "",
+  100 * memfree / memtotal,
+  translate("mem_free") or "")
+
+f:field(DummyValue, "_systime", translate("m_i_systemtime")).value =
+ os.date("%c")
+f:field(DummyValue, "_uptime", translate("m_i_uptime")).value = 
+ luci.tools.webadmin.date_format(tonumber(uptime))
+m = Map("network", translate("interfaces"))
+local netstat = luci.sys.net.deviceinfo()
+
+m.parse = function() end
+
+s = m:section(TypedSection, "interface", "")
+s.template  = "cbi/tblsection"
+
+function s.filter(self, section)
+       return section ~= "loopback" and section
+end
+
+hwaddr = s:option(DummyValue, "_hwaddr")
+function hwaddr.cfgvalue(self, section)
+       local ix = self.map:stateget(section, "ifname") or ""
+       return luci.fs.readfile("/sys/class/net/" .. ix .. "/address") or "n/a"
+end
+
+
+ipaddr = s:option(DummyValue, "ipaddr", translate("ipaddress"))
+ipaddr.stateful = true
+
+ipaddr = s:option(DummyValue, "netmask", translate("netmask"))
+ipaddr.stateful = true
+
+txrx = s:option(DummyValue, "_txrx")
+
+function txrx.cfgvalue(self, section)
+       local ix = self.map:stateget(section, "ifname")
+       
+       local rx = netstat and netstat[ix] and netstat[ix][1]
+       rx = rx and luci.tools.webadmin.byte_format(tonumber(rx)) or "-"
+       
+       local tx = netstat and netstat[ix] and netstat[ix][9]
+       tx = tx and luci.tools.webadmin.byte_format(tonumber(tx)) or "-"
+       
+       return string.format("%s / %s", tx, rx)
+end
+
+errors = s:option(DummyValue, "_err")
+
+function errors.cfgvalue(self, section)
+       local ix = self.map:stateget(section, "ifname")
+       
+       local rx = netstat and netstat[ix] and netstat[ix][3]
+       local tx = netstat and netstat[ix] and netstat[ix][11]
+       
+       rx = rx and tostring(rx) or "-"
+       tx = tx and tostring(tx) or "-"
+       
+       return string.format("%s / %s", tx, rx)
+end
+
+
+w2 = Template("mini/index2")
+return w, f, m, w2
\ No newline at end of file
index e00100c18b7317ee256b00e486ff94f0a855ee1a..385deaf7aa3718e0455c85bbd96fd69230e7acf2 100644 (file)
@@ -11,22 +11,6 @@ You may obtain a copy of the License at
 
 $Id$
 
--%>
-<%+header%>
-<%-
-local system, model, memtotal = luci.sys.sysinfo()
-
-local uptime = luci.sys.uptime()
-uptime = tonumber(uptime)
-
-local utdays = math.floor(uptime / 86400)
-uptime = uptime % 86400
-local uthour = math.floor(uptime / 3600)
-uptime = uptime % 3600
-local utmins  = math.floor(uptime / 60)
-local utsecs = uptime % 60
-
-local iwconfig = luci.sys.wifi.getiwconfig()
 -%>
 <h1><%:a_i_i_hello%></h1>
 <p><%:a_i_i_admin1%></p>
@@ -34,100 +18,3 @@ local iwconfig = luci.sys.wifi.getiwconfig()
 <%:a_i_i_admin3%></p>
 <p><%:a_i_i_admin6%></p>
 <p><em><strong><a href="<%=controller%>/about"><%:a_i_i_team%></a></strong></em></p>
-<br />
-<hr />
-<br />
-<h2>Systemstatus</h2>
-<table cellspacing="0" cellpadding="6" class="smalltext">
-  <tr>
-    <th><%:hostname%>:</th>
-    <td><%=luci.sys.hostname()%></td>
-  </tr>
-  <tr>
-    <th><%:system%>:</th>
-    <td><%=system%></td>
-  </tr>
-  <tr>
-    <th><%:m_i_processor%>:</th>
-    <td><%=model%></td>
-  </tr>
-  <tr>
-    <th><%:m_i_memory%>:</th>
-    <td><%=string.format("%.2f", tonumber(memtotal) / 1024)%> MiB</td>
-  </tr>
-  <tr>
-    <th><%:m_i_systemtime%>:</th>
-    <td><%=os.date("%c")%></td>
-  </tr>
-  <tr>
-    <th><%:m_i_uptime%>:</th>
-    <td><%=string.format("%dd %d:%d:%.0f", utdays, uthour, utmins, utsecs)%></td>
-  </tr>
-</table>
-
-
-<br />
-<h2><%:m_n_local%></h2>
-<table cellspacing="0" cellpadding="6" class="smalltext">
-  <tr>
-    <th><%:ipaddress%>:</th>
-    <td><%=luci.model.uci.get_statevalue("network", "lan", "ipaddr")%></td>
-  </tr>
-  <tr>
-    <th><%:netmask%>:</th>
-    <td><%=luci.model.uci.get_statevalue("network", "lan", "netmask")%></td>
-  </tr>
-</table>
-
-
-<br />
-<h2><%:m_n_inet%></h2>
-<table cellspacing="0" cellpadding="6" class="smalltext">
-  <tr>
-    <th><%:ipaddress%>:</th>
-    <td><%=luci.model.uci.get_statevalue("network", "wan", "ipaddr")%></td>
-  </tr>
-  <tr>
-    <th><%:netmask%>:</th>
-    <td><%=luci.model.uci.get_statevalue("network", "wan", "netmask")%></td>
-  </tr>
-</table>
-
-<%- if next(iwconfig) then %> 
-<h2><%:wifi%></h2>
-<br />
-<table cellspacing="0" cellpadding="6" class="smalltext">
-<tr>
-<th><%:name%></th>
-<th><%:protocol%></th>
-<th><%:frequency%></th>
-<th><%:power%></th>
-<th><%:bitrate%></th>
-<th><%:rts%></th>
-<th><%:frag%></th>
-<th><%:link%></th>
-<th><%:signal%></th>
-<th><%:noise%></th>
-</tr>
-<%for k, v in pairs(iwconfig) do
-%>
-<tr>
-<td rowspan="2"><%=k%></td>
-<td><%=v[1]%></td>
-<td><%=v.Frequency%></td>
-<td><%=v["Tx-Power"]%></td>
-<td><%=v["Bit Rate"]%></td>
-<td><%=v["RTS thr"]%></td>
-<td><%=v["Fragment thr"]%></td>
-<td><%=v["Link Quality"]%></td>
-<td><%=v["Signal level"]%></td>
-<td><%=v["Noise level"]%></td>
-</tr>
-<tr>
-<td colspan="4"><strong>ESSID: </strong><%=v.ESSID%></td>
-<td colspan="5"><strong>BSSID: </strong><%=(v.Cell or v["Access Point"])%></td>
-</tr>
-<%end%>
-</table>
-<%-end%>
-<%+footer%>
diff --git a/modules/admin-mini/luasrc/view/mini/index2.htm b/modules/admin-mini/luasrc/view/mini/index2.htm
new file mode 100644 (file)
index 0000000..741ef7c
--- /dev/null
@@ -0,0 +1,54 @@
+<%#
+LuCI - Lua Configuration Interface
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+-%>
+<%
+local iwconfig = luci.sys.wifi.getiwconfig()
+if next(iwconfig) then 
+%> 
+<h2><%:wifi%></h2>
+<br />
+<table cellspacing="0" cellpadding="6" class="smalltext">
+<tr>
+<th><%:name%></th>
+<th><%:protocol%></th>
+<th><%:frequency%></th>
+<th><%:power%></th>
+<th><%:bitrate%></th>
+<th><%:rts%></th>
+<th><%:frag%></th>
+<th><%:link%></th>
+<th><%:signal%></th>
+<th><%:noise%></th>
+</tr>
+<%for k, v in pairs(iwconfig) do
+%>
+<tr>
+<td rowspan="2"><%=k%></td>
+<td><%=v[1]%></td>
+<td><%=v.Frequency%></td>
+<td><%=v["Tx-Power"]%></td>
+<td><%=v["Bit Rate"]%></td>
+<td><%=v["RTS thr"]%></td>
+<td><%=v["Fragment thr"]%></td>
+<td><%=v["Link Quality"]%></td>
+<td><%=v["Signal level"]%></td>
+<td><%=v["Noise level"]%></td>
+</tr>
+<tr>
+<td colspan="4"><strong>ESSID: </strong><%=v.ESSID%></td>
+<td colspan="5"><strong>BSSID: </strong><%=(v.Cell or v["Access Point"])%></td>
+</tr>
+<%end%>
+</table>
+<%-end%>
\ No newline at end of file