From 44cfd16b52bdd4abedcf4743bd7a5d64edd496f9 Mon Sep 17 00:00:00 2001 From: Ramesh Mane <101566080+rameshmane7218@users.noreply.github.com> Date: Wed, 1 Oct 2025 12:00:09 +0000 Subject: [PATCH] fix(nc-gui): kanban view url where filter apply issue --- .../nc-gui/components/smartsheet/Kanban.vue | 8 ++++- .../nc-gui/composables/useKanbanViewStore.ts | 31 ++----------------- packages/nc-gui/composables/useSharedView.ts | 8 ++++- .../nc-gui/composables/useSmartsheetStore.ts | 2 +- 4 files changed, 17 insertions(+), 32 deletions(-) diff --git a/packages/nc-gui/components/smartsheet/Kanban.vue b/packages/nc-gui/components/smartsheet/Kanban.vue index 528432481a..b8130e9abc 100644 --- a/packages/nc-gui/components/smartsheet/Kanban.vue +++ b/packages/nc-gui/components/smartsheet/Kanban.vue @@ -47,7 +47,7 @@ const route = router.currentRoute const { metaColumnById } = useViewColumnsOrThrow(view, meta) -const { isSyncedTable } = useSmartsheetStoreOrThrow() +const { isSyncedTable, eventBus } = useSmartsheetStoreOrThrow() const { loadKanbanData, @@ -132,6 +132,12 @@ reloadViewDataHook?.on( }), ) +eventBus.on((event) => { + if (event === SmartsheetStoreEvents.DATA_RELOAD) { + reloadViewDataHook?.trigger() + } +}) + const attachments = (record: any): Attachment[] => { if (!coverImageColumn.value?.title || !record.row[coverImageColumn.value.title]) return [] diff --git a/packages/nc-gui/composables/useKanbanViewStore.ts b/packages/nc-gui/composables/useKanbanViewStore.ts index 439d5bccd7..93f8bbdea9 100644 --- a/packages/nc-gui/composables/useKanbanViewStore.ts +++ b/packages/nc-gui/composables/useKanbanViewStore.ts @@ -35,7 +35,7 @@ const [useProvideKanbanViewStore, useKanbanViewStore] = useInjectionState( const { $e, $api, $ncSocket } = useNuxtApp() - const { sorts, nestedFilters, eventBus } = useSmartsheetStoreOrThrow() + const { sorts, nestedFilters, eventBus, xWhere } = useSmartsheetStoreOrThrow() const { sharedView, fetchSharedViewData, fetchSharedViewGroupedData } = useSharedView() @@ -45,8 +45,6 @@ const [useProvideKanbanViewStore, useKanbanViewStore] = useInjectionState( const password = ref(null) - const { search, getValidSearchQueryForColumn } = useFieldQuery() - const { addUndo, clone, defineViewScope } = useUndoRedo() const { getEvaluatedRowMetaRowColorInfo } = useViewRowColorRender() @@ -60,32 +58,6 @@ const [useProvideKanbanViewStore, useKanbanViewStore] = useInjectionState( // save history of stack changes for undo/redo const moveHistory = ref<{ op: 'added' | 'removed'; pk: string; stack: string; index: number }[]>([]) - const xWhere = computed(() => { - let where - const col = - (meta.value as TableType)?.columns?.find(({ id }) => id === search.value.field) || - (meta.value as TableType)?.columns?.find((v) => v.pv) - - const searchQuery = search.value.query.trim() - - if (!col || !searchQuery) { - search.value.isValidFieldQuery = true - - return where - } - - const colWhereQuery = getValidSearchQueryForColumn(col, searchQuery, meta.value as TableType, { getWhereQueryAs: 'string' }) - - if (!colWhereQuery) { - search.value.isValidFieldQuery = false - return where - } - - search.value.isValidFieldQuery = true - - return colWhereQuery - }) - provide(SharedViewPasswordInj, password) // kanban view meta data @@ -269,6 +241,7 @@ const [useProvideKanbanViewStore, useKanbanViewStore] = useInjectionState( sortsArr: sorts.value, filtersArr: nestedFilters.value, include_row_color: true, + where: xWhere.value, }) } else { groupData = await api.dbViewRow.groupedDataList( diff --git a/packages/nc-gui/composables/useSharedView.ts b/packages/nc-gui/composables/useSharedView.ts index c16996f5f4..3b95311824 100644 --- a/packages/nc-gui/composables/useSharedView.ts +++ b/packages/nc-gui/composables/useSharedView.ts @@ -386,7 +386,12 @@ export function useSharedView() { const fetchSharedViewGroupedData = async ( columnId: string, - { sortsArr, filtersArr, include_row_color }: { sortsArr: SortType[]; filtersArr: FilterType[]; include_row_color?: boolean }, + { + sortsArr, + filtersArr, + include_row_color, + where, + }: { sortsArr: SortType[]; filtersArr: FilterType[]; include_row_color?: boolean; where?: string }, ) => { if (!sharedView.value) return @@ -401,6 +406,7 @@ export function useSharedView() { filterArrJson: stringifyFilterOrSortArr(filtersArr ?? nestedFilters.value), sortArrJson: stringifyFilterOrSortArr(sortsArr ?? sorts.value), include_row_color, + where, } as any, { headers: { diff --git a/packages/nc-gui/composables/useSmartsheetStore.ts b/packages/nc-gui/composables/useSmartsheetStore.ts index 60ca8cc21b..92d724b69e 100644 --- a/packages/nc-gui/composables/useSmartsheetStore.ts +++ b/packages/nc-gui/composables/useSmartsheetStore.ts @@ -92,7 +92,7 @@ const [useProvideSmartsheetStore, useSmartsheetStore] = useInjectionState( return } - return route.value.query.where + return route.value.query.where as string }) const totalRowsWithSearchQuery = ref(0)