From: Jo-Philipp Wich Date: Sun, 13 Oct 2013 22:38:59 +0000 (+0000) Subject: luci2: add network routes view X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=5abf327e7b688454224f15aab71b65f33ebfd0ba;p=project%2Fluci2%2Fui.git luci2: add network routes view --- diff --git a/luci2/htdocs/luci2/template/network.routes.htm b/luci2/htdocs/luci2/template/network.routes.htm new file mode 100644 index 0000000..ad19e7d --- /dev/null +++ b/luci2/htdocs/luci2/template/network.routes.htm @@ -0,0 +1 @@ +
diff --git a/luci2/htdocs/luci2/view/network.routes.js b/luci2/htdocs/luci2/view/network.routes.js new file mode 100644 index 0000000..4c23a69 --- /dev/null +++ b/luci2/htdocs/luci2/view/network.routes.js @@ -0,0 +1,103 @@ +L.ui.view.extend({ + title: L.tr('Routes'), + description: L.tr('Routes specify over which interface and gateway a certain host or network can be reached.'), + + execute: function() { + var self = this; + return L.network.listNetworkNames().then(function(list) { + var m = new L.cbi.Map('network', { + readonly: !self.options.acls.network + }); + + var s4 = m.section(L.cbi.TableSection, 'route', { + caption: L.tr('Static IPv4 Routes'), + anonymous: true, + addremove: true, + add_caption: L.tr('Add new route'), + remove_caption: L.tr('Remove route') + }); + + var ifc = s4.option(L.cbi.ListValue, 'interface', { + caption: L.tr('Interface') + }); + + for (var i = 0; i < list.length; i++) + ifc.value(list[i]); + + s4.option(L.cbi.InputValue, 'target', { + caption: L.tr('Target'), + datatype: 'ip4addr' + }); + + s4.option(L.cbi.InputValue, 'netmask', { + caption: L.tr('IPv4-Netmask'), + datatype: 'ip4addr', + placeholder: '255.255.255.255', + optional: true + }); + + s4.option(L.cbi.InputValue, 'gateway', { + caption: L.tr('IPv4-Gateway'), + datatype: 'ip4addr', + optional: true + }); + + s4.option(L.cbi.InputValue, 'metric', { + caption: L.tr('Metric'), + datatype: 'range(0,255)', + placeholder: 0, + optional: true + }); + + s4.option(L.cbi.InputValue, 'mtu', { + caption: L.tr('MTU'), + datatype: 'range(64,9000)', + placeholder: 1500, + optional: true + }); + + + var s6 = m.section(L.cbi.TableSection, 'route6', { + caption: L.tr('Static IPv6 Routes'), + anonymous: true, + addremove: true, + add_caption: L.tr('Add new route'), + remove_caption: L.tr('Remove route') + }); + + var ifc = s6.option(L.cbi.ListValue, 'interface', { + caption: L.tr('Interface') + }); + + for (var i = 0; i < list.length; i++) + ifc.value(list[i]); + + s6.option(L.cbi.InputValue, 'target', { + caption: L.tr('Target'), + datatype: 'ip6addr' + }); + + s6.option(L.cbi.InputValue, 'gateway', { + caption: L.tr('IPv6-Gateway'), + datatype: 'ip6addr', + optional: true + }); + + s6.option(L.cbi.InputValue, 'metric', { + caption: L.tr('Metric'), + datatype: 'range(0,255)', + placeholder: 0, + optional: true + }); + + s6.option(L.cbi.InputValue, 'mtu', { + caption: L.tr('MTU'), + datatype: 'range(64,9000)', + placeholder: 1500, + optional: true + }); + + m.insertInto('#map'); + }); + } +}); diff --git a/luci2/share/menu.d/network.json b/luci2/share/menu.d/network.json index e88dff6..e577d70 100644 --- a/luci2/share/menu.d/network.json +++ b/luci2/share/menu.d/network.json @@ -15,6 +15,12 @@ "view": "network/hosts", "index": 50 }, + "network/routes": { + "title": "Routes", + "acls": [ "network" ], + "view": "network/routes", + "index": 70 + }, "network/diagnostics": { "title": "Diagnostics", "acls": [ "diagnostics" ],