luci-base: form.js: minor tweaks for mobile styling
authorJo-Philipp Wich <jo@mein.io>
Tue, 17 May 2022 13:07:48 +0000 (15:07 +0200)
committerJo-Philipp Wich <jo@mein.io>
Tue, 17 May 2022 13:07:48 +0000 (15:07 +0200)
 - Annotate gridsection textvalue cells as CBI.DummyValue widgets
 - Replace `<br>` elements with newlines in `stripTags()`

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-base/htdocs/luci-static/resources/form.js

index 0802d8b24d3569e66900aa636a2be8a07655dc01..90a15175712713891da34491de5dd43e6e7b7208 100644 (file)
@@ -287,9 +287,13 @@ var CBIAbstractElement = baseclass.extend(/** @lends LuCI.form.AbstractElement.p
                if (typeof(s) == 'string' && !s.match(/[<>]/))
                        return s;
 
-               var x = dom.parse('<div>' + s + '</div>');
+               var x = dom.elem(s) ? s : dom.parse('<div>' + s + '</div>');
 
-               return x.textContent || x.innerText || '';
+               x.querySelectorAll('br').forEach(function(br) {
+                       x.replaceChild(document.createTextNode('\n'), br);
+               });
+
+               return (x.textContent || x.innerText || '').replace(/([ \t]*\n)+/g, '\n');
        },
 
        /**
@@ -3412,7 +3416,7 @@ var CBIGridSection = CBITableSection.extend(/** @lends LuCI.form.GridSection.pro
                        'data-title': (title != '') ? title : null,
                        'data-description': (descr != '') ? descr : null,
                        'data-name': opt.option,
-                       'data-widget': opt.typename || opt.__name__
+                       'data-widget': 'CBI.DummyValue'
                }, (value != null) ? value : E('em', _('none')));
        },