From ce3b72966d498fe8ce1184e4e01290a948b5b846 Mon Sep 17 00:00:00 2001 From: Dominik Pschenitschni Date: Sun, 6 Nov 2022 19:11:06 +0100 Subject: [PATCH] feat: ListKanban script setup --- .../list/ListWrapper.vue | 0 src/helpers/saveCollapsedBucketState.ts | 25 +- src/stores/kanban.ts | 9 +- src/views/list/ListGantt.vue | 2 +- src/views/list/ListKanban.vue | 769 +++++++++--------- src/views/list/ListList.vue | 2 +- src/views/list/ListTable.vue | 2 +- 7 files changed, 391 insertions(+), 418 deletions(-) rename src/{views => components}/list/ListWrapper.vue (100%) diff --git a/src/views/list/ListWrapper.vue b/src/components/list/ListWrapper.vue similarity index 100% rename from src/views/list/ListWrapper.vue rename to src/components/list/ListWrapper.vue diff --git a/src/helpers/saveCollapsedBucketState.ts b/src/helpers/saveCollapsedBucketState.ts index f784a9190..aa74ad34e 100644 --- a/src/helpers/saveCollapsedBucketState.ts +++ b/src/helpers/saveCollapsedBucketState.ts @@ -1,19 +1,20 @@ +import type {IBucket} from '@/modelTypes/IBucket' import type {IList} from '@/modelTypes/IList' const key = 'collapsedBuckets' -const getAllState = () => { - const saved = localStorage.getItem(key) - if (saved === null) { - return {} - } +export type CollapsedBuckets = {[id: IBucket['id']]: boolean} - return JSON.parse(saved) +function getAllState() { + const saved = localStorage.getItem(key) + return saved === null + ? {} + : JSON.parse(saved) } export const saveCollapsedBucketState = ( listId: IList['id'], - collapsedBuckets, + collapsedBuckets: CollapsedBuckets, ) => { const state = getAllState() state[listId] = collapsedBuckets @@ -25,11 +26,9 @@ export const saveCollapsedBucketState = ( localStorage.setItem(key, JSON.stringify(state)) } -export const getCollapsedBucketState = (listId : IList['id']) => { +export function getCollapsedBucketState(listId : IList['id']) { const state = getAllState() - if (typeof state[listId] !== 'undefined') { - return state[listId] - } - - return {} + return typeof state[listId] !== 'undefined' + ? state[listId] + : {} } diff --git a/src/stores/kanban.ts b/src/stores/kanban.ts index 76d29dfe2..cd5dfc65a 100644 --- a/src/stores/kanban.ts +++ b/src/stores/kanban.ts @@ -69,7 +69,7 @@ export const useKanbanStore = defineStore('kanban', { getters: { getBucketById(state) { - return (bucketId: IBucket['id']) => findById(state.buckets, bucketId) + return (bucketId: IBucket['id']): IBucket | undefined => findById(state.buckets, bucketId) }, getTaskById(state) { @@ -265,11 +265,12 @@ export const useKanbanStore = defineStore('kanban', { // Clear everything to prevent having old buckets in the list if loading the buckets from this list takes a few moments this.setBuckets([]) - params.per_page = TASKS_PER_BUCKET - const bucketService = new BucketService() try { - const buckets = await bucketService.getAll({listId}, params) + const buckets = await bucketService.getAll({listId}, { + ...params, + per_page: TASKS_PER_BUCKET, + }) this.setBuckets(buckets) this.setListId(listId) return buckets diff --git a/src/views/list/ListGantt.vue b/src/views/list/ListGantt.vue index b032f74bb..b46b42819 100644 --- a/src/views/list/ListGantt.vue +++ b/src/views/list/ListGantt.vue @@ -57,7 +57,7 @@ import {useBaseStore} from '@/stores/base' import {useAuthStore} from '@/stores/auth' import Foo from '@/components/misc/flatpickr/Flatpickr.vue' -import ListWrapper from './ListWrapper.vue' +import ListWrapper from '@/components/list/ListWrapper.vue' import Fancycheckbox from '@/components/input/fancycheckbox.vue' import TaskForm from '@/components/tasks/TaskForm.vue' diff --git a/src/views/list/ListKanban.vue b/src/views/list/ListKanban.vue index 8d77c9e33..c59411a53 100644 --- a/src/views/list/ListKanban.vue +++ b/src/views/list/ListKanban.vue @@ -1,12 +1,13 @@