77325d30cbc0c42e11b8ff460529a0c3e32936da
[project/luci.git] / modules / niu / luasrc / model / cbi / niu / wireless / ap.lua
1 local cursor = require "luci.model.uci".cursor()
2
3 if not cursor:get("wireless", "ap") then
4 cursor:section("wireless", "wifi-iface", "ap",
5 {device = "_", doth = "1", _niu = "1", mode = "ap"})
6 cursor:save("wireless")
7 end
8
9 local function deviceroute(self)
10 cursor:unload("wireless")
11 local d = cursor:get("wireless", "ap", "device")
12 local t = cursor:get("wireless", "ap", "_cfgtpl")
13 if d ~= "none" then
14 cursor:delete_all("wireless", "wifi-iface", function(s)
15 return s.device == d and s._niu ~= "1"
16 end)
17 cursor:set("wireless", d, "disabled", 0)
18 cursor:set("wireless", "ap", "network", "lan")
19 if t and #t > 0 then
20 cursor:delete("wireless", "ap", "_cfgtpl")
21 cursor:set("wireless", "ap", "ssid", cursor:get("wireless", "bridge", "ssid"))
22 cursor:set("wireless", "ap", "encryption", cursor:get("wireless", "bridge", "encryption"))
23 cursor:set("wireless", "ap", "key", cursor:get("wireless", "bridge", "key"))
24 cursor:set("wireless", "ap", "wds", "1")
25 end
26
27 self:set_route("ap1")
28 else
29 cursor:delete("wireless", "ap", "network")
30 end
31 cursor:save("wireless")
32 end
33
34
35 local d = Delegator()
36 d.allow_finish = true
37 d.allow_back = true
38 d.allow_cancel = true
39
40 d:add("device", "niu/wireless/apdevice")
41 d:add("deviceroute", deviceroute)
42 d:set("ap1", "niu/wireless/ap1")
43
44 function d.on_cancel()
45 cursor:revert("wireless")
46 end
47
48 function d.on_done()
49 cursor:commit("wireless")
50 end
51
52 return d