NIU:
[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