return Flag.cfgvalue(self, section) or "0"
end
-t = s:option(DummyValue, "type", translate("type"))
+s:option(DummyValue, "type", translate("type"))
+local hwtype = m:get(arg[1], "type")
mode = s:option(ListValue, "mode", translate("mode"))
mode:value("", "standard")
mode:value("11g", "802.11g")
mode:value("11a", "802.11a")
mode:value("11bg", "802.11b+g")
+
+if hwtype == "atheros" then
+ mode:value("11gdt", "802.11adt")
+ mode:value("11adt", "802.11adt")
+ mode:value("fh", "fh")
+end
+
+
mode.rmempty = true
-s:option(Value, "channel", translate("a_w_channel"))
+ch = s:option(Value, "channel", translate("a_w_channel"))
+for i=1, 14 do
+ ch:value(i, i .. " (2.4 GHz)")
+end
+for i=36, 64, 4 do
+ ch:value(i, i .. " (5 GHz)")
+end
+for i=100, 140, 4 do
+ ch:value(i, i .. " (5 GHz)")
+end
+ch:value(147, 147 .. " (5 GHz)")
+ch:value(151, 151 .. " (5 GHz)")
+ch:value(155, 155 .. " (5 GHz)")
+ch:value(167, 167 .. " (5 GHz)")
s:option(Value, "txantenna", translate("a_w_txantenna")).optional = true
+----------------------- Interface -----------------------
+
s = m:section(TypedSection, "wifi-iface", translate("interfaces"))
s.addremove = true
s.anonymous = true
s:option(Value, "ssid", translate("a_w_netid")).maxlength = 32
-network = s:option(ListValue, "network", translate("network"), translate("a_w_network1"))
+network = s:option(Value, "network", translate("network"), translate("a_w_network1"))
+network.rmempty = true
network:value("")
+network.combobox_manual = translate("a_w_netmanual")
luci.tools.webadmin.cbi_add_networks(network)
+function network.write(self, section, value)
+ if not m.uci:get("network", value) then
+ m:chain("network")
+ m.uci:set("network", value, "interface")
+ Value.write(self, section, value)
+ else
+ if m.uci:get("network", value) == "interface" then
+ Value.write(self, section, value)
+ end
+ end
+end
+
mode = s:option(ListValue, "mode", translate("mode"))
mode:value("ap", translate("a_w_ap"))
mode:value("adhoc", translate("a_w_adhoc"))
mode:value("ahdemo", translate("a_w_ahdemo"))
mode:value("sta", translate("a_w_client"))
-mode:value("wds", translate("a_w_wds"))
mode:value("monitor", translate("a_w_monitor"))
+if hwtype ~= "atheros" then
+ mode:value("wds", translate("a_w_wds"))
+end
+
+if hwtype == "atheros" then
+ s:option(Flag, "wds", translate("a_w_wds"))
+end
+
s:option(Value, "bssid", "BSSID").optional = true
s:option(Value, "txpower", translate("a_w_txpwr"), "dbm").rmempty = true