diff options
author | Richard Yu <yurichard3839@gmail.com> | 2019-10-17 16:47:14 +0800 |
---|---|---|
committer | Richard Yu <yurichard3839@gmail.com> | 2019-10-17 17:52:54 +0800 |
commit | 1c9a06ea2b8829bee9d4149f118bd8c0d863c081 (patch) | |
tree | 88ad11322a7ba6c2cf5a2fd15400cb5c6a6d7b62 /applications/luci-app-ttyd/htdocs | |
parent | 51b519e55ec7daa62c343e7f776fa5a1bcc3d8bb (diff) |
luci-app-ttyd: add new package
Signed-off-by: Richard Yu <yurichard3839@gmail.com>
Diffstat (limited to 'applications/luci-app-ttyd/htdocs')
-rw-r--r-- | applications/luci-app-ttyd/htdocs/luci-static/resources/view/ttyd/config.js | 79 | ||||
-rw-r--r-- | applications/luci-app-ttyd/htdocs/luci-static/resources/view/ttyd/term.js | 21 |
2 files changed, 100 insertions, 0 deletions
diff --git a/applications/luci-app-ttyd/htdocs/luci-static/resources/view/ttyd/config.js b/applications/luci-app-ttyd/htdocs/luci-static/resources/view/ttyd/config.js new file mode 100644 index 000000000..e92880d53 --- /dev/null +++ b/applications/luci-app-ttyd/htdocs/luci-static/resources/view/ttyd/config.js @@ -0,0 +1,79 @@ +'use strict'; +'require form'; +'require tools.widgets as widgets'; + +return L.view.extend({ + render: function() { + var m, s, o; + + m = new form.Map('ttyd'); + + s = m.section(form.TypedSection, 'ttyd', _('ttyd Instance')); + s.anonymous = true; + s.addremove = true; + s.addbtntitle = _('Add instance'); + + o = s.option(form.Flag, 'enable', _('Enable')); + o.default = true; + + o = s.option(form.Value, 'port', _('Port'), _('Port to listen (default: 7681, use `0` for random port)')); + o.datatype = 'port'; + o.placeholder = 7681; + + o = s.option(widgets.DeviceSelect, 'interface', _('Interface'), _('Network interface to bind (eg: eth0), or UNIX domain socket path (eg: /var/run/ttyd.sock)')); + o.nocreate = true; + o.unspecified = true; + + o = s.option(form.Value, 'credential', _('Credential'), _('Credential for Basic Authentication')); + o.placeholder = 'username:password'; + + o = s.option(form.Value, 'uid', _('User ID'), _('User id to run with')); + o.datatype = 'uinteger'; + + o = s.option(form.Value, 'gid', _('Group ID'), _('Group id to run with')); + o.datatype = 'uinteger'; + + o = s.option(form.Value, 'signal', _('Signal'), _('Signal to send to the command when exit it (default: 1, SIGHUP)')); + o.datatype = 'uinteger'; + + s.option(form.Flag, 'url_arg', _('Allow URL args'), _('Allow client to send command line arguments in URL (eg: http://localhost:7681?arg=foo&arg=bar)')); + + s.option(form.Flag, 'readonly', _('Read-only'), _('Do not allow clients to write to the TTY')); + + o = s.option(form.DynamicList, 'client_option', _('Client option'), _('Send option to client')); + o.placeholder = 'key=value'; + + o = s.option(form.Value, 'terminal_type', _('Terminal type'), _('Terminal type to report (default: xterm-256color)')); + o.placeholder = 'xterm-256color'; + + s.option(form.Flag, 'check_origin', _('Check origin'), _('Do not allow websocket connection from different origin')); + + o = s.option(form.Value, 'max_clients', _('Max clients'), _('Maximum clients to support (default: 0, no limit)')); + o.datatype = 'uinteger'; + o.placeholder = '0'; + + s.option(form.Flag, 'once', _('Once'), _('Accept only one client and exit on disconnection')); + + o = s.option(form.Value, 'index', _('Index'), _('Custom index.html path')); + + s.option(form.Flag, 'ipv6', _('IPv6'), _('Enable IPv6 support')); + + s.option(form.Flag, 'ssl', _('SSL'), _('Enable SSL')); + + o = s.option(form.Value, 'ssl_cert', _('SSL cert'), _('SSL certificate file path')); + o.depends('ssl', '1'); + + o = s.option(form.Value, 'ssl_key', _('SSL key'), _('SSL key file path')); + o.depends('ssl', '1'); + + o = s.option(form.Value, 'ssl_ca', _('SSL ca'), _('SSL CA file path for client certificate verification')); + o.depends('ssl', '1'); + + o = s.option(form.Value, 'debug', _('Debug'), _('Set log level (default: 7)')); + o.placeholder = '7'; + + s.option(form.Value, 'command', _('Command')); + + return m.render(); + } +}); diff --git a/applications/luci-app-ttyd/htdocs/luci-static/resources/view/ttyd/term.js b/applications/luci-app-ttyd/htdocs/luci-static/resources/view/ttyd/term.js new file mode 100644 index 000000000..4725f7a5b --- /dev/null +++ b/applications/luci-app-ttyd/htdocs/luci-static/resources/view/ttyd/term.js @@ -0,0 +1,21 @@ +'use strict'; +'require uci'; + +return L.view.extend({ + load: function() { + return uci.load('ttyd'); + }, + render: function() { + var port = uci.get_first('ttyd', 'ttyd', 'port') || '7681'; + if (port === '0') + return E('div', { class: 'alert-message warning' }, + _('Random ttyd port (port=0) is not supported.<br>Change to a fixed port and try again.')); + return E('iframe', { + src: window.location.protocol + '//' + window.location.hostname + ':' + port, + style: 'width: 100%; min-height: 500px; border: none; border-radius: 3px; resize: vertical;' + }); + }, + handleSaveApply: null, + handleSave: null, + handleReset: null +}); |