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"
6983import { formatDate } from " @/ts/utils"
7084import MultiSelect from " primevue/multiselect"
7185import AnnotationItemsViewer from " @/components/modals/metadata/AnnotationItemsViewer.vue"
86+ import Slider from " primevue/slider"
7287
7388// #stores
7489const { canWrite } = storeToRefs (stores .useUser ())
@@ -82,22 +97,30 @@ reload()
8297const jobId = ref <string >()
8398// filters
8499const taggerFilter = ref <string >(" " )
85- const tagsetFilter = ref <string []>([])
86100const annotationFilter = ref <string []>([])
87101
88102// #computed
89103// select options
90104const 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
94111const 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