AP configuration
[project/luci.git] / modules / niu / luasrc / model / cbi / niu / wireless / ap.lua
diff --git a/modules/niu/luasrc/model/cbi/niu/wireless/ap.lua b/modules/niu/luasrc/model/cbi/niu/wireless/ap.lua
new file mode 100644 (file)
index 0000000..aa6ffbd
--- /dev/null
@@ -0,0 +1,43 @@
+local cursor = require "luci.model.uci".cursor()
+
+if not cursor:get("wireless", "ap") then
+       cursor:section("wireless", "wifi-iface", "ap",
+               {device = "_", doth = "1", wmm = "1", _niu = "1"})
+       cursor:save("wireless")
+end
+
+local function deviceroute(self)
+       cursor:unload("wireless")
+       local d = cursor:get("wireless", "ap", "device")
+       if d ~= "none" then
+               cursor:delete_all("wireless", "wifi-iface", function(s)
+                       return s.device == d and s._niu ~= "1"
+               end)
+               cursor:set("wireless", d, "disabled", 0)
+               cursor:set("wireless", "ap", "network", "lan")
+               self:set("ap1", load("niu/wireless/ap1"))
+               self:set_route("ap1")
+       else
+               cursor:delete("wireless", "ap", "network")
+       end
+       cursor:save("wireless")
+end
+
+
+local d = Delegator()
+d.allow_finish = true
+d.allow_back = true
+d.allow_cancel = true
+
+d:add("device", load("niu/wireless/apdevice"))
+d:add("deviceroute", deviceroute)
+
+function d.on_cancel()
+       cursor:revert("wireless")
+end
+
+function d.on_done()
+       cursor:commit("wireless")
+end
+
+return d
\ No newline at end of file