From 078ef13e0084db9d7bef1bbc012d1801adbe92fc Mon Sep 17 00:00:00 2001 From: Pranav C Date: Tue, 9 Jan 2024 06:18:11 +0000 Subject: [PATCH] fix: load table meta if not loaded already --- .../smartsheet/column/LookupOptions.vue | 16 +++++++++++----- .../smartsheet/column/RollupOptions.vue | 17 +++++++++++------ 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/packages/nc-gui/components/smartsheet/column/LookupOptions.vue b/packages/nc-gui/components/smartsheet/column/LookupOptions.vue index 6c08af0cc0..fe74efb527 100644 --- a/packages/nc-gui/components/smartsheet/column/LookupOptions.vue +++ b/packages/nc-gui/components/smartsheet/column/LookupOptions.vue @@ -22,7 +22,7 @@ const baseStore = useBase() const { tables } = storeToRefs(baseStore) -const { metas } = useMetas() +const { metas, getMeta } = useMetas() setAdditionalValidations({ fk_relation_column_id: [{ required: true, message: t('general.required') }], @@ -48,12 +48,15 @@ const refTables = computed(() => { return _refTables as Required }>[] }) +const selectedTable = computed(() => { + return refTables.value.find((t) => t.column.id === vModel.value.fk_relation_column_id) +}) + const columns = computed(() => { - const selectedTable = refTables.value.find((t) => t.column.id === vModel.value.fk_relation_column_id) - if (!selectedTable?.id) { + if (!selectedTable.value?.id) { return [] } - return metas.value[selectedTable.id].columns.filter( + return metas.value[selectedTable.id]?.columns.filter( (c: ColumnType) => vModel.value.fk_lookup_column_id === c.id || (!isSystemColumn(c) && c.id !== vModel.value.id && c.uidt !== UITypes.Links), ) @@ -66,7 +69,10 @@ onMounted(() => { } }) -const onRelationColChange = () => { +const onRelationColChange = async () => { + if (selectedTable.value) { + await getMeta(selectedTable.value.id) + } vModel.value.fk_lookup_column_id = columns.value?.[0]?.id onDataTypeChange() } diff --git a/packages/nc-gui/components/smartsheet/column/RollupOptions.vue b/packages/nc-gui/components/smartsheet/column/RollupOptions.vue index f1170621f9..f83d439056 100644 --- a/packages/nc-gui/components/smartsheet/column/RollupOptions.vue +++ b/packages/nc-gui/components/smartsheet/column/RollupOptions.vue @@ -35,7 +35,7 @@ const baseStore = useBase() const { tables } = storeToRefs(baseStore) -const { metas } = useMetas() +const { metas, getMeta } = useMetas() const { t } = useI18n() @@ -70,14 +70,16 @@ const refTables = computed(() => { return _refTables as Required }>[] }) -const columns = computed(() => { - const selectedTable = refTables.value.find((t) => t.column.id === vModel.value.fk_relation_column_id) +const selectedTable = computed(() => { + return refTables.value.find((t) => t.column.id === vModel.value.fk_relation_column_id) +}) - if (!selectedTable?.id) { +const columns = computed(() => { + if (!selectedTable.value?.id) { return [] } - return metas.value[selectedTable.id].columns.filter( + return metas.value[selectedTable.id]?.columns.filter( (c: ColumnType) => !isVirtualCol(c.uidt as UITypes) && (!isSystemColumn(c) || c.pk), ) }) @@ -90,7 +92,10 @@ onMounted(() => { } }) -const onRelationColChange = () => { +const onRelationColChange = async () => { + if (selectedTable.value) { + await getMeta(selectedTable.value.id) + } vModel.value.fk_rollup_column_id = columns.value?.[0]?.id onDataTypeChange() }