Skip to content

Commit d4c2784

Browse files
committed
Added period filter
1 parent 2c40919 commit d4c2784

1 file changed

Lines changed: 25 additions & 2 deletions

File tree

client/src/views/annotate/subviews/JobsView.vue

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,20 @@
2222
:maxSelectedLabels="5"
2323
/>
2424
</fieldset>
25+
26+
<fieldset>
27+
<label for="period-select">Select period</label>
28+
<Slider
29+
style="width: 209px"
30+
range
31+
id="period-select"
32+
v-model="periodFilter"
33+
:min="periodStart"
34+
:max="2100"
35+
:step="100"
36+
/>
37+
<output>{{ periodCorrected[0] }} – {{ periodCorrected[1] }}</output>
38+
</fieldset>
2539
</GForm>
2640
</template>
2741

@@ -69,6 +83,7 @@ import type { Column, TableData } from "@/types/ui/table"
6983
import { formatDate } from "@/ts/utils"
7084
import MultiSelect from "primevue/multiselect"
7185
import AnnotationItemsViewer from "@/components/modals/metadata/AnnotationItemsViewer.vue"
86+
import Slider from "primevue/slider"
7287
7388
// #stores
7489
const { canWrite } = storeToRefs(stores.useUser())
@@ -82,22 +97,30 @@ reload()
8297
const jobId = ref<string>()
8398
// filters
8499
const taggerFilter = ref<string>("")
85-
const tagsetFilter = ref<string[]>([])
86100
const annotationFilter = ref<string[]>([])
87101
88102
// #computed
89103
// select options
90104
const annotations = computed<string[]>(() => [
91105
...new Set(taggerJobs.value.flatMap((j: Job) => j.tagger.annotations.flatMap((a) => a.annotation))),
92106
])
107+
const periodCorrected = computed<number[]>(() => [Math.min(...periodFilter.value), Math.max(...periodFilter.value)])
108+
const periodStart = computed<number>(() => Math.min(...taggerJobs.value.map((j: Job) => j.tagger.period.from)))
109+
const periodFilter = ref<number[]>([corpus.value.eraFrom, corpus.value.eraTo])
93110
// table data
94111
const items = computed(() =>
95112
taggerJobs.value
113+
// filter tagger name
96114
.filter((j: Job) =>
97115
// Case insensitive string comparison.
98116
j.tagger.id.toLowerCase().includes(taggerFilter.value.toLowerCase()),
99117
)
100-
.filter((j: Job) => (tagsetFilter.value?.length > 0 ? tagsetFilter.value.includes(j.tagger.tagset) : true))
118+
// filter period
119+
.filter(
120+
(j: Job) =>
121+
j.tagger.period.to >= periodCorrected.value[0] && j.tagger.period.from <= periodCorrected.value[1],
122+
)
123+
// filter annotations
101124
.filter((j: Job) =>
102125
annotationFilter.value?.length > 0
103126
? j.tagger.annotations.some((a: string) => annotationFilter.value.includes(a))

0 commit comments

Comments
 (0)