From 879dcee082a605b13ba8ed32843270489d004d97 Mon Sep 17 00:00:00 2001 From: mertmit Date: Thu, 24 Nov 2022 20:16:16 +0300 Subject: [PATCH] fix: shared view sqlUis Signed-off-by: mertmit --- packages/nc-gui/components/smartsheet/header/CellIcon.ts | 3 ++- packages/nc-gui/composables/useProject.ts | 7 +++++-- packages/nc-gui/composables/useSharedFormViewStore.ts | 4 ++++ packages/nc-gui/composables/useSharedView.ts | 4 ++++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/nc-gui/components/smartsheet/header/CellIcon.ts b/packages/nc-gui/components/smartsheet/header/CellIcon.ts index 8e5b74035b..240689f238 100644 --- a/packages/nc-gui/components/smartsheet/header/CellIcon.ts +++ b/packages/nc-gui/components/smartsheet/header/CellIcon.ts @@ -19,6 +19,7 @@ import { isJSON, isPercent, isPhoneNumber, + isPrimaryKey, isRating, isSet, isSingleSelect, @@ -120,7 +121,7 @@ export default defineComponent({ const { sqlUis } = useProject() - const sqlUi = ref(columnMeta.value?.base_id ? sqlUis.value[columnMeta.value?.base_id] : Object.values(sqlUis.value)[0]) + const sqlUi = ref(column.value?.base_id ? sqlUis.value[column.value?.base_id] : Object.values(sqlUis.value)[0]) const abstractType = computed(() => column.value && sqlUi.value.getAbstractType(column.value)) diff --git a/packages/nc-gui/composables/useProject.ts b/packages/nc-gui/composables/useProject.ts index 3b318bc7a8..337b2ad5fc 100644 --- a/packages/nc-gui/composables/useProject.ts +++ b/packages/nc-gui/composables/useProject.ts @@ -42,7 +42,9 @@ const [setup, use] = useInjectionState(() => { const lastOpenedViewMap = ref>({}) - const projectId = computed(() => route.params.projectId as string) + let forced_project_id: string | undefined + + const projectId = computed(() => forced_project_id || (route.params.projectId as string)) // todo: refactor path param name and variable name const projectType = $computed(() => route.params.projectType as string) @@ -104,7 +106,8 @@ const [setup, use] = useInjectionState(() => { } } - async function loadProject(withTheme = true) { + async function loadProject(withTheme = true, forced_id?: string) { + if (forced_id) forced_project_id = forced_id if (projectType === 'base') { try { const baseData = await api.public.sharedBaseGet(route.params.projectId as string) diff --git a/packages/nc-gui/composables/useSharedFormViewStore.ts b/packages/nc-gui/composables/useSharedFormViewStore.ts index 036b2fd02f..e3f371c987 100644 --- a/packages/nc-gui/composables/useSharedFormViewStore.ts +++ b/packages/nc-gui/composables/useSharedFormViewStore.ts @@ -43,6 +43,8 @@ const [useProvideSharedFormStore, useSharedFormStore] = useInjectionState((share const { metas, setMeta } = useMetas() + const { loadProject } = useProject() + const { t } = useI18n() const formState = ref>({}) @@ -84,6 +86,8 @@ const [useProvideSharedFormStore, useSharedFormStore] = useInjectionState((share await setMeta(viewMeta.model) + await loadProject(true, viewMeta.project_id) + const relatedMetas = { ...viewMeta.relatedMetas } Object.keys(relatedMetas).forEach((key) => setMeta(relatedMetas[key])) diff --git a/packages/nc-gui/composables/useSharedView.ts b/packages/nc-gui/composables/useSharedView.ts index eba45ac353..b0ddc867db 100644 --- a/packages/nc-gui/composables/useSharedView.ts +++ b/packages/nc-gui/composables/useSharedView.ts @@ -17,6 +17,8 @@ export function useSharedView() { const { appInfo } = $(useGlobal()) + const { loadProject } = useProject() + const appInfoDefaultLimit = appInfo.defaultLimit || 25 const paginationData = useState('paginationData', () => ({ page: 1, pageSize: appInfoDefaultLimit })) @@ -71,6 +73,8 @@ export function useSharedView() { await setMeta(viewMeta.model) + await loadProject(true, viewMeta.project_id) + const relatedMetas = { ...viewMeta.relatedMetas } Object.keys(relatedMetas).forEach((key) => setMeta(relatedMetas[key])) }