4 'require tools.widgets as widgets';
8 return network
.getDevices();
11 render: function(netdevs
) {
14 m
= new form
.Map('network', _('Routes'), _('Routes specify over which interface and gateway a certain host or network can be reached.'));
17 for (var i
= 4; i
<= 6; i
+= 2) {
18 s
= m
.section(form
.GridSection
, (i
== 4) ? 'route' : 'route6', (i
== 4) ? _('Static IPv4 Routes') : _('Static IPv6 Routes'));
23 s
.tab('general', _('General Settings'));
24 s
.tab('advanced', _('Advanced Settings'));
26 o
= s
.taboption('general', widgets
.NetworkSelect
, 'interface', _('Interface'));
30 o
= s
.taboption('general', form
.Value
, 'target', _('Target'), (i
== 4) ? _('Host-<abbr title="Internet Protocol Address">IP</abbr> or Network') : _('<abbr title="Internet Protocol Version 6">IPv6</abbr>-Address or Network (CIDR)'));
31 o
.datatype
= (i
== 4) ? 'ip4addr' : 'ip6addr';
35 o
= s
.taboption('general', form
.Value
, 'netmask', _('<abbr title="Internet Protocol Version 4">IPv4</abbr>-Netmask'), _('if target is a network'));
36 o
.placeholder
= '255.255.255.255';
37 o
.datatype
= 'ip4addr';
41 o
= s
.taboption('general', form
.Value
, 'gateway', (i
== 4) ? _('<abbr title="Internet Protocol Version 4">IPv4</abbr>-Gateway') : _('<abbr title="Internet Protocol Version 6">IPv6</abbr>-Gateway'));
42 o
.datatype
= (i
== 4) ? 'ip4addr' : 'ip6addr';
45 o
= s
.taboption('advanced', form
.Value
, 'metric', _('Metric'));
47 o
.datatype
= (i
== 4) ? 'range(0,255)' : 'range(0,65535)';
49 o
.textvalue = function(section_id
) {
50 return this.cfgvalue(section_id
) || 0;
53 o
= s
.taboption('advanced', form
.Value
, 'mtu', _('MTU'));
55 o
.datatype
= 'range(64,9000)';
59 o
= s
.taboption('advanced', form
.ListValue
, 'type', _('Route type'));
60 o
.value('', 'unicast');
64 o
.value('unreachable');
72 o
= s
.taboption('advanced', form
.Value
, 'table', _('Route table'));
73 o
.value('local', 'local (255)');
74 o
.value('main', 'main (254)');
75 o
.value('default', 'default (253)');
78 o
.cfgvalue = function(section_id
) {
79 var cfgvalue
= this.super('cfgvalue', [section_id
]);
80 return cfgvalue
|| 'main';
83 o
= s
.taboption('advanced', form
.Value
, 'source', _('Source Address'));
84 o
.placeholder
= E('em', _('automatic'));
85 for (var j
= 0; j
< netdevs
.length
; j
++) {
86 var addrs
= netdevs
[j
].getIPAddrs();
87 for (var k
= 0; k
< addrs
.length
; k
++)
88 o
.value(addrs
[k
].split('/')[0]);
90 o
.datatype
= (i
== 4) ? 'ip4addr' : 'ip6addr';
95 o
= s
.taboption('advanced', form
.Flag
, 'onlink', _('On-Link route'));
96 o
.default = o
.disabled
;