From d55913cfa44c81280111d093807c6830b3584d8d Mon Sep 17 00:00:00 2001 From: Stan Grishin Date: Fri, 14 Oct 2022 12:02:56 +0000 Subject: luci-proto-nebula: add nebula protocol support Signed-off-by: Stan Grishin --- .../luci-static/resources/protocol/nebula.js | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 protocols/luci-proto-nebula/htdocs/luci-static/resources/protocol/nebula.js (limited to 'protocols/luci-proto-nebula/htdocs/luci-static') diff --git a/protocols/luci-proto-nebula/htdocs/luci-static/resources/protocol/nebula.js b/protocols/luci-proto-nebula/htdocs/luci-static/resources/protocol/nebula.js new file mode 100644 index 0000000000..409416dd49 --- /dev/null +++ b/protocols/luci-proto-nebula/htdocs/luci-static/resources/protocol/nebula.js @@ -0,0 +1,50 @@ +'use strict'; +'require ui'; +'require uci'; +'require rpc'; +'require form'; +'require network'; + +return network.registerProtocol('nebula', { + getI18n: function () { + return _('Nebula Network'); + }, + + getIfname: function () { + return this._ubus('l3_device') || this.sid; + }, + + getOpkgPackage: function () { + return 'nebula'; + }, + + isFloating: function () { + return true; + }, + + isVirtual: function () { + return true; + }, + + getDevices: function () { + return null; + }, + + containsDevice: function (ifname) { + return (network.getIfnameOf(ifname) == this.getIfname()); + }, + + renderFormOptions: function (s) { + var o; + + o = s.taboption('general', form.Value, 'config_file', _('Config File'), _('Required. Path to the .yml config file for this interface.')); + o.rmempty = false; + + }, + + deleteConfiguration: function () { + uci.sections('network', 'nebula_%s'.format(this.sid), function (s) { + uci.remove('network', s['.name']); + }); + } +}); -- cgit v1.2.3