From 9f5854039663de616284bb809614fb398e9c845f Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Fri, 18 Jun 2021 11:47:20 -0400 Subject: [PATCH] Time series --- app/src/lang/translations/en-US.yaml | 1 + app/src/panels/time-series/index.ts | 9 +++++++++ app/src/panels/time-series/time-series.vue | 16 ++++++++++++---- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/app/src/lang/translations/en-US.yaml b/app/src/lang/translations/en-US.yaml index 7d99e8d36c..6cc28efc99 100644 --- a/app/src/lang/translations/en-US.yaml +++ b/app/src/lang/translations/en-US.yaml @@ -125,6 +125,7 @@ aggregate_function: Aggregate Function global: Global admins_have_all_permissions: Admins have all permissions camera: Camera +show_zero: Show Zero exposure: Exposure shutter: Shutter iso: ISO diff --git a/app/src/panels/time-series/index.ts b/app/src/panels/time-series/index.ts index 37a2d3e06a..de27e4c3f5 100644 --- a/app/src/panels/time-series/index.ts +++ b/app/src/panels/time-series/index.ts @@ -200,6 +200,15 @@ export default definePanel({ default_value: 'hour', }, }, + { + field: 'showZero', + name: '$t:showZero', + type: 'boolean', + meta: { + interface: 'boolean', + width: 'half', + }, + }, { field: 'color', name: '$t:color', diff --git a/app/src/panels/time-series/time-series.vue b/app/src/panels/time-series/time-series.vue index 0e8a23c25d..221d8702f3 100644 --- a/app/src/panels/time-series/time-series.vue +++ b/app/src/panels/time-series/time-series.vue @@ -8,6 +8,7 @@ import api from '@/api'; import ApexCharts from 'apexcharts'; import { adjustDate } from '@/utils/adjust-date'; import { useI18n } from 'vue-i18n'; +import { isEqual } from 'lodash'; type TimeSeriesOptions = { collection: string; @@ -18,6 +19,7 @@ type TimeSeriesOptions = { color: string; decimals: number; precision: 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second'; + showZero: boolean; }; export default defineComponent({ @@ -42,10 +44,12 @@ export default defineComponent({ watch( () => props.options, - () => { - fetchData(); - chart.value?.destroy(); - setupChart(); + (newOptions, oldOptions) => { + if (isEqual(newOptions, oldOptions) === false) { + fetchData(); + chart.value?.destroy(); + setupChart(); + } }, { deep: true } ); @@ -232,6 +236,10 @@ export default defineComponent({ range: new Date().getTime() - adjustDate(new Date(), `-${props.options.range}`)!.getTime(), max: new Date().getTime(), }, + yaxis: { + forceNiceScale: true, + min: props.options.showZero ? 0 : undefined, + }, }); chart.value.render();