all: change most translate statements to new format, some need manual cleanup
[project/luci.git] / modules / niu / luasrc / model / cbi / niu / network / etherwan.lua
1 --[[
2 LuCI - Lua Configuration Interface
3
4 Copyright 2009 Steven Barth <steven@midlink.org>
5 Copyright 2009 Jo-Philipp Wich <xm@subsignal.org>
6
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
10
11         http://www.apache.org/licenses/LICENSE-2.0
12
13 $Id$
14 ]]--
15
16 local fs = require "nixio.fs"
17 local nw = require "luci.model.network"
18
19 local has_ipv6 = nw:has_ipv6()
20 local has_pptp  = fs.access("/usr/sbin/pptp")
21 local has_pppd  = fs.access("/usr/sbin/pppd")
22 local has_pppoe = fs.glob("/usr/lib/pppd/*/rp-pppoe.so")()
23 local has_pppoa = fs.glob("/usr/lib/pppd/*/pppoatm.so")()
24
25
26 m = Map("network", translate("m_n_internet"))
27 nw.init(m.uci)
28
29 s = m:section(NamedSection, "wan", "interface")
30 s.addremove = false
31
32 s:tab("general", translate("General Settings"))
33 s:tab("expert", translate("Expert Settings"))
34
35 p = s:taboption("general", ListValue, "proto", translate("Protocol"))
36 p.override_scheme = true
37 p.default = "static"
38 p:value("static", translate("static"))
39 p:value("dhcp", "DHCP")
40 if has_pppoe then p:value("pppoe", "PPPoE")   end
41 if has_pppoa then p:value("pppoa", "PPPoA")   end
42 if has_pptp  then p:value("pptp",  "PPTP")    end
43 p:value("none", translate("none"))
44
45
46
47 ipaddr = s:taboption("general", Value, "ipaddr", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"))
48 ipaddr.rmempty = true
49 ipaddr:depends("proto", "static")
50
51 nm = s:taboption("general", Value, "netmask", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"))
52 nm.rmempty = true
53 nm:depends("proto", "static")
54 nm:value("255.255.255.0")
55 nm:value("255.255.0.0")
56 nm:value("255.0.0.0")
57
58 gw = s:taboption("general", Value, "gateway", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"))
59 gw:depends("proto", "static")
60 gw.rmempty = true
61
62 bcast = s:taboption("expert", Value, "bcast", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Broadcast"))
63 bcast:depends("proto", "static")
64
65 if has_ipv6 then
66         ip6addr = s:taboption("expert", Value, "ip6addr", translate("<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address"), translate("<abbr title=\"Classless Inter-Domain Routing\">CIDR</abbr>-Notation: address/prefix"))
67         ip6addr:depends("proto", "static")
68
69         ip6gw = s:taboption("expert", Value, "ip6gw", translate("<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"))
70         ip6gw:depends("proto", "static")
71 end
72
73 dns = s:taboption("expert", Value, "dns", translate("<abbr title=\"Domain Name System\">DNS</abbr>-Server"))
74 dns:depends("peerdns", "")
75
76 mtu = s:taboption("expert", Value, "mtu", "MTU")
77 mtu.isinteger = true
78
79 mac = s:taboption("expert", Value, "macaddr", translate("<abbr title=\"Media Access Control\">MAC</abbr>-Address"))
80
81
82 srv = s:taboption("general", Value, "server", translate("<abbr title=\"Point-to-Point Tunneling Protocol\">PPTP</abbr>-Server"))
83 srv:depends("proto", "pptp")
84 srv.rmempty = true
85
86 if has_pppd or has_pppoe or has_pppoa or has_pptp then
87         user = s:taboption("general", Value, "username", translate("Username"))
88         user.rmempty = true
89         user:depends("proto", "pptp")
90         user:depends("proto", "pppoe")
91         user:depends("proto", "pppoa")
92
93         pass = s:taboption("general", Value, "password", translate("Password"))
94         pass.rmempty = true
95         pass.password = true
96         pass:depends("proto", "pptp")
97         pass:depends("proto", "pppoe")
98         pass:depends("proto", "pppoa")
99
100         ka = s:taboption("expert", Value, "keepalive",
101          translate("Keep-Alive"),
102          translate("Number of failed connection tests to initiate automatic reconnect")
103         )
104         ka.default = "5"
105         ka:depends("proto", "pptp")
106         ka:depends("proto", "pppoe")
107         ka:depends("proto", "pppoa")
108
109         demand = s:taboption("expert", Value, "demand",
110          translate("Automatic Disconnect"),
111          translate("Time (in seconds) after which an unused connection will be closed")
112         )
113         demand:depends("proto", "pptp")
114         demand:depends("proto", "pppoe")
115         demand:depends("proto", "pppoa")
116 end
117
118 if has_pppoa then
119         encaps = s:taboption("expert", ListValue, "encaps", translate("PPPoA Encapsulation"))
120         encaps:depends("proto", "pppoa")
121         encaps:value("", translate("-- Please choose --"))
122         encaps:value("vc", "VC")
123         encaps:value("llc", "LLC")
124
125         vpi = s:taboption("expert", Value, "vpi", "VPI")
126         vpi:depends("proto", "pppoa")
127
128         vci = s:taboption("expert", Value, "vci", "VCI")
129         vci:depends("proto", "pppoa")
130 end
131
132 if has_pptp or has_pppd or has_pppoe or has_pppoa or has_3g then
133 --[[
134         defaultroute = s:taboption("expert", Flag, "defaultroute",
135          translate("Replace default route"),
136          translate("Let pppd replace the current default route to use the PPP interface after successful connect")
137         )
138         defaultroute:depends("proto", "pppoa")
139         defaultroute:depends("proto", "pppoe")
140         defaultroute:depends("proto", "pptp")
141         defaultroute.rmempty = false
142         function defaultroute.cfgvalue(...)
143                 return ( AbstractValue.cfgvalue(...) or '1' )
144         end
145 ]]
146         peerdns = s:taboption("expert", Flag, "peerdns",
147          translate("Use peer DNS"),
148          translate("Configure the local DNS server to use the name servers adverticed by the PPP peer")
149         )
150         peerdns:depends("proto", "pppoa")
151         peerdns:depends("proto", "pppoe")
152         peerdns:depends("proto", "pptp")
153         peerdns.rmempty = false
154         peerdns.default = "1"
155
156         if has_ipv6 then
157                 ipv6 = s:taboption("expert", Flag, "ipv6", translate("Enable IPv6 on PPP link") )
158                 ipv6:depends("proto", "pppoa")
159                 ipv6:depends("proto", "pppoe")
160                 ipv6:depends("proto", "pptp")
161         end
162 end
163
164 return m