X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=modules%2Fadmin-full%2Fluasrc%2Fcontroller%2Fadmin%2Fnetwork.lua;h=6155c28f1a7a123268bab92a5f1c6e0fc8c0bd20;hp=df2a4c47f3210881f6c4aff3058bf11f6881de89;hb=4804facec264a6fddc8b8d6b88fd1aa965227264;hpb=ca6a1fc3bc97f75aefec751aba48526e39d7d38b diff --git a/modules/admin-full/luasrc/controller/admin/network.lua b/modules/admin-full/luasrc/controller/admin/network.lua index df2a4c47f..6155c28f1 100644 --- a/modules/admin-full/luasrc/controller/admin/network.lua +++ b/modules/admin-full/luasrc/controller/admin/network.lua @@ -17,6 +17,7 @@ function index() 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 page = node("admin", "network") page.target = alias("admin", "network", "network") @@ -29,15 +30,20 @@ function index() page.title = i18n("Switch") page.order = 20 - 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 @@ -57,10 +63,12 @@ function index() end ) - local page = node("admin", "network", "dhcpleases") - page.target = cbi("admin_network/dhcpleases") - page.title = i18n("DHCP Leases") - page.order = 30 + 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") @@ -108,6 +116,26 @@ function wifi_join() 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"