luci-0.9: only show wireless and switch config if hardware is present
authorJo-Philipp Wich <jow@openwrt.org>
Sun, 7 Mar 2010 16:40:50 +0000 (16:40 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sun, 7 Mar 2010 16:40:50 +0000 (16:40 +0000)
modules/admin-full/luasrc/controller/admin/network.lua

index 08a5dd0ef6e088ddcebc0c4ae46d063a97445896..8ce44e74e8deb5263863e778ec70da67622aad0f 100644 (file)
@@ -17,6 +17,22 @@ function index()
        require("luci.i18n")
        local uci = require("luci.model.uci").cursor()
        local i18n = luci.i18n.translate
+       local has_wifi = false
+       local has_switch = false
+
+       uci:foreach("wireless", "wifi-device",
+               function(s)
+                       has_wifi = true
+                       return false
+               end
+       )
+
+       uci:foreach("network", "switch",
+               function(s)
+                       has_switch = true
+                       return false
+               end
+       )
 
        local page  = node("admin", "network")
        page.target = alias("admin", "network", "network")
@@ -24,24 +40,28 @@ function index()
        page.order  = 50
        page.index  = true
 
-       local page  = node("admin", "network", "vlan")
-       page.target = cbi("admin_network/vlan")
-       page.title  = i18n("a_n_switch")
-       page.order  = 20
-
-       local page = entry({"admin", "network", "wireless"}, arcombine(cbi("admin_network/wireless"), cbi("admin_network/wifi")), i18n("wifi"), 15)
-       page.i18n   = "wifi"
-       page.leaf = true
-       page.subindex = true
-
-       uci:foreach("wireless", "wifi-device",
-               function (section)
-                       local ifc = section[".name"]
-                               entry({"admin", "network", "wireless", ifc},
-                                true,
-                                ifc:upper()).i18n = "wifi"
-               end
-       )
+       if has_switch then
+               local page  = node("admin", "network", "vlan")
+               page.target = cbi("admin_network/vlan")
+               page.title  = i18n("a_n_switch")
+               page.order  = 20
+       end
+
+       if has_wifi then
+               local page = entry({"admin", "network", "wireless"}, arcombine(cbi("admin_network/wireless"), cbi("admin_network/wifi")), i18n("wifi"), 15)
+               page.i18n   = "wifi"
+               page.leaf = true
+               page.subindex = true
+
+               uci:foreach("wireless", "wifi-device",
+                       function (section)
+                               local ifc = section[".name"]
+                                       entry({"admin", "network", "wireless", ifc},
+                                        true,
+                                        ifc:upper()).i18n = "wifi"
+                       end
+               )
+       end
 
        local page = entry({"admin", "network", "network"}, arcombine(cbi("admin_network/network"), cbi("admin_network/ifaces")), i18n("interfaces", "Schnittstellen"), 10)
        page.leaf   = true