From 86b297d7e3aa834e7f8c6961d7d3b18f05119d8c Mon Sep 17 00:00:00 2001 From: hubsif Date: Sun, 14 Mar 2021 10:29:36 +0100 Subject: [PATCH] Generalize chart periods, fixes #808 (#953) Signed-off-by: Hubert Nusser --- .../components/widgets/chart/chart-mixin.js | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/bundles/org.openhab.ui/web/src/components/widgets/chart/chart-mixin.js b/bundles/org.openhab.ui/web/src/components/widgets/chart/chart-mixin.js index 5b6dde4e0..c8c1e2bde 100644 --- a/bundles/org.openhab.ui/web/src/components/widgets/chart/chart-mixin.js +++ b/bundles/org.openhab.ui/web/src/components/widgets/chart/chart-mixin.js @@ -173,21 +173,9 @@ export default { if (chartType) { day = fn.apply(day, [1, chartType === 'isoWeek' ? 'week' : chartType]) } else { - switch (this.period) { - case 'h': day = fn.apply(day, [1, 'hour']); break - case '2h': day = fn.apply(day, [2, 'hour']); break - case '4h': day = fn.apply(day, [4, 'hour']); break - case '12h': day = fn.apply(day, [12, 'hour']); break - case 'D': day = fn.apply(day, [1, 'day']); break - case '2D': day = fn.apply(day, [2, 'day']); break - case '3D': day = fn.apply(day, [3, 'day']); break - case 'W': day = fn.apply(day, [1, 'week']); break - case '2W': day = fn.apply(day, [2, 'week']); break - case 'M': day = fn.apply(day, [1, 'month']); break - case '2M': day = fn.apply(day, [2, 'month']); break - case '4M': day = fn.apply(day, [4, 'month']); break - case '6M': day = fn.apply(day, [6, 'month']); break - case 'Y': day = fn.apply(day, [365, 'day']); break + let span = this.period.match(/^([\d]*)([smhdDwWMQyY])$/) + if (span) { + day = fn.apply(day, [parseInt(span[1]) || 1, span[2].replace(/[DWY]/, (x) => x.toLowerCase())]) } } }