summaryrefslogtreecommitdiffhomepage
path: root/protocols/luci-proto-nebula/htdocs/luci-static
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/luci-proto-nebula/htdocs/luci-static')
-rw-r--r--protocols/luci-proto-nebula/htdocs/luci-static/resources/protocol/nebula.js50
1 files changed, 50 insertions, 0 deletions
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']);
+ });
+ }
+});