1
0

fix(filters): lint

This commit is contained in:
kolaente 2024-03-13 17:21:20 +01:00
parent 15215b30a0
commit fc4eed6eb4
No known key found for this signature in database
GPG Key ID: F40E70337AB24C9B
5 changed files with 168 additions and 200 deletions

View File

@ -2,6 +2,7 @@
<x-button <x-button
variant="secondary" variant="secondary"
icon="filter" icon="filter"
:class="{'has-filters': hasFilters}"
@click="() => modalOpen = true" @click="() => modalOpen = true"
> >
{{ $t('filters.title') }} {{ $t('filters.title') }}
@ -68,10 +69,6 @@ const hasFilters = computed(() => {
}) })
const modalOpen = ref(false) const modalOpen = ref(false)
function clearFilters() {
value.value = {...getDefaultTaskFilterParams()}
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -27,8 +27,8 @@
> >
<x-button <x-button
variant="secondary" variant="secondary"
@click.prevent.stop="clearFiltersAndEmit"
class="mr-2" class="mr-2"
@click.prevent.stop="clearFiltersAndEmit"
> >
{{ $t('filters.clear') }} {{ $t('filters.clear') }}
</x-button> </x-button>

View File

@ -45,7 +45,7 @@
v-tooltip="$t('project.kanban.doneBucketHint')" v-tooltip="$t('project.kanban.doneBucketHint')"
class="icon is-small has-text-success mr-2" class="icon is-small has-text-success mr-2"
> >
<icon icon="check-double"/> <icon icon="check-double" />
</span> </span>
<h2 <h2
class="title input" class="title input"

View File

@ -73,7 +73,7 @@
> >
<template v-if="canWrite"> <template v-if="canWrite">
<span class="icon handle"> <span class="icon handle">
<icon icon="grip-lines"/> <icon icon="grip-lines" />
</span> </span>
</template> </template>
</SingleTaskInProject> </SingleTaskInProject>
@ -97,7 +97,6 @@ export default {name: 'List'}
<script setup lang="ts"> <script setup lang="ts">
import {ref, computed, nextTick, onMounted, watch} from 'vue' import {ref, computed, nextTick, onMounted, watch} from 'vue'
import draggable from 'zhyswan-vuedraggable' import draggable from 'zhyswan-vuedraggable'
import {useRoute, useRouter} from 'vue-router'
import ProjectWrapper from '@/components/project/ProjectWrapper.vue' import ProjectWrapper from '@/components/project/ProjectWrapper.vue'
import ButtonLink from '@/components/misc/ButtonLink.vue' import ButtonLink from '@/components/misc/ButtonLink.vue'
@ -126,7 +125,6 @@ const {
}>() }>()
const ctaVisible = ref(false) const ctaVisible = ref(false)
const showTaskSearch = ref(false)
const drag = ref(false) const drag = ref(false)
const DRAG_OPTIONS = { const DRAG_OPTIONS = {
@ -140,7 +138,6 @@ const {
totalPages, totalPages,
currentPage, currentPage,
loadTasks, loadTasks,
searchTerm,
params, params,
sortByParam, sortByParam,
} = useTaskList(() => projectId, {position: 'asc'}) } = useTaskList(() => projectId, {position: 'asc'})
@ -198,32 +195,6 @@ onMounted(async () => {
ctaVisible.value = true ctaVisible.value = true
}) })
const route = useRoute()
const router = useRouter()
function searchTasks() {
// Only search if the search term changed
if (route.query as unknown as string === searchTerm.value) {
return
}
router.push({
name: 'project.list',
query: {search: searchTerm.value},
})
}
function hideSearchBar() {
// This is a workaround.
// When clicking on the search button, @blur from the input is fired. If we
// would then directly hide the whole search bar directly, no click event
// from the button gets fired. To prevent this, we wait 200ms until we hide
// everything so the button has a chance of firing the search event.
setTimeout(() => {
showTaskSearch.value = false
}, 200)
}
const addTaskRef = ref<typeof AddTask | null>(null) const addTaskRef = ref<typeof AddTask | null>(null)
function focusNewTaskInput() { function focusNewTaskInput() {

View File

@ -67,7 +67,7 @@
</card> </card>
</template> </template>
</Popup> </Popup>
<FilterPopup v-model="params"/> <FilterPopup v-model="params" />
</div> </div>
</div> </div>
</template> </template>
@ -84,175 +84,175 @@
<div class="has-horizontal-overflow"> <div class="has-horizontal-overflow">
<table class="table has-actions is-hoverable is-fullwidth mb-0"> <table class="table has-actions is-hoverable is-fullwidth mb-0">
<thead> <thead>
<tr> <tr>
<th v-if="activeColumns.index"> <th v-if="activeColumns.index">
# #
<Sort <Sort
:order="sortBy.index" :order="sortBy.index"
@click="sort('index')" @click="sort('index')"
/> />
</th> </th>
<th v-if="activeColumns.done"> <th v-if="activeColumns.done">
{{ $t('task.attributes.done') }} {{ $t('task.attributes.done') }}
<Sort <Sort
:order="sortBy.done" :order="sortBy.done"
@click="sort('done')" @click="sort('done')"
/> />
</th> </th>
<th v-if="activeColumns.title"> <th v-if="activeColumns.title">
{{ $t('task.attributes.title') }} {{ $t('task.attributes.title') }}
<Sort <Sort
:order="sortBy.title" :order="sortBy.title"
@click="sort('title')" @click="sort('title')"
/> />
</th> </th>
<th v-if="activeColumns.priority"> <th v-if="activeColumns.priority">
{{ $t('task.attributes.priority') }} {{ $t('task.attributes.priority') }}
<Sort <Sort
:order="sortBy.priority" :order="sortBy.priority"
@click="sort('priority')" @click="sort('priority')"
/> />
</th> </th>
<th v-if="activeColumns.labels"> <th v-if="activeColumns.labels">
{{ $t('task.attributes.labels') }} {{ $t('task.attributes.labels') }}
</th> </th>
<th v-if="activeColumns.assignees"> <th v-if="activeColumns.assignees">
{{ $t('task.attributes.assignees') }} {{ $t('task.attributes.assignees') }}
</th> </th>
<th v-if="activeColumns.dueDate"> <th v-if="activeColumns.dueDate">
{{ $t('task.attributes.dueDate') }} {{ $t('task.attributes.dueDate') }}
<Sort <Sort
:order="sortBy.due_date" :order="sortBy.due_date"
@click="sort('due_date')" @click="sort('due_date')"
/> />
</th> </th>
<th v-if="activeColumns.startDate"> <th v-if="activeColumns.startDate">
{{ $t('task.attributes.startDate') }} {{ $t('task.attributes.startDate') }}
<Sort <Sort
:order="sortBy.start_date" :order="sortBy.start_date"
@click="sort('start_date')" @click="sort('start_date')"
/> />
</th> </th>
<th v-if="activeColumns.endDate"> <th v-if="activeColumns.endDate">
{{ $t('task.attributes.endDate') }} {{ $t('task.attributes.endDate') }}
<Sort <Sort
:order="sortBy.end_date" :order="sortBy.end_date"
@click="sort('end_date')" @click="sort('end_date')"
/> />
</th> </th>
<th v-if="activeColumns.percentDone"> <th v-if="activeColumns.percentDone">
{{ $t('task.attributes.percentDone') }} {{ $t('task.attributes.percentDone') }}
<Sort <Sort
:order="sortBy.percent_done" :order="sortBy.percent_done"
@click="sort('percent_done')" @click="sort('percent_done')"
/> />
</th> </th>
<th v-if="activeColumns.doneAt"> <th v-if="activeColumns.doneAt">
{{ $t('task.attributes.doneAt') }} {{ $t('task.attributes.doneAt') }}
<Sort <Sort
:order="sortBy.done_at" :order="sortBy.done_at"
@click="sort('done_at')" @click="sort('done_at')"
/> />
</th> </th>
<th v-if="activeColumns.created"> <th v-if="activeColumns.created">
{{ $t('task.attributes.created') }} {{ $t('task.attributes.created') }}
<Sort <Sort
:order="sortBy.created" :order="sortBy.created"
@click="sort('created')" @click="sort('created')"
/> />
</th> </th>
<th v-if="activeColumns.updated"> <th v-if="activeColumns.updated">
{{ $t('task.attributes.updated') }} {{ $t('task.attributes.updated') }}
<Sort <Sort
:order="sortBy.updated" :order="sortBy.updated"
@click="sort('updated')" @click="sort('updated')"
/> />
</th> </th>
<th v-if="activeColumns.createdBy"> <th v-if="activeColumns.createdBy">
{{ $t('task.attributes.createdBy') }} {{ $t('task.attributes.createdBy') }}
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr <tr
v-for="t in tasks" v-for="t in tasks"
:key="t.id" :key="t.id"
> >
<td v-if="activeColumns.index"> <td v-if="activeColumns.index">
<router-link :to="taskDetailRoutes[t.id]"> <router-link :to="taskDetailRoutes[t.id]">
<template v-if="t.identifier === ''"> <template v-if="t.identifier === ''">
#{{ t.index }} #{{ t.index }}
</template> </template>
<template v-else> <template v-else>
{{ t.identifier }} {{ t.identifier }}
</template> </template>
</router-link> </router-link>
</td> </td>
<td v-if="activeColumns.done"> <td v-if="activeColumns.done">
<Done <Done
:is-done="t.done" :is-done="t.done"
variant="small" variant="small"
/>
</td>
<td v-if="activeColumns.title">
<router-link :to="taskDetailRoutes[t.id]">
{{ t.title }}
</router-link>
</td>
<td v-if="activeColumns.priority">
<PriorityLabel
:priority="t.priority"
:done="t.done"
:show-all="true"
/>
</td>
<td v-if="activeColumns.labels">
<Labels :labels="t.labels" />
</td>
<td v-if="activeColumns.assignees">
<AssigneeList
v-if="t.assignees.length > 0"
:assignees="t.assignees"
:avatar-size="28"
class="ml-1"
:inline="true"
/>
</td>
<DateTableCell
v-if="activeColumns.dueDate"
:date="t.dueDate"
/> />
</td> <DateTableCell
<td v-if="activeColumns.title"> v-if="activeColumns.startDate"
<router-link :to="taskDetailRoutes[t.id]"> :date="t.startDate"
{{ t.title }}
</router-link>
</td>
<td v-if="activeColumns.priority">
<PriorityLabel
:priority="t.priority"
:done="t.done"
:show-all="true"
/> />
</td> <DateTableCell
<td v-if="activeColumns.labels"> v-if="activeColumns.endDate"
<Labels :labels="t.labels"/> :date="t.endDate"
</td>
<td v-if="activeColumns.assignees">
<AssigneeList
v-if="t.assignees.length > 0"
:assignees="t.assignees"
:avatar-size="28"
class="ml-1"
:inline="true"
/> />
</td> <td v-if="activeColumns.percentDone">
<DateTableCell {{ t.percentDone * 100 }}%
v-if="activeColumns.dueDate" </td>
:date="t.dueDate" <DateTableCell
/> v-if="activeColumns.doneAt"
<DateTableCell :date="t.doneAt"
v-if="activeColumns.startDate"
:date="t.startDate"
/>
<DateTableCell
v-if="activeColumns.endDate"
:date="t.endDate"
/>
<td v-if="activeColumns.percentDone">
{{ t.percentDone * 100 }}%
</td>
<DateTableCell
v-if="activeColumns.doneAt"
:date="t.doneAt"
/>
<DateTableCell
v-if="activeColumns.created"
:date="t.created"
/>
<DateTableCell
v-if="activeColumns.updated"
:date="t.updated"
/>
<td v-if="activeColumns.createdBy">
<User
:avatar-size="27"
:show-username="false"
:user="t.createdBy"
/> />
</td> <DateTableCell
</tr> v-if="activeColumns.created"
:date="t.created"
/>
<DateTableCell
v-if="activeColumns.updated"
:date="t.updated"
/>
<td v-if="activeColumns.createdBy">
<User
:avatar-size="27"
:show-username="false"
:user="t.createdBy"
/>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>