luci-app-frpc: add plugin options
authorLiangbin Lian <jjm2473@gmail.com>
Tue, 16 Aug 2022 06:03:09 +0000 (14:03 +0800)
committerJo-Philipp Wich <jo@mein.io>
Mon, 3 Apr 2023 11:45:03 +0000 (13:45 +0200)
Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
(backported from commit 175487f054b904383673d85ca95bdccb386919c1)

applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js

index 84eb9f86557f527198f5b183b908ef55a32fac86..0999ba0294e4122879354e79d602ee3878060170 100644 (file)
@@ -72,6 +72,16 @@ var stcpProxyConf = [
        [form.Value, 'sk', _('Sk')],
 ];
 
+var pluginConf = [
+       [form.ListValue, 'plugin', _('Plugin'), undefined, {values: ['', 'http_proxy', 'socks5', 'unix_domain_socket'], rmempty: true}],
+       [form.Value, 'plugin_http_user', _('HTTP user'), undefined, {depends: {plugin: 'http_proxy'}}],
+       [form.Value, 'plugin_http_passwd', _('HTTP password'), undefined, {depends: {plugin: 'http_proxy'}}],
+       [form.Value, 'plugin_user', _('SOCKS5 user'), undefined, {depends: {plugin: 'socks5'}}],
+       [form.Value, 'plugin_passwd', _('SOCKS5 password'), undefined, {depends: {plugin: 'socks5'}}],
+       [form.Value, 'plugin_unix_path', _('Unix domain socket path'), undefined, {depends: {plugin: 'unix_domain_socket'}, optional: false, rmempty: false,
+               datatype: 'file', placeholder: '/var/run/docker.sock', default: '/var/run/docker.sock'}],
+];
+
 function setParams(o, params) {
        if (!params) return;
        for (var key in params) {
@@ -207,6 +217,7 @@ return view.extend({
 
                s.tab('general', _('General Settings'));
                s.tab('http', _('HTTP Settings'));
+               s.tab('plugin', _('Plugin Settings'));
 
                s.option(form.Value, 'name', _('Proxy name')).modalonly = false;
                s.option(form.Value, 'type', _('Proxy type')).modalonly = false;
@@ -235,6 +246,9 @@ return view.extend({
                // STCP and XTCP
                defTabOpts(s, 'general', stcpProxyConf, {modalonly: true, depends: [{type: 'stcp'}, {type: 'xtcp'}]});
 
+               // Plugin
+               defTabOpts(s, 'plugin', pluginConf, {modalonly: true});
+
                return m.render();
        }
 });