luci-base: form.js: fix AbstractValue.textvalue() for uci list options
authorJo-Philipp Wich <jo@mein.io>
Fri, 16 Apr 2021 15:29:32 +0000 (17:29 +0200)
committerJo-Philipp Wich <jo@mein.io>
Fri, 16 Apr 2021 15:32:47 +0000 (17:32 +0200)
Serialize the uci list value into a space separated string before passing
it to String.format() for HTML escaping. Without that change, empty strings
were returned whenever the underlying uci get operation yieled an array.

Fixes: #4993
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 5c792aefc744d1417fc9e24cfb92cd61cf8a651f)

modules/luci-base/htdocs/luci-static/resources/form.js

index 58a31dddb2ebce6af8be0965aa2df04b2d687e0f..f7b4c64f8fe2c8cb045a14b9e43d0ab584a375b4 100644 (file)
@@ -1862,6 +1862,9 @@ var CBIAbstractValue = CBIAbstractElement.extend(/** @lends LuCI.form.AbstractVa
                if (cval == null)
                        cval = this.default;
 
+               if (Array.isArray(cval))
+                       cval = cval.join(' ');
+
                return (cval != null) ? '%h'.format(cval) : null;
        },