summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-ksmbd/htdocs/luci-static
diff options
context:
space:
mode:
Diffstat (limited to 'applications/luci-app-ksmbd/htdocs/luci-static')
-rw-r--r--applications/luci-app-ksmbd/htdocs/luci-static/resources/view/ksmbd.js112
1 files changed, 112 insertions, 0 deletions
diff --git a/applications/luci-app-ksmbd/htdocs/luci-static/resources/view/ksmbd.js b/applications/luci-app-ksmbd/htdocs/luci-static/resources/view/ksmbd.js
new file mode 100644
index 0000000000..a77e72bcdf
--- /dev/null
+++ b/applications/luci-app-ksmbd/htdocs/luci-static/resources/view/ksmbd.js
@@ -0,0 +1,112 @@
+'use strict';
+'require fs';
+'require form';
+'require tools.widgets as widgets';
+
+return L.view.extend({
+ load: function() {
+ return Promise.all([
+ L.resolveDefault(fs.stat('/sbin/block'), null),
+ L.resolveDefault(fs.stat('/etc/config/fstab'), null),
+ L.resolveDefault(fs.exec('/usr/sbin/usmbd', ['-V']), {}).then(function(res) { return L.toArray((res.stdout || '').match(/version : (\S+)/))[1] }),
+ L.resolveDefault(fs.exec('/sbin/modinfo', ['ksmbd']), {}).then(function(res) { return L.toArray((res.stdout || '').match(/version:\t(\S+)/))[1] }),
+ ]);
+ },
+ render: function(stats) {
+ var m, s, o, v;
+ v = '';
+
+ m = new form.Map('ksmbd', _('Network Shares'));
+
+ if (stats[2]) {
+ v = stats[2].trim();
+ }
+ if (stats[3]) {
+ v = v + ' Kmod: ' + stats[3].trim();
+ }
+ s = m.section(form.TypedSection, 'globals', 'Ksmbd: ' + v);
+ s.anonymous = true;
+
+ s.tab('general', _('General Settings'));
+ s.tab('template', _('Edit Template'));
+
+ s.taboption('general', widgets.NetworkSelect, 'interface', _('Interface'),
+ _('Listen only on the given interface or, if unspecified, on lan'));
+
+ o = s.taboption('general', form.Value, 'workgroup', _('Workgroup'));
+ o.placeholder = 'WORKGROUP';
+
+ o = s.taboption('general', form.Value, 'description', _('Description'));
+ o.placeholder = 'Ksmbd on OpenWrt';
+
+ o = s.taboption('template', form.TextValue, '_tmpl',
+ _('Edit the template that is used for generating the ksmbd configuration.'),
+ _("This is the content of the file '/etc/ksmbd/smb.conf.template' from which your ksmbd configuration will be generated. \
+ Values enclosed by pipe symbols ('|') should not be changed. They get their values from the 'General Settings' tab."));
+ o.rows = 20;
+ o.cfgvalue = function(section_id) {
+ return fs.trimmed('/etc/ksmbd/smb.conf.template');
+ };
+ o.write = function(section_id, formvalue) {
+ return fs.write('/etc/ksmbd/smb.conf.template', formvalue.trim().replace(/\r\n/g, '\n') + '\n');
+ };
+
+
+ s = m.section(form.TableSection, 'share', _('Shared Directories'),
+ _('Please add directories to share. Each directory refers to a folder on a mounted device.'));
+ s.anonymous = true;
+ s.addremove = true;
+
+ s.option(form.Value, 'name', _('Name'));
+ o = s.option(form.Value, 'path', _('Path'));
+ if (stats[0] && stats[1]) {
+ o.titleref = L.url('admin', 'system', 'mounts');
+ }
+
+ o = s.option(form.Flag, 'browseable', _('Browse-able'));
+ o.enabled = 'yes';
+ o.disabled = 'no';
+ o.default = 'yes';
+
+ o = s.option(form.Flag, 'read_only', _('Read-only'));
+ o.enabled = 'yes';
+ o.disabled = 'no';
+ o.default = 'no'; // smb.conf default is 'yes'
+ o.rmempty = false;
+
+ s.option(form.Flag, 'force_root', _('Force Root'));
+
+ o = s.option(form.Value, 'users', _('Allowed users'));
+ o.rmempty = true;
+
+ o = s.option(form.Flag, 'guest_ok', _('Allow guests'));
+ o.enabled = 'yes';
+ o.disabled = 'no';
+ o.default = 'yes'; // smb.conf default is 'no'
+ o.rmempty = false;
+
+ o = s.option(form.Flag, 'inherit_owner', _('Inherit owner'));
+ o.enabled = 'yes';
+ o.disabled = 'no';
+ o.default = 'no';
+
+ o = s.option(form.Flag, 'hide_dot_files', _('Hide dot files'));
+ o.enabled = 'yes';
+ o.disabled = 'no';
+ o.default = 'yes';
+
+ o = s.option(form.Value, 'create_mask', _('Create mask'));
+ o.maxlength = 4;
+ o.default = '0666'; // smb.conf default is '0744'
+ o.placeholder = '0666';
+ o.rmempty = false;
+
+ o = s.option(form.Value, 'dir_mask', _('Directory mask'));
+ o.maxlength = 4;
+ o.default = '0777'; // smb.conf default is '0755'
+ o.placeholder = '0777';
+ o.rmempty = false;
+
+ return m.render();
+ }
+});