diff --git a/packages/nc-gui/components/dashboard/settings/Metadata.vue b/packages/nc-gui/components/dashboard/settings/Metadata.vue index a7abc27650..8bc0339a99 100644 --- a/packages/nc-gui/components/dashboard/settings/Metadata.vue +++ b/packages/nc-gui/components/dashboard/settings/Metadata.vue @@ -118,8 +118,12 @@ async function syncMetaDiff() { isLoading.value = false - await loadTables() - await loadMetaDiff(true) + try { + await loadTables() + await loadMetaDiff(true) + } catch (_e: any) { + // ignore + } emit('baseSynced') } else if (data.status === JobStatus.FAILED) { diff --git a/packages/nc-gui/components/dashboard/settings/data-sources/CreateBase.vue b/packages/nc-gui/components/dashboard/settings/data-sources/CreateBase.vue index 09865b93c7..045a5003e4 100644 --- a/packages/nc-gui/components/dashboard/settings/data-sources/CreateBase.vue +++ b/packages/nc-gui/components/dashboard/settings/data-sources/CreateBase.vue @@ -229,8 +229,12 @@ const createSource = async () => { $e('a:base:create:extdb') if (baseId.value) { - await loadProject(baseId.value, true) - await loadProjectTables(baseId.value, true) + try { + await loadProject(baseId.value, true) + await loadProjectTables(baseId.value, true) + } catch (_e: any) { + // ignore + } } emit('sourceCreated') diff --git a/packages/nc-gui/components/dlg/Base/Duplicate.vue b/packages/nc-gui/components/dlg/Base/Duplicate.vue index d57dff57bb..4f3bae6e4b 100644 --- a/packages/nc-gui/components/dlg/Base/Duplicate.vue +++ b/packages/nc-gui/components/dlg/Base/Duplicate.vue @@ -119,15 +119,24 @@ const _duplicate = async () => { }) => { if (data.status !== 'close') { if (data.status === JobStatus.COMPLETED) { - const resBases = await loadProjects('workspace', targetWorkspace?.value?.id) - targetBase.value = resBases.find((b) => b.id === jobData.base_id) - status.value = 'success' + try { + const resBases = await loadProjects('workspace', targetWorkspace?.value?.id) + targetBase.value = resBases.find((b) => b.id === jobData.base_id) + } catch (_e: any) { + // ignore + } + status.value = 'success' refreshCommandPalette() } else if (data.status === JobStatus.FAILED) { status.value = 'error' errorMessage.value = data?.data?.error?.message || 'Some error occurred' - await loadProjects('workspace') + try { + await loadProjects('workspace') + } catch (_e: any) { + // ignore + } + refreshCommandPalette() } } diff --git a/packages/nc-gui/components/dlg/Table/Duplicate.vue b/packages/nc-gui/components/dlg/Table/Duplicate.vue index 9b3a45bbb3..9c537f4198 100644 --- a/packages/nc-gui/components/dlg/Table/Duplicate.vue +++ b/packages/nc-gui/components/dlg/Table/Duplicate.vue @@ -162,42 +162,52 @@ const _duplicate = async () => { }) => { if (data.status !== 'close') { if (data.status === JobStatus.COMPLETED) { - const sourceTable = await getMeta(activeBase.value?.id, props.table.id!) - if (sourceTable) { - for (const col of sourceTable.columns || []) { - if ([UITypes.Links, UITypes.LinkToAnotherRecord].includes(col.uidt as UITypes)) { - if (col && col.colOptions) { - const relatedTableId = (col.colOptions as LinkToAnotherRecordType)?.fk_related_model_id - const relatedBaseId = (col.colOptions as any)?.fk_related_base_id || activeBase.value?.id - if (relatedTableId && relatedBaseId) { - await getMeta(relatedBaseId, relatedTableId, true) + try { + const sourceTable = await getMeta(activeBase.value?.id, props.table.id!) + if (sourceTable) { + for (const col of sourceTable.columns || []) { + if ([UITypes.Links, UITypes.LinkToAnotherRecord].includes(col.uidt as UITypes)) { + if (col && col.colOptions) { + const relatedTableId = (col.colOptions as LinkToAnotherRecordType)?.fk_related_model_id + const relatedBaseId = (col.colOptions as any)?.fk_related_base_id || activeBase.value?.id + if (relatedTableId && relatedBaseId) { + await getMeta(relatedBaseId, relatedTableId, true) + } } } } } - } - if (!isContextDifferent) { - await loadTables() - refreshCommandPalette() - const newTable = tables.value.find((el) => el.id === data?.data?.result?.id) - - openTable(newTable!) - } else { - // Load target base tables if target workspace is the same as active workspace - if (targetWorkspace.value?.id === activeWorkspace?.id) { - await loadProjectTables(targetBase.value.id!, true) + if (!isContextDifferent) { + await loadTables() refreshCommandPalette() - } + const newTable = tables.value.find((el) => el.id === data?.data?.result?.id) - // TODO: navigating to specified base? - message.success(t(`msg.success.tableDuplicatedInOtherBase`)) + openTable(newTable!) + } else { + // Load target base tables if target workspace is the same as active workspace + if (targetWorkspace.value?.id === activeWorkspace?.id) { + await loadProjectTables(targetBase.value.id!, true) + refreshCommandPalette() + } + + // TODO: navigating to specified base? + message.success(t(`msg.success.tableDuplicatedInOtherBase`)) + } + } catch (_e: any) { + // ignore } isLoading.value = false dialogShow.value = false } else if (data.status === JobStatus.FAILED) { message.error(t('msg.error.failedToDuplicateTable')) - await loadTables() + + try { + await loadTables() + } catch (_e: any) { + // ignore + } + isLoading.value = false dialogShow.value = false } diff --git a/packages/nc-gui/components/dlg/UpgradeWs.vue b/packages/nc-gui/components/dlg/UpgradeWs.vue index 0bf76e0b5e..6013df687e 100644 --- a/packages/nc-gui/components/dlg/UpgradeWs.vue +++ b/packages/nc-gui/components/dlg/UpgradeWs.vue @@ -41,12 +41,16 @@ function pollJob(jobId: string) { completed.value = true isLoading.value = false - workspace.loadWorkspace(activeWorkspace.value!.id!) + workspace.loadWorkspace(activeWorkspace.value!.id!).catch(() => { + // ignore + }) } else if (data.status === JobStatus.FAILED) { completed.value = true isLoading.value = false - workspace.loadWorkspace(activeWorkspace.value!.id!) + workspace.loadWorkspace(activeWorkspace.value!.id!).catch(() => { + // ignore + }) } else { lastMessage.value = data.data?.message || 'Upgrading workspace...' } diff --git a/packages/nc-gui/composables/useCopySharedBase.ts b/packages/nc-gui/composables/useCopySharedBase.ts index 810a7bf686..4133129aad 100644 --- a/packages/nc-gui/composables/useCopySharedBase.ts +++ b/packages/nc-gui/composables/useCopySharedBase.ts @@ -82,7 +82,6 @@ export const useCopySharedBase = createSharedComposable(() => { }) => { if (data.status !== 'close') { if (data.status === JobStatus.COMPLETED) { - console.log('job completed', jobData) ncNavigateTo({ ...(isEeUI ? { workspaceId: jobData.fk_workspace_id } : {}), baseId: jobData.base_id, @@ -94,7 +93,9 @@ export const useCopySharedBase = createSharedComposable(() => { onComplete?.('success') } else if (data.status === JobStatus.FAILED) { message.error(failedToastMessage) - await populateWorkspace() + await populateWorkspace().catch(() => { + // ignore + }) isLoading.value = false onComplete?.('error') }