diff --git a/packages/nc-gui-v2/components.d.ts b/packages/nc-gui-v2/components.d.ts index 79e596ccda..9cd782784b 100644 --- a/packages/nc-gui-v2/components.d.ts +++ b/packages/nc-gui-v2/components.d.ts @@ -170,6 +170,7 @@ declare module '@vue/runtime-core' { MdiInformation: typeof import('~icons/mdi/information')['default'] MdiJson: typeof import('~icons/mdi/json')['default'] MdiKeyboardReturn: typeof import('~icons/mdi/keyboard-return')['default'] + MdiKeyChange: typeof import('~icons/mdi/key-change')['default'] MdiKeyPlus: typeof import('~icons/mdi/key-plus')['default'] MdiKeyStar: typeof import('~icons/mdi/key-star')['default'] MdiLink: typeof import('~icons/mdi/link')['default'] diff --git a/packages/nc-gui-v2/components/smartsheet/sidebar/MenuTop.vue b/packages/nc-gui-v2/components/smartsheet/sidebar/MenuTop.vue index edc6a806b8..e7d5b377c8 100644 --- a/packages/nc-gui-v2/components/smartsheet/sidebar/MenuTop.vue +++ b/packages/nc-gui-v2/components/smartsheet/sidebar/MenuTop.vue @@ -24,7 +24,9 @@ import DlgViewDelete from '~/components/dlg/ViewDelete.vue' interface Emits { (event: 'openModal', data: { type: ViewTypes; title?: string; copyViewId?: string }): void + (event: 'deleted'): void + (event: 'sorted'): void } @@ -186,8 +188,14 @@ function openDeleteDialog(view: Record) { closeDialog() emits('deleted') - // return to the default view - activeView.value = views.value[0] + if (activeView.value === view) { + // return to the default view + router.replace({ + params: { + viewTitle: views.value[0].title, + }, + }) + } }, }) diff --git a/packages/nc-gui-v2/composables/useViewData.ts b/packages/nc-gui-v2/composables/useViewData.ts index 6d6025e6cf..042c2952d3 100644 --- a/packages/nc-gui-v2/composables/useViewData.ts +++ b/packages/nc-gui-v2/composables/useViewData.ts @@ -8,9 +8,9 @@ import { extractPkFromRow, extractSdkResponseErrorMsg, getHTMLEncodedText, + useApi, useProject, useUIPermission, - useApi } from '#imports' const formatData = (list: Record[]) => @@ -118,11 +118,11 @@ export function useViewData( if ((!project?.value?.id || !meta?.value?.id || !viewMeta?.value?.id) && !isPublic.value) return const response = !isPublic.value ? await api.dbViewRow.list('noco', project.value.id!, meta.value.id!, viewMeta!.value.id, { - ...params, - ...(isUIAllowed('sortSync') ? {} : { sortArrJson: JSON.stringify(sorts.value) }), - ...(isUIAllowed('filterSync') ? {} : { filterArrJson: JSON.stringify(nestedFilters.value) }), - where: where?.value, - }) + ...params, + ...(isUIAllowed('sortSync') ? {} : { sortArrJson: JSON.stringify(sorts.value) }), + ...(isUIAllowed('filterSync') ? {} : { filterArrJson: JSON.stringify(nestedFilters.value) }), + where: where?.value, + }) : await fetchSharedViewData() formattedData.value = formatData(response.list) paginationData.value = response.pageInfo @@ -193,8 +193,7 @@ export function useViewData( value: getHTMLEncodedText(toUpdate.row[property]), prev_value: getHTMLEncodedText(toUpdate.oldRow[property]), }) - .then(() => { - }) + .then(() => {}) /** update row data(to sync formula and other related columns) */ Object.assign(toUpdate.row, updatedRowData) @@ -236,7 +235,7 @@ export function useViewData( const deleteRowById = async (id: string) => { if (!id) { - throw new Error('Delete not allowed for table which doesn\'t have primary Key') + throw new Error("Delete not allowed for table which doesn't have primary Key") } const res: any = await $api.dbViewRow.delete(