filter on top

This commit is contained in:
vadim committed 2026-10-06 17:33:19 +03:00
1 parent 410b182801
commit fff4e79324
3 files changed
+24 -15

No files matched your search

+2 -2
View File
@@ -30,11 +30,11 @@ function onStatusChanged(alias: string) {
</script> </script>
<template> <template>
<div class="filter-grid ga-4 align-center"> <div class="filter-grid ga-2 align-center">
<text-filter :model-value="text" @update:model-value="emit('update:text', $event)" /> <text-filter :model-value="text" @update:model-value="emit('update:text', $event)" />
<status-filter :status="status" @changed="onStatusChanged" /> <status-filter :status="status" @changed="onStatusChanged" />
<assignee-filter :selected="selectedAssignees" @changed="onAssigneeChanged" /> <assignee-filter :selected="selectedAssignees" @changed="onAssigneeChanged" />
<v-btn prepend-icon="mdi-close" variant="tonal" @click="emit('update:clear')">Clear Filters</v-btn> <v-btn density="compact" variant="text" @click="emit('update:clear')">Clear Filters</v-btn>
</div> </div>
</template> </template>
+13 -3
View File
@@ -11,6 +11,7 @@ const emit = defineEmits<{ changed: [value: string] }>()
const statusStore = useStatusStore() const statusStore = useStatusStore()
const selected = ref(status) const selected = ref(status)
const onUpdate = (val: unknown) => emit('changed', val as string) const onUpdate = (val: unknown) => emit('changed', val as string)
watch( watch(
() => status, () => status,
(val) => { (val) => {
@@ -24,11 +25,20 @@ watch(
v-model="selected" v-model="selected"
divided divided
size="default" size="default"
density="compact" density="comfortable"
variant="text" variant="flat"
@update:model-value="onUpdate" @update:model-value="onUpdate"
> >
<v-btn slim v-for="el in statusStore.statuses" :color="el.color" :value="el.alias" :key="el.alias" rounded="0"> <v-btn
border
slim
v-for="el in statusStore.statuses"
:color="el.color"
:value="el.alias"
:key="el.alias"
rounded="0"
>
<!-- <v-icon :icon="icons.get(el.alias)" class="mr-1" />-->
<div class="text-default">{{ el.name }}</div> <div class="text-default">{{ el.name }}</div>
</v-btn> </v-btn>
</v-btn-toggle> </v-btn-toggle>
+9 -10
View File
@@ -188,18 +188,17 @@ async function onDeleteBatch() {
<template> <template>
<div class="d-flex flex-column ga-2 h-100"> <div class="d-flex flex-column ga-2 h-100">
<issue-filter
:text="text"
:assignee-id="assigneeId"
:status="status"
@update:text="onTextChanged"
@update:assignee-id="onAssigneeChanged"
@update:status="onStatusChanged"
@update:clear="onClear"
/>
<div ref="splitContainer" class="u-grid"> <div ref="splitContainer" class="u-grid">
<div class="u-height"> <div class="u-height">
<issue-filter
class="mb-2"
:text="text"
:assignee-id="assigneeId"
:status="status"
@update:text="onTextChanged"
@update:assignee-id="onAssigneeChanged"
@update:status="onStatusChanged"
@update:clear="onClear"
/>
<v-list class="pa-0" density="compact" v-model:selected="selected" mandatory> <v-list class="pa-0" density="compact" v-model:selected="selected" mandatory>
<v-list-item> <v-list-item>
<template #prepend> <template #prepend>