In the underlying uci system, all variables are effectively strings, so
for those configuration values which serve as 'boolean' flags, we need
to coerce the various forms into a real boolean. Only the following
string values result in true: 1|on|true|yes|enabled. Otherwise, false.
Checkboxes now fill correctly.
"Unchanged" configurations may write changed values as the Flag values
are coerced to '1' or '0' on write, but the configuration behaviour
remains synonymous.
Signed-off-by: Paul Donald <[email protected]>
(cherry picked from commit
1355a6fa253d765140f5571354939d2e93e6d967)
* @default 'ℹ️';
*/
+ /**
+ * Coerce the various forms of a 'boolean' string into a true/false value.
+ *
+ * @override
+ */
+ load() {
+ //
+ let load = this.super('load', arguments);
+ if (typeof(load) == 'string')
+ load = ['1', 'on', 'true', 'yes', 'enabled'].includes(load.toLowerCase());
+ return load;
+ },
+
/** @private */
renderWidget: function(section_id, option_index, cfgvalue) {
var tooltip = null;