X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=modules%2Fadmin-full%2Fluasrc%2Fmodel%2Fcbi%2Fadmin_network%2Fifaces.lua;h=986c7e36ff4c64d71a9c7e464b8136c73b9a7083;hp=32de05154ad8258cd8235c9ea215593661dca489;hb=918e1f8658a34a52a7f97512d15ad234913d89b5;hpb=97de32ee4fc67b356ac89d878ca2b4e00815b937 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 32de05154..986c7e36f 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua @@ -12,8 +12,16 @@ You may obtain a copy of the License at $Id$ ]]-- + require("luci.tools.webadmin") arg[1] = arg[1] or "" + +local has_3g = luci.fs.mtime("/usr/bin/gcom") +local has_pptp = luci.fs.mtime("/usr/sbin/pptp") +local has_pppd = luci.fs.mtime("/usr/sbin/pppd") +local has_pppoe = luci.fs.glob("/usr/lib/pppd/*/rp-pppoe.so") +local has_pppoa = luci.fs.glob("/usr/lib/pppd/*/pppoatm.so") + m = Map("network", translate("interfaces"), translate("a_n_ifaces1")) s = m:section(NamedSection, arg[1], "interface") @@ -24,13 +32,20 @@ back.value = "" back.titleref = luci.dispatcher.build_url("admin", "network", "network") p = s:option(ListValue, "proto", translate("protocol")) +p.override_scheme = true +p.default = "static" p:value("static", translate("static")) p:value("dhcp", "DHCP") -p:value("pppoe", "PPPoE") -p:value("ppp", "PPP") -p:value("3g", "UMTS/3G") -p:value("pptp", "PPTP") -p.default = "static" +if has_pppd then p:value("ppp", "PPP") end +if has_pppoe then p:value("pppoe", "PPPoE") end +if has_pppoa then p:value("pppoa", "PPPoA") end +if has_3g then p:value("3g", "UMTS/3G") end +if has_pptp then p:value("pptp", "PPTP") end +p:value("none", translate("none")) + +if not ( has_pppd and has_pppoe and has_pppoa and has_3g and has_pptp ) then + p.description = translate("network_interface_prereq") +end br = s:option(Flag, "type", translate("a_n_i_bridge"), translate("a_n_i_bridge1")) br.enabled = "bridge" @@ -117,7 +132,6 @@ ip6gw:depends("proto", "static") ip6gw.optional = true dns = s:option(Value, "dns", translate("dnsserver")) -dns:depends("proto", "static") dns.optional = true mtu = s:option(Value, "mtu", "MTU") @@ -132,110 +146,166 @@ srv = s:option(Value, "server", translate("network_interface_server")) srv:depends("proto", "pptp") srv.rmempty = true -service = s:option(ListValue, "service", translate("network_interface_service")) -service:value("umts", "UMTS/GPRS") -service:value("cdma", "CDMA") -service:value("evdo", "EV-DO") -service:depends("proto", "3g") - -apn = s:option(Value, "apn", translate("network_interface_apn")) -apn:depends("proto", "3g") - -pincode = s:option(Value, "pincode", - translate("network_interface_pincode"), - translate("network_interface_pincode_desc") -) -pincode:depends("proto", "3g") - -user = s:option(Value, "username", translate("username")) -user.rmempty = true -user:depends("proto", "pptp") -user:depends("proto", "pppoe") -user:depends("proto", "ppp") -user:depends("proto", "3g") - -pass = s:option(Value, "password", translate("password")) -pass.rmempty = true -pass:depends("proto", "pptp") -pass:depends("proto", "pppoe") -pass:depends("proto", "ppp") -pass:depends("proto", "3g") - -ka = s:option(Value, "keepalive", - translate("network_interface_keepalive"), - translate("network_interface_keepalive_desc") -) -ka.rmempty = true -ka:depends("proto", "pptp") -ka:depends("proto", "pppoe") -ka:depends("proto", "ppp") -ka:depends("proto", "3g") - -demand = s:option(Value, "demand", - translate("network_interface_demand"), - translate("network_interface_demand_desc") -) -demand.rmempty = true -demand:depends("proto", "pptp") -demand:depends("proto", "pppoe") -demand:depends("proto", "ppp") -demand:depends("proto", "3g") - -device = s:option(Value, "device", - translate("network_interface_device"), - translate("network_interface_device_desc") -) -device:depends("proto", "ppp") -device:depends("proto", "3g") - -defaultroute = s:option(Flag, "defaultroute", - translate("network_interface_defaultroute"), - translate("network_interface_defaultroute_desc") -) -defaultroute:depends("proto", "ppp") -defaultroute:depends("proto", "3g") - -peerdns = s:option(Flag, "peerdns", - translate("network_interface_peerdns"), - translate("network_interface_peerdns_desc") -) -peerdns:depends("proto", "ppp") - -ipv6 = s:option(Flag, "ipv6", translate("network_interface_ipv6") ) -ipv6:depends("proto", "ppp") ---ipv6:depends("proto", "3g") - -connect = s:option(Value, "connect", - translate("network_interface_connect"), - translate("network_interface_connect_desc") -) -connect.optional = true -connect:depends("proto", "ppp") -connect:depends("proto", "3g") - -disconnect = s:option(Value, "disconnect", - translate("network_interface_disconnect"), - translate("network_interface_disconnect_desc") -) -disconnect.optional = true -disconnect:depends("proto", "ppp") -disconnect:depends("proto", "3g") - -pppd_options = s:option(Value, "pppd_options", - translate("network_interface_pppd_options"), - translate("network_interface_pppd_options_desc") -) -pppd_options.optional = true -pppd_options:depends("proto", "ppp") -pppd_options:depends("proto", "3g") - -maxwait = s:option(Value, "maxwait", - translate("network_interface_maxwait"), - translate("network_interface_maxwait_desc") -) -maxwait.optional = true -maxwait:depends("proto", "3g") +if has_3g then + service = s:option(ListValue, "service", translate("network_interface_service")) + service:value("", translate("cbi_select")) + service:value("umts", "UMTS/GPRS") + service:value("cdma", "CDMA") + service:value("evdo", "EV-DO") + service:depends("proto", "3g") + service.rmempty = true + + apn = s:option(Value, "apn", translate("network_interface_apn")) + apn:depends("proto", "3g") + + pincode = s:option(Value, "pincode", + translate("network_interface_pincode"), + translate("network_interface_pincode_desc") + ) + pincode:depends("proto", "3g") +end + +if has_pppd or has_pppoe or has_pppoa or has_3g or has_pptp then + user = s:option(Value, "username", translate("username")) + user.rmempty = true + user:depends("proto", "pptp") + user:depends("proto", "pppoe") + user:depends("proto", "pppoa") + user:depends("proto", "ppp") + user:depends("proto", "3g") + + pass = s:option(Value, "password", translate("password")) + pass.rmempty = true + pass.password = true + pass:depends("proto", "pptp") + pass:depends("proto", "pppoe") + pass:depends("proto", "pppoa") + pass:depends("proto", "ppp") + pass:depends("proto", "3g") + + ka = s:option(Value, "keepalive", + translate("network_interface_keepalive"), + translate("network_interface_keepalive_desc") + ) + ka.optional = true + ka:depends("proto", "pptp") + ka:depends("proto", "pppoe") + ka:depends("proto", "pppoa") + ka:depends("proto", "ppp") + ka:depends("proto", "3g") + + demand = s:option(Value, "demand", + translate("network_interface_demand"), + translate("network_interface_demand_desc") + ) + demand.optional = true + demand:depends("proto", "pptp") + demand:depends("proto", "pppoe") + demand:depends("proto", "pppoa") + demand:depends("proto", "ppp") + demand:depends("proto", "3g") +end + +if has_pppoa then + encaps = s:option(ListValue, "encaps", translate("network_interface_encaps")) + encaps.optional = false + encaps:depends("proto", "pppoa") + encaps:value("", translate("cbi_select")) + encaps:value("vc", "VC") + encaps:value("llc", "LLC") + + vpi = s:option(Value, "vpi", "VPI") + vpi.optional = false + vpi:depends("proto", "pppoa") + + vci = s:option(Value, "vci", "VCI") + vci.optional = false + vci:depends("proto", "pppoa") +end + +if has_pptp or has_pppd or has_pppoe or has_pppoa or has_3g then + device = s:option(Value, "device", + translate("network_interface_device"), + translate("network_interface_device_desc") + ) + device:depends("proto", "ppp") + device:depends("proto", "3g") + + defaultroute = s:option(Flag, "defaultroute", + translate("network_interface_defaultroute"), + translate("network_interface_defaultroute_desc") + ) + defaultroute:depends("proto", "ppp") + defaultroute:depends("proto", "pppoa") + defaultroute:depends("proto", "pppoe") + defaultroute:depends("proto", "pptp") + defaultroute:depends("proto", "3g") + defaultroute.rmempty = false + function defaultroute.cfgvalue(...) + return ( AbstractValue.cfgvalue(...) or '1' ) + end + + peerdns = s:option(Flag, "peerdns", + translate("network_interface_peerdns"), + translate("network_interface_peerdns_desc") + ) + peerdns:depends("proto", "ppp") + peerdns:depends("proto", "pppoa") + peerdns:depends("proto", "pppoe") + peerdns:depends("proto", "pptp") + peerdns:depends("proto", "3g") + peerdns.rmempty = false + function peerdns.cfgvalue(...) + return ( AbstractValue.cfgvalue(...) or '1' ) + end + ipv6 = s:option(Flag, "ipv6", translate("network_interface_ipv6") ) + ipv6:depends("proto", "ppp") + ipv6:depends("proto", "pppoa") + ipv6:depends("proto", "pppoe") + ipv6:depends("proto", "pptp") + ipv6:depends("proto", "3g") + + connect = s:option(Value, "connect", + translate("network_interface_connect"), + translate("network_interface_connect_desc") + ) + connect.optional = true + connect:depends("proto", "ppp") + connect:depends("proto", "pppoe") + connect:depends("proto", "pppoa") + connect:depends("proto", "pptp") + connect:depends("proto", "3g") + + disconnect = s:option(Value, "disconnect", + translate("network_interface_disconnect"), + translate("network_interface_disconnect_desc") + ) + disconnect.optional = true + disconnect:depends("proto", "ppp") + disconnect:depends("proto", "pppoe") + disconnect:depends("proto", "pppoa") + disconnect:depends("proto", "pptp") + disconnect:depends("proto", "3g") + + pppd_options = s:option(Value, "pppd_options", + translate("network_interface_pppd_options"), + translate("network_interface_pppd_options_desc") + ) + pppd_options.optional = true + pppd_options:depends("proto", "ppp") + pppd_options:depends("proto", "pppoa") + pppd_options:depends("proto", "pppoe") + pppd_options:depends("proto", "pptp") + pppd_options:depends("proto", "3g") + + maxwait = s:option(Value, "maxwait", + translate("network_interface_maxwait"), + translate("network_interface_maxwait_desc") + ) + maxwait.optional = true + maxwait:depends("proto", "3g") +end s2 = m:section(TypedSection, "alias", translate("aliases")) s2.addremove = true