luci-mod-network: interfaces.js: simplify some code using new ui helpers
authorJo-Philipp Wich <jo@mein.io>
Thu, 6 Aug 2020 15:37:34 +0000 (17:37 +0200)
committerRafał Miłecki <rafal@milecki.pl>
Thu, 27 May 2021 10:19:04 +0000 (12:19 +0200)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 069a97e55c9a44c366db2003944d40238dfc2620)

modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js

index 001b88920fe855ba83ef58a34311df2d437b77f6..6579428a741f6edd61e2548c219d44f2956f75a4 100644 (file)
@@ -212,21 +212,19 @@ function iface_updown(up, id, ev, force) {
 
 function get_netmask(s, use_cfgvalue) {
        var readfn = use_cfgvalue ? 'cfgvalue' : 'formvalue',
-           addropt = s.children.filter(function(o) { return o.option == 'ipaddr'})[0],
-           addrvals = addropt ? L.toArray(addropt[readfn](s.section)) : [],
-           maskopt = s.children.filter(function(o) { return o.option == 'netmask'})[0],
-           maskval = maskopt ? maskopt[readfn](s.section) : null,
-           firstsubnet = maskval ? addrvals[0] + '/' + maskval : addrvals.filter(function(a) { return a.indexOf('/') > 0 })[0];
+           addrs = L.toArray(s[readfn](s.section, 'ipaddr')),
+           mask = s[readfn](s.section, 'netmask'),
+           firstsubnet = mask ? addrs[0] + '/' + mask : addrs.filter(function(a) { return a.indexOf('/') > 0 })[0];
 
        if (firstsubnet == null)
                return null;
 
-       var mask = firstsubnet.split('/')[1];
+       var subnetmask = firstsubnet.split('/')[1];
 
-       if (!isNaN(mask))
-               mask = network.prefixToMask(+mask);
+       if (!isNaN(subnetmask))
+               subnetmask = network.prefixToMask(+subnetmask);
 
-       return mask;
+       return subnetmask;
 }
 
 return view.extend({
@@ -610,9 +608,9 @@ return view.extend({
                                        };
 
                                        so.validate = function(section_id, value) {
-                                               var node = this.map.findElement('id', this.cbid(section_id));
-                                               if (node)
-                                                       node.querySelector('input').setAttribute('placeholder', get_netmask(s, false));
+                                               var uielem = this.getUIElement(section_id);
+                                               if (uielem)
+                                                       uielem.setPlaceholder(get_netmask(s, false));
                                                return form.Value.prototype.validate.apply(this, [ section_id, value ]);
                                        };
 
@@ -949,12 +947,9 @@ return view.extend({
 
                o = s.taboption('advanced', form.Flag, 'force_link', _('Force link'), _('Set interface properties regardless of the link carrier (If set, carrier sense events do not invoke hotplug handlers).'));
                o.modalonly = true;
-               o.render = function(option_index, section_id, in_table) {
-                       var protoopt = this.section.children.filter(function(o) { return o.option == 'proto' })[0],
-                           protoval = protoopt ? protoopt.cfgvalue(section_id) : null;
-
-                       this.default = (protoval == 'static') ? this.enabled : this.disabled;
-                       return this.super('render', [ option_index, section_id, in_table ]);
+               o.defaults = {
+                       '1': [{ proto: 'static' }],
+                       '0': []
                };