modules/admin-full: rework wifi CBI maps
[project/luci.git] / modules / admin-full / luasrc / model / cbi / admin_network / routes.lua
index 15f994c..469748c 100644 (file)
@@ -11,25 +11,76 @@ You may obtain a copy of the License at
 
 $Id$
 ]]--
-m = Map("network", translate("a_n_routes"), translate("a_n_routes1"))
 
-s = m:section(TypedSection, "route", "")
+require("luci.tools.webadmin")
+m = Map("network",
+       translate("Routes"),
+       translate("Routes specify over which interface and gateway a certain host or network " ..
+               "can be reached."))
+
+local routes6 = luci.sys.net.routes6()
+local bit = require "bit"
+
+s = m:section(TypedSection, "route", translate("Static IPv4 Routes"))
 s.addremove = true
 s.anonymous = true
+
 s.template  = "cbi/tblsection"
 
-iface = s:option(ListValue, "interface", translate("interface"))
-luci.model.uci.foreach("network", "interface",
-       function (section)
-               if section[".name"] ~= "loopback" then
-                       iface:value(section[".name"])
-               end
-       end)
+iface = s:option(ListValue, "interface", translate("Interface"))
+luci.tools.webadmin.cbi_add_networks(iface)
+
+t = s:option(Value, "target", translate("Target"), translate("Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"))
+t.datatype = "ip4addr"
+t.rmempty = false
+
+n = s:option(Value, "netmask", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"), translate("if target is a network"))
+n.placeholder = "255.255.255.255"
+n.datatype = "ip4addr"
+n.rmempty = true
+
+g = s:option(Value, "gateway", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"))
+g.datatype = "ip4addr"
+g.rmempty = true
+
+metric = s:option(Value, "metric", translate("Metric"))
+metric.placeholder = 0
+metric.datatype = "range(0,255)"
+metric.rmempty = true
+
+mtu = s:option(Value, "mtu", translate("MTU"))
+mtu.placeholder = 1500
+mtu.datatype = "range(64,9000)"
+mtu.rmempty = true
+
+if routes6 then
+       s = m:section(TypedSection, "route6", translate("Static IPv6 Routes"))
+       s.addremove = true
+       s.anonymous = true
+
+       s.template  = "cbi/tblsection"
+
+       iface = s:option(ListValue, "interface", translate("Interface"))
+       luci.tools.webadmin.cbi_add_networks(iface)
+
+       t = s:option(Value, "target", translate("Target"), translate("<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network (CIDR)"))
+       t.datatype = "ip6addr"
+       t.rmempty = false
+
+       g = s:option(Value, "gateway", translate("<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"))
+       g.datatype = "ip6addr"
+       g.rmempty = true
 
-s:option(Value, "target", translate("target"), translate("a_n_r_target1"))
+       metric = s:option(Value, "metric", translate("Metric"))
+       metric.placeholder = 0
+       metric.datatype = "range(0,65535)" -- XXX: not sure
+       metric.rmempty = true
 
-s:option(Value, "netmask", translate("netmask"), translate("a_n_r_netmask1")).rmemepty = true
+       mtu = s:option(Value, "mtu", translate("MTU"))
+       mtu.placeholder = 1500
+       mtu.datatype = "range(64,9000)"
+       mtu.rmempty = true
+end
 
-s:option(Value, "gateway", translate("gateway"))
 
-return m
\ No newline at end of file
+return m