From 148934e8ca691c53da13bcabb91e9c449dab8a30 Mon Sep 17 00:00:00 2001 From: Bryon Lewis Date: Tue, 25 Nov 2025 12:50:35 -0500 Subject: [PATCH 1/7] linting fix --- client/dive-common/components/MultiCamTools.vue | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/client/dive-common/components/MultiCamTools.vue b/client/dive-common/components/MultiCamTools.vue index 4aa58918e..484a9e484 100644 --- a/client/dive-common/components/MultiCamTools.vue +++ b/client/dive-common/components/MultiCamTools.vue @@ -142,7 +142,9 @@ export default defineComponent({ -

Detection:

+

+ Detection: +

-

Track:

+

+ Track: +

Date: Tue, 25 Nov 2025 12:50:53 -0500 Subject: [PATCH 2/7] prevent multiple tooltips from being appended --- client/src/components/controls/LineChart.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/client/src/components/controls/LineChart.vue b/client/src/components/controls/LineChart.vue index 65d38ed10..edf3d6710 100644 --- a/client/src/components/controls/LineChart.vue +++ b/client/src/components/controls/LineChart.vue @@ -80,6 +80,7 @@ export default Vue.extend({ .select('svg') .remove(); let tooltipTimeoutHandle = null; + d3.select('.tooltip').remove(); const tooltip = d3 .select(this.$el) .append('div') From 50850a9e5f286925d0e15db50901fe11978963b6 Mon Sep 17 00:00:00 2001 From: Bryon Lewis Date: Tue, 25 Nov 2025 12:51:18 -0500 Subject: [PATCH 3/7] add timeFilter for filtering based on time ranges --- client/src/BaseFilterControls.ts | 9 +++++++++ client/src/TrackFilterControls.ts | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/client/src/BaseFilterControls.ts b/client/src/BaseFilterControls.ts index f11953a01..75196850e 100644 --- a/client/src/BaseFilterControls.ts +++ b/client/src/BaseFilterControls.ts @@ -49,6 +49,9 @@ export default abstract class BaseFilterControls { /* The confidence threshold to test confidecePairs against */ confidenceFilters: Ref>; + /* Time filtering values */ + timeFilters: Ref<[number, number] | null>; + /* The types informed by meta configuration */ private defaultTypes: Ref; @@ -85,6 +88,8 @@ export default abstract class BaseFilterControls { this.confidenceFilters = ref({ default: DefaultConfidence } as Record); + this.timeFilters = ref(null); + this.defaultTypes = ref([]); this.sorted = params.sorted; @@ -179,6 +184,10 @@ export default abstract class BaseFilterControls { } } + setTimeFilters(val: [number, number] | null) { + this.timeFilters.value = val; + } + updateTypeName({ currentType, newType }: { currentType: string; newType: string }) { //Go through the entire list and replace the oldType with the new Type this.sorted.value.forEach((annotation) => { diff --git a/client/src/TrackFilterControls.ts b/client/src/TrackFilterControls.ts index b1bcf9d43..add88a8cc 100644 --- a/client/src/TrackFilterControls.ts +++ b/client/src/TrackFilterControls.ts @@ -43,6 +43,12 @@ export default class TrackFilterControls extends BaseFilterControls { const resultsArr: AnnotationWithContext[] = []; const resultsIds: Set = new Set(); params.sorted.value.forEach((annotation) => { + if (this.timeFilters.value !== null) { + const [startTime, endTime] = this.timeFilters.value; + if (annotation.begin > endTime || annotation.end < startTime) { + return; + } + } let enabledInGroupFilters = true; const groups = params.lookupGroups(annotation.id); if (groups.length) { From a48d8841c7618f24236241518f7a8c3278f119cf Mon Sep 17 00:00:00 2001 From: Bryon Lewis Date: Tue, 25 Nov 2025 12:59:42 -0500 Subject: [PATCH 4/7] add time filter button and controls --- .../components/ControlsContainer.vue | 3 +- client/src/components/controls/Controls.vue | 151 +++++++++++++++++- 2 files changed, 151 insertions(+), 3 deletions(-) diff --git a/client/dive-common/components/ControlsContainer.vue b/client/dive-common/components/ControlsContainer.vue index 615ba6a61..bdc10af6c 100644 --- a/client/dive-common/components/ControlsContainer.vue +++ b/client/dive-common/components/ControlsContainer.vue @@ -152,7 +152,7 @@ export default defineComponent({ dense style="position:absolute; bottom: 0px; padding: 0px; margin:0px;" > - +