Fixed a design flaw in luci.model.uci
[project/luci.git] / modules / admin-core / luasrc / tools / webadmin.lua
index d6d9521..fe725d4 100644 (file)
@@ -29,11 +29,39 @@ function byte_format(byte)
        end
 end
 
+function date_format(secs)
+       local suff = {"min", "h", "d"}
+       local mins = 0
+       local hour = 0
+       local days = 0
+       if secs > 60 then
+               mins = math.floor(secs / 60)
+               secs = secs % 60
+       end
+       
+       if mins > 60 then
+               hour = math.floor(mins / 60)
+               mins = mins % 60
+       end
+       
+       if hour > 24 then
+               days = math.floor(hours / 24)
+               hour = hour % 24
+       end
+       
+       if days > 0 then
+               return string.format("%dd %02dh %02dmin %02ds", days, hour, mins, secs)
+       else
+               return string.format("%02dh %02dmin %02ds", hour, mins, secs)
+       end
+end
+
 function network_get_addresses(net)
+       luci.model.uci.load_state("network")
        local addr = {}
-       local ipv4 = luci.model.uci.get_statevalue("network", net, "ipaddr")
-       local mav4 = luci.model.uci.get_statevalue("network", net, "netmask")
-       local ipv6 = luci.model.uci.get_statevalue("network", net, "ip6addr")
+       local ipv4 = luci.model.uci.get("network", net, "ipaddr")
+       local mav4 = luci.model.uci.get("network", net, "netmask")
+       local ipv6 = luci.model.uci.get("network", net, "ip6addr")
        
        if ipv4 and mav4 then
                ipv4 = luci.ip.IPv4(ipv4, mav4)
@@ -86,7 +114,7 @@ function cbi_add_knownips(field)
 end
 
 function network_get_zones(net)
-       if not luci.model.uci.load("firewall") then
+       if not luci.model.uci.load_state("firewall") then
                return nil
        end
        
@@ -116,4 +144,23 @@ function firewall_find_zone(name)
        )
        
        return find
+end
+
+function iface_get_network(iface)
+       luci.model.uci.load_state("network")
+       local net
+       
+       luci.model.uci.foreach("network", "interface",
+               function (section)
+                       local ifname = luci.model.uci.get(
+                               "network", section[".name"], "ifname"
+                       )
+                       
+                       if iface == ifname then
+                               net = section[".name"]
+                       end
+               end
+       )
+       
+       return net
 end
\ No newline at end of file