X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=modules%2Fadmin-full%2Fluasrc%2Fmodel%2Fcbi%2Fadmin_network%2Fifaces.lua;h=d06ad90c9e40815993a180e9f130a66e1d465829;hb=3a450ce9bc866a11b97e8c4322aba97b7054c2e3;hp=681bfcd6dba9093df33adbb805f6eabfc6e725d3;hpb=a59044df9b87c7e4ce668649726aa2d355206965;p=oweals%2Fluci.git diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua b/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua index 681bfcd6d..d06ad90c9 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua @@ -12,12 +12,17 @@ You may obtain a copy of the License at $Id$ ]]-- +require("luci.tools.webadmin") arg[1] = arg[1] or "" m = Map("network", translate("interfaces"), translate("a_n_ifaces1")) s = m:section(NamedSection, arg[1], "interface") s.addremove = true +back = s:option(DummyValue, "_overview", translate("overview")) +back.value = "" +back.titleref = luci.dispatcher.build_url("admin", "network", "network") + p = s:option(ListValue, "proto", translate("protocol")) p:value("static", translate("static")) p:value("dhcp", "DHCP") @@ -37,6 +42,50 @@ for i,d in ipairs(luci.sys.net.devices()) do end end +local zones = luci.tools.webadmin.network_get_zones(arg[1]) +if zones then + if #zones == 0 then + m:chain("firewall") + + fwzone = s:option(Value, "_fwzone", + translate("network_interface_fwzone"), + translate("network_interface_fwzone_desc")) + fwzone.rmempty = true + fwzone:value("", "- " .. translate("none") .. " -") + fwzone:value(arg[1]) + m.uci:load("firewall") + m.uci:foreach("firewall", "zone", + function (section) + fwzone:value(section.name) + end + ) + + function fwzone.write(self, section, value) + local zone = luci.tools.webadmin.firewall_find_zone(value) + local stat + + if not zone then + stat = m.uci:section("firewall", "zone", nil, { + name = value, + network = section + }) + else + local net = m.uci:get("firewall", zone, "network") + net = (net or value) .. " " .. section + stat = m.uci:set("firewall", zone, "network", net) + end + + if stat then + self.render = function() end + end + end + else + fwzone = s:option(DummyValue, "_fwzone", translate("zone")) + fwzone.value = table.concat(zones, ", ") + end + fwzone.titleref = luci.dispatcher.build_url("admin", "network", "firewall", "zones") + m.uci:unload("firewall") +end ipaddr = s:option(Value, "ipaddr", translate("ipaddress")) ipaddr.rmempty = true @@ -76,29 +125,36 @@ mtu.isinteger = true mac = s:option(Value, "macaddr", translate("macaddress")) mac.optional = true + +srv = s:option(Value, "server", translate("network_interface_server")) +srv:depends("proto", "pptp") +srv.rmempty = true + user = s:option(Value, "username", translate("username")) user.rmempty = true user:depends("proto", "pptp") -user:depends("proto", "ppoe") +user:depends("proto", "pppoe") pass = s:option(Value, "password", translate("password")) pass.rmempty = true pass:depends("proto", "pptp") -pass:depends("proto", "ppoe") +pass:depends("proto", "pppoe") -ka = s:option(Value, "keepalive") +ka = s:option(Value, "keepalive", + translate("network_interface_keepalive"), + translate("network_interface_keepalive_desc") +) ka.rmempty = true ka:depends("proto", "pptp") -ka:depends("proto", "ppoe") +ka:depends("proto", "pppoe") -demand = s:option(Value, "demand") +demand = s:option(Value, "demand", + translate("network_interface_demand"), + translate("network_interface_demand_desc") +) demand.rmempty = true demand:depends("proto", "pptp") -demand:depends("proto", "ppoe") - -srv = s:option(Value, "server") -srv:depends("proto", "pptp") -srv.rmempty = true +demand:depends("proto", "pppoe")