luci-app-samba4: support listen on multiple interfaces
authorLiangbin Lian <jjm2473@gmail.com>
Tue, 25 May 2021 02:34:05 +0000 (10:34 +0800)
committerHannu Nyman <hannu.nyman@iki.fi>
Tue, 25 May 2021 17:04:30 +0000 (20:04 +0300)
/etc/init.d/samba4 already support that

Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
(cherry picked from commit 169ab9979eee780758256c2859f7c2ee86a0b0ae)

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

index 608be887bea722970d2e9e0f579c60dbf38ec690..3c6319f93d6ab7fa59e18369a09bea1ecb0ab59e 100644 (file)
@@ -1,6 +1,7 @@
 'use strict';
 'require view';
 'require fs';
+'require uci';
 'require form';
 'require tools.widgets as widgets';
 
@@ -30,8 +31,22 @@ return view.extend({
                s.tab('general',  _('General Settings'));
                s.tab('template', _('Edit Template'));
 
-               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 = function(section_id) {
+                       return uci.get('samba4', section_id, 'interface').split(' ');
+               };
+               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('samba4', section_id, 'interface', newNetworks.join(' '));
+               };
 
                o = s.taboption('general', form.Value, 'workgroup', _('Workgroup'));
                o.placeholder = 'WORKGROUP';