Skip to content

Commit

Permalink
luci-app-ksmbd: add UI for multiple interfaces
Browse files Browse the repository at this point in the history
/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>
  • Loading branch information
raenye committed Oct 10, 2023
1 parent 88d1893 commit 55643d2
Showing 1 changed file with 14 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
'require view';
'require fs';
'require form';
'require uci';
'require tools.widgets as widgets';

return view.extend({
Expand Down Expand Up @@ -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';
Expand Down

0 comments on commit 55643d2

Please sign in to comment.