- page.title = i18n("a_n_routes")
- page.order = 40
- page.leaf = true
-
- entry(
- {"admin", "network", "routes", "static"},
- function() end,
- i18n("a_n_routes_static")
- )
+ page.title = i18n("Static Routes")
+ page.order = 50
+
+end
+
+function wifi_join()
+ local function param(x)
+ return luci.http.formvalue(x)
+ end
+
+ local function ptable(x)
+ x = param(x)
+ return x and (type(x) ~= "table" and { x } or x) or {}
+ end
+
+ local dev = param("device")
+ local ssid = param("join")
+
+ if dev and ssid then
+ local cancel = (param("cancel") or param("cbi.cancel")) and true or false
+
+ if cancel then
+ luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless_join?device=" .. dev))
+ else
+ local cbi = require "luci.cbi"
+ local tpl = require "luci.template"
+ local map = luci.cbi.load("admin_network/wifi_add")[1]
+
+ if map:parse() ~= cbi.FORM_DONE then
+ tpl.render("header")
+ map:render()
+ tpl.render("footer")
+ end
+ end
+ else
+ luci.template.render("admin_network/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"
+
+ wlm.init(uci)
+ wlm:del_network(network)