summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-vpnbypass/htdocs/luci-static/resources/view/vpnbypass
diff options
context:
space:
mode:
authorStan Grishin <stangri@melmac.net>2021-03-10 04:32:00 +0000
committerStan Grishin <stangri@melmac.net>2021-03-14 02:34:01 +0000
commitd35cdc9dcc0e95e360a94a7b1c87df198768ac64 (patch)
treef34c44768bd89690bb81f3d9915a6b2d140c7638 /applications/luci-app-vpnbypass/htdocs/luci-static/resources/view/vpnbypass
parent2516852100eb6b115c0ad90883dfc5cfda16e076 (diff)
luci-app-vpnbypass: transition to client-side rendering
Signed-off-by: Stan Grishin <stangri@melmac.net>
Diffstat (limited to 'applications/luci-app-vpnbypass/htdocs/luci-static/resources/view/vpnbypass')
-rw-r--r--applications/luci-app-vpnbypass/htdocs/luci-static/resources/view/vpnbypass/overview.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/applications/luci-app-vpnbypass/htdocs/luci-static/resources/view/vpnbypass/overview.js b/applications/luci-app-vpnbypass/htdocs/luci-static/resources/view/vpnbypass/overview.js
new file mode 100644
index 0000000000..b2d5d1f775
--- /dev/null
+++ b/applications/luci-app-vpnbypass/htdocs/luci-static/resources/view/vpnbypass/overview.js
@@ -0,0 +1,62 @@
+// Copyright 2021 Stan Grishin (stangri@melmac.net)
+// Many thanks to [@vsviridov](https://github.com/vsviridov) for help with transition to JS
+
+'use strict';
+'require form';
+'require uci';
+'require view';
+'require vpnbypass.widgets as widgets';
+
+var pkg = {
+ get Name() { return 'vpnbypass'; },
+ get URL() { return 'https://docs.openwrt.melmac.net/' + pkg.Name + '/'; }
+};
+
+return view.extend({
+ load: function () {
+ return Promise.all([
+ uci.load(pkg.Name),
+ uci.load('dhcp')
+ ]);
+ },
+
+ render: function (data) {
+
+ var m, d, s, o;
+
+ m = new form.Map(pkg.Name, _('VPN Bypass'));
+
+ s = m.section(form.NamedSection, 'config', pkg.Name);
+
+ o = s.option(widgets.Status, '', _('Service Status'));
+
+ o = s.option(widgets.Buttons, '', _('Service Control'));
+
+ o = s.option(form.DynamicList, 'localport', _('Local Ports to Bypass'), _('Local ports to trigger VPN Bypass.'));
+ o.datatype = 'portrange';
+ o.addremove = false;
+ o.optional = false;
+
+ o = s.option(form.DynamicList, 'remoteport', _('Remote Ports to Bypass'), _('Remote ports to trigger VPN Bypass.'));
+ o.datatype = 'portrange';
+ o.addremove = false;
+ o.optional = false;
+
+ o = s.option(form.DynamicList, 'localsubnet', _('Local IP Addresses to Bypass'), _('Local IP addresses or subnets with direct internet access.'));
+ o.datatype = 'ip4addr';
+ o.addremove = false;
+ o.optional = false;
+
+ o = s.option(form.DynamicList, 'remotesubnet', _('Remote IP Addresses to Bypass'), _('Remote IP addresses or subnets which will be accessed directly.'));
+ o.datatype = 'ip4addr';
+ o.addremove = false;
+ o.optional = false;
+
+ d = new form.Map('dhcp');
+ s = d.section(form.TypedSection, 'dnsmasq');
+ s.anonymous = true;
+ o = s.option(form.DynamicList, 'ipset', _('Domains to Bypass'), _('Domains to be accessed directly, see %sREADME%s for syntax.').format('<a href="' + pkg.URL + '#bypass-domains-formatsyntax" target="_blank" rel="noreferrer noopener">', '</a>'));
+
+ return Promise.all([m.render(), d.render()]);
+ }
+});