luci-proto-gre: improvement of LuCI interface
[project/luci.git] / protocols / luci-proto-gre / htdocs / luci-static / resources / protocol / grev6.js
index bd9a43e27b828c0dde600e930d4cdae2e8fb0d0b..d8fb3d337732894bb9bae72a695c0c34fb5b91fb 100644 (file)
@@ -46,6 +46,13 @@ return network.registerProtocol('grev6', {
                o = s.taboption('general', form.Value, 'ip6addr', _("Local IPv6 address"), _("The local IPv6 address over which the tunnel is created (optional)."));
                o.optional = true;
                o.datatype = 'ip6addr("nomask")';
+               o.load = function(section_id) {
+                       return network.getWAN6Networks().then(L.bind(function(nets) {
+                               if (Array.isArray(nets) && nets.length)
+                                       this.placeholder = nets[0].getIP6Addr();
+                               return form.Value.prototype.load.apply(this, [section_id]);
+                       }, this));
+               };
 
                o = s.taboption('general', widgets.NetworkSelect, 'weakif', _("Source interface"), _("Logical network from which to select the local endpoint if local IPv6 address is empty and no WAN IPv6 is available (optional)."));
                o.exclude = s.section;
@@ -69,11 +76,11 @@ return network.registerProtocol('grev6', {
                o.placeholder = 64;
                o.datatype = 'min(1)';
 
-               o = s.taboption('advanced', form.Value, 'tos', _('Traffic Class'), _("Specify a Traffic Class. Can be either <code>inherit</code> (the outer header inherits the value of the inner header) or an hexadecimal value starting with <code>0x</code> (optional)."));
+               o = s.taboption('advanced', form.Value, 'tos', _("Traffic Class"), _("Specify a Traffic Class. Can be <code>inherit</code> (the outer header inherits the value of the inner header) or an hexadecimal value <code>00..FF</code> (optional)."));
                o.optional = true;
                o.validate = function(section_id, value) {
-                       if (value.length > 0 && !value.match(/^0x[a-fA-F0-9]{1,2}$/) && !value.match(/^inherit$/i))
-                               return _('Invalid value');
+                       if (value.length > 0 && !value.match(/^[a-f0-9]{1,2}$/i) && !value.match(/^inherit$/i)))
+                               return _("Invalid Traffic Class value, expected 00..FF or inherit");
 
                        return true;
                };
@@ -81,6 +88,9 @@ return network.registerProtocol('grev6', {
                o = s.taboption('advanced', form.Flag, 'nohostroute', _("No host route"), _("Do not create host route to peer (optional)."));
                o.optional = true;
 
+               o = s.taboption('advanced', form.Flag, 'multicast', _("Multicast"), _("Enable support for multicast traffic (optional)."));
+               o.optional = true;
+
                o = s.taboption('advanced', form.Value, 'ikey', _("Incoming key"), _("Key for incoming packets (optional)."));
                o.optional = true;
                o.datatype = 'integer';