s = m:section(NamedSection, arg[1], "rule", "")
s.anonymous = true
+s.addremove = false
back = s:option(DummyValue, "_overview", translate("overview"))
back.value = ""
-back.titleref = luci.dispatcher.build_url("admin", "network", "firewall", "traffic")
+back.titleref = luci.dispatcher.build_url("admin", "network", "firewall", "rule")
name = s:option(Value, "_name", translate("name")..translate("cbi_optional"))
oface:value(section.name)
end)
-proto = s:option(ListValue, "proto", translate("protocol"))
+proto = s:option(Value, "proto", translate("protocol"))
proto.optional = true
proto:value("")
proto:value("tcpudp", "TCP+UDP")
s:option(Value, "src_mac", translate("firewall_rule_srcmac")).optional = true
sport = s:option(Value, "src_port", translate("firewall_rule_srcport"))
-sport.optional = true
sport:depends("proto", "tcp")
sport:depends("proto", "udp")
sport:depends("proto", "tcpudp")
dport = s:option(Value, "dest_port", translate("firewall_rule_destport"))
-dport.optional = true
dport:depends("proto", "tcp")
dport:depends("proto", "udp")
dport:depends("proto", "tcpudp")