require("luci.i18n")
local uci = require("luci.model.uci").cursor()
local i18n = luci.i18n.translate
+ local has_wifi = nixio.fs.stat("/etc/config/wireless")
+ local has_switch = false
+
+ uci:foreach("network", "switch",
+ function(s)
+ has_switch = true
+ return false
+ end
+ )
local page = node("admin", "network")
page.target = alias("admin", "network", "network")
page.order = 50
page.index = true
- local page = node("admin", "network", "vlan")
- page.target = cbi("admin_network/vlan")
- page.title = i18n("Switch")
- page.order = 20
+ if has_switch then
+ local page = node("admin", "network", "vlan")
+ page.target = cbi("admin_network/vlan")
+ page.title = i18n("Switch")
+ page.order = 20
+ end
- local page = entry({"admin", "network", "wireless"}, arcombine(template("admin_network/wifi_overview"), cbi("admin_network/wifi")), i18n("Wifi"), 15)
- page.leaf = true
- page.subindex = true
+ if has_wifi and has_wifi.size > 0 then
+ local page = entry({"admin", "network", "wireless"}, arcombine(template("admin_network/wifi_overview"), cbi("admin_network/wifi")), i18n("Wifi"), 15)
+ page.leaf = true
+ page.subindex = true
- local page = entry({"admin", "network", "wireless_join"}, call("wifi_join"), nil, 16)
- page.leaf = true
+ local page = entry({"admin", "network", "wireless_join"}, call("wifi_join"), nil, 16)
+ page.leaf = true
- local page = entry({"admin", "network", "wireless_delete"}, call("wifi_delete"), nil, 16)
- page.leaf = true
+ local page = entry({"admin", "network", "wireless_add"}, call("wifi_add"), nil, 16)
+ page.leaf = true
+
+ local page = entry({"admin", "network", "wireless_delete"}, call("wifi_delete"), nil, 16)
+ page.leaf = true
+ end
local page = entry({"admin", "network", "network"}, arcombine(cbi("admin_network/network"), cbi("admin_network/ifaces")), i18n("Interfaces"), 10)
page.leaf = true
end
)
- local page = node("admin", "network", "dhcp")
- page.target = cbi("admin_network/dhcp")
- page.title = "DHCP"
- page.order = 30
- page.subindex = true
-
- entry(
- {"admin", "network", "dhcp", "leases"},
- cbi("admin_network/dhcpleases"),
- i18n("Leases")
- )
+ if nixio.fs.access("/etc/config/dhcp") then
+ local page = node("admin", "network", "dhcpleases")
+ page.target = cbi("admin_network/dhcpleases")
+ page.title = i18n("DHCP Leases")
+ page.order = 30
+ end
local page = node("admin", "network", "hosts")
page.target = cbi("admin_network/hosts")
end
end
+function wifi_add()
+ local dev = luci.http.formvalue("device")
+ local uci = require "luci.model.uci".cursor()
+ local wlm = require "luci.model.wireless"
+
+ if dev then
+ wlm.init(uci)
+
+ local net = wlm:add_network({
+ device = dev,
+ mode = "ap",
+ ssid = "OpenWrt",
+ encryption = "none"
+ })
+
+ uci:save("wireless")
+ luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless", dev, net:name()))
+ end
+end
+
function wifi_delete(network)
local uci = require "luci.model.uci".cursor()
local wlm = require "luci.model.wireless"