From b52055af0b2ae2851905c132b9597dbc7d07c28f Mon Sep 17 00:00:00 2001 From: Stephan de Wit Date: Mon, 9 Dec 2024 11:37:31 +0100 Subject: [PATCH] dashboard: make sure widget options are set to the default if none of the options match --- src/opnsense/www/js/widgets/BaseWidget.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/opnsense/www/js/widgets/BaseWidget.js b/src/opnsense/www/js/widgets/BaseWidget.js index 199874311..38684c2ae 100644 --- a/src/opnsense/www/js/widgets/BaseWidget.js +++ b/src/opnsense/www/js/widgets/BaseWidget.js @@ -68,6 +68,17 @@ class BaseWidget { (typeof(widget_config[key] === 'object') && Object.keys(widget_config[key]).length !== 0) && (typeof(widget_config[key] === 'string') && widget_config[key].length !== 0) ) { + if (typeof(widget_config[key] === 'array')) { + const optionsArr = value.options.map(v => v.value); + if (!(widget_config[key].some(v => optionsArr.includes(v)))) { + // if there is config data, but none of the + // options match, set it to the default. + // currently only implemented for the array case + acc[key] = value.default; + return acc; + } + } + acc[key] = widget_config[key]; } else { acc[key] = value.default;