feat: move filter popup to a modal
This commit is contained in:
parent
b2c2118c58
commit
0007c30672
3 changed files with 30 additions and 27 deletions
|
@ -6,39 +6,34 @@
|
||||||
>
|
>
|
||||||
{{ $t('filters.clear') }}
|
{{ $t('filters.clear') }}
|
||||||
</x-button>
|
</x-button>
|
||||||
<popup :has-overflow="true">
|
|
||||||
<template #trigger="{toggle}">
|
|
||||||
<x-button
|
<x-button
|
||||||
@click.prevent.stop="toggle()"
|
@click="() => modalOpen = true"
|
||||||
variant="secondary"
|
variant="secondary"
|
||||||
icon="filter"
|
icon="filter"
|
||||||
>
|
>
|
||||||
{{ $t('filters.title') }}
|
{{ $t('filters.title') }}
|
||||||
</x-button>
|
</x-button>
|
||||||
</template>
|
<modal @close="() => modalOpen = false" :enabled="modalOpen">
|
||||||
<template #content="{isOpen}">
|
|
||||||
<filters
|
<filters
|
||||||
|
:has-title="true"
|
||||||
v-model="value"
|
v-model="value"
|
||||||
ref="filters"
|
ref="filters"
|
||||||
class="filter-popup"
|
class="filter-popup"
|
||||||
:class="{'is-open': isOpen}"
|
:class="{'is-open': isOpen}"
|
||||||
/>
|
/>
|
||||||
</template>
|
</modal>
|
||||||
</popup>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import {defineComponent} from 'vue'
|
import {defineComponent, ref} from 'vue'
|
||||||
|
|
||||||
import Filters from '@/components/list/partials/filters'
|
import Filters from '@/components/list/partials/filters.vue'
|
||||||
import Popup from '@/components/misc/popup'
|
|
||||||
|
|
||||||
import {getDefaultParams} from '@/composables/taskList'
|
import {getDefaultParams} from '@/composables/taskList'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'filter-popup',
|
name: 'filter-popup',
|
||||||
components: {
|
components: {
|
||||||
Popup,
|
|
||||||
Filters,
|
Filters,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
@ -82,6 +77,13 @@ export default defineComponent({
|
||||||
immediate: true,
|
immediate: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
setup() {
|
||||||
|
const modalOpen = ref(false)
|
||||||
|
|
||||||
|
return {
|
||||||
|
modalOpen,
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
clearFilters() {
|
clearFilters() {
|
||||||
this.value = {...getDefaultParams()}
|
this.value = {...getDefaultParams()}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<card class="filters has-overflow">
|
<card class="filters has-overflow" :title="hasTitle ? $t('filters.title') : ''">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<fancycheckbox v-model="params.filter_include_nulls">
|
<fancycheckbox v-model="params.filter_include_nulls">
|
||||||
{{ $t('filters.attributes.includeNulls') }}
|
{{ $t('filters.attributes.includeNulls') }}
|
||||||
|
@ -263,6 +263,10 @@ export default defineComponent({
|
||||||
modelValue: {
|
modelValue: {
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
|
hasTitle: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
emits: ['update:modelValue', 'change'],
|
emits: ['update:modelValue', 'change'],
|
||||||
watch: {
|
watch: {
|
||||||
|
|
|
@ -91,9 +91,6 @@ watch(
|
||||||
scrollLock.value = enabled
|
scrollLock.value = enabled
|
||||||
store.commit('modalActive', enabled)
|
store.commit('modalActive', enabled)
|
||||||
},
|
},
|
||||||
{
|
|
||||||
immediate: true,
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue