summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-ksmbd/htdocs
diff options
context:
space:
mode:
authorRani Hod <rani.hod@gmail.com>2023-10-10 14:48:22 +0300
committerRani Hod <rani.hod@gmail.com>2023-10-10 14:53:54 +0300
commit55643d2075ee6cc4b6c4e16dd8e45b9899fe02fb (patch)
treed1094c84f935ec01fbea5ed94e0b535eef21a85e /applications/luci-app-ksmbd/htdocs
parent88d1893b9c21ce716d9bec4c40f6c9720becf220 (diff)
luci-app-ksmbd: add UI for multiple interfaces
/etc/config/ksmbd supports multiple interfaces (in config globals-> option interface) but the current UI only supports selecting a single one. This patch adds support for selecting multiple interfaces, based on how luci-app-samba4 does it. Closes: #6620 Suggested-by: @AndroKev Signed-off-by: Rani Hod <rani.hod@gmail.com>
Diffstat (limited to 'applications/luci-app-ksmbd/htdocs')
-rw-r--r--applications/luci-app-ksmbd/htdocs/luci-static/resources/view/ksmbd.js15
1 files changed, 14 insertions, 1 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
index 3c94b15eb3..7408c33c44 100644
--- a/applications/luci-app-ksmbd/htdocs/luci-static/resources/view/ksmbd.js
+++ b/applications/luci-app-ksmbd/htdocs/luci-static/resources/view/ksmbd.js
@@ -2,6 +2,7 @@
'require view';
'require fs';
'require form';
+'require uci';
'require tools.widgets as widgets';
return view.extend({
@@ -32,8 +33,20 @@ return view.extend({
s.tab('general', _('General Settings'));
s.tab('template', _('Edit Template'), _('Edit the template that is used for generating the ksmbd configuration.'));
- s.taboption('general', widgets.NetworkSelect, 'interface', _('Interface'),
+ o = s.taboption('general', widgets.NetworkSelect, 'interface', _('Interface'),
_('Listen only on the given interface or, if unspecified, on lan'));
+ o.multiple = true;
+ o.cfgvalue = (section_id => L.toArray(uci.get('ksmbd', section_id, 'interface')));
+ o.write = function(section_id, formvalue) {
+ var cfgvalue = this.cfgvalue(section_id),
+ oldNetworks = L.toArray(cfgvalue),
+ newNetworks = L.toArray(formvalue);
+ oldNetworks.sort();
+ newNetworks.sort();
+ if (oldNetworks.join(' ') == newNetworks.join(' '))
+ return;
+ return uci.set('ksmbd', section_id, 'interface', newNetworks.join(' '));
+ };
o = s.taboption('general', form.Value, 'workgroup', _('Workgroup'));
o.placeholder = 'WORKGROUP';