From 060adac797145ddcc615da8d1e7dad489782e249 Mon Sep 17 00:00:00 2001 From: kolaente Date: Wed, 19 Mar 2025 19:46:52 +0100 Subject: [PATCH] fix(kanban): do not set filter by default This fixes a bug where, upon updating a bucket, it would set a default filter of done = false (which is the default filter for the list view), coming from the model. Partially resolves https://community.vikunja.io/t/bugs-around-project-duplication-with-kanban-buckets/3433/3 --- frontend/src/modelTypes/IProjectView.ts | 2 +- frontend/src/models/projectView.ts | 20 ++++++++++++++++--- .../project/settings/ProjectSettingsViews.vue | 2 +- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/frontend/src/modelTypes/IProjectView.ts b/frontend/src/modelTypes/IProjectView.ts index 42e1cd2f7..f90859535 100644 --- a/frontend/src/modelTypes/IProjectView.ts +++ b/frontend/src/modelTypes/IProjectView.ts @@ -30,7 +30,7 @@ export interface IProjectView extends IAbstract { projectId: IProject['id'] viewKind: ProjectViewKind - filter: IFilters + filter: IFilters|undefined position: number bucketConfigurationMode: ProjectViewBucketConfigurationMode diff --git a/frontend/src/models/projectView.ts b/frontend/src/models/projectView.ts index 91aa60bfd..8f10c62e8 100644 --- a/frontend/src/models/projectView.ts +++ b/frontend/src/models/projectView.ts @@ -8,9 +8,9 @@ export default class ProjectViewModel extends AbstractModel implem viewKind: ProjectViewKind = 'list' filter: IProjectView['filters'] = { - sort_by: ['done', 'id'], - order_by: ['asc', 'desc'], - filter: 'done = false', + sort_by: [], + order_by: [], + filter: '', filter_include_nulls: true, s: '', } @@ -32,4 +32,18 @@ export default class ProjectViewModel extends AbstractModel implem this.bucketConfiguration = [] } } + + static createWithDefaultFilter(data: Partial = {}): ProjectViewModel { + const defaultFilter: IProjectView['filters'] = { + sort_by: ['done', 'id'], + order_by: ['asc', 'desc'], + filter: 'done = false', + filter_include_nulls: true, + s: '', + } + + const instance = new ProjectViewModel(data) + instance.filter = defaultFilter + return instance + } } \ No newline at end of file diff --git a/frontend/src/views/project/settings/ProjectSettingsViews.vue b/frontend/src/views/project/settings/ProjectSettingsViews.vue index c2ac67377..eaa64e380 100644 --- a/frontend/src/views/project/settings/ProjectSettingsViews.vue +++ b/frontend/src/views/project/settings/ProjectSettingsViews.vue @@ -38,7 +38,7 @@ watch( const showCreateForm = ref(false) const projectViewService = shallowReactive(new ProjectViewService()) -const newView = ref(new ProjectViewModel({})) +const newView = ref(ProjectViewModel.createWithDefaultFilter()) const viewIdToDelete = ref(null) const showDeleteModal = ref(false) const viewToEdit = ref(null)