diff --git a/packages/nc-gui/components/smartsheet/Cell.vue b/packages/nc-gui/components/smartsheet/Cell.vue index 2bdaf83de4..ca0b694396 100644 --- a/packages/nc-gui/components/smartsheet/Cell.vue +++ b/packages/nc-gui/components/smartsheet/Cell.vue @@ -193,7 +193,7 @@ onUnmounted(() => { `nc-cell-${(column?.uidt || 'default').toLowerCase()}`, { 'text-blue-600': isPrimary(column) && !props.virtual && !isForm }, { 'nc-grid-numeric-cell': isGrid && !isForm && isNumericField }, - { 'h-[40px]': !props.editEnabled && isForm && !isSurveyForm && !isAttachment(column) }, + { 'h-[40px]': !props.editEnabled && isForm && !isSurveyForm && !isAttachment(column) && !props.virtual }, ]" @keydown.enter.exact="navigate(NavigateDir.NEXT, $event)" @keydown.shift.enter.exact="navigate(NavigateDir.PREV, $event)" diff --git a/packages/nc-gui/components/virtual-cell/BelongsTo.vue b/packages/nc-gui/components/virtual-cell/BelongsTo.vue index 1998dd32af..c08f9f128a 100644 --- a/packages/nc-gui/components/virtual-cell/BelongsTo.vue +++ b/packages/nc-gui/components/virtual-cell/BelongsTo.vue @@ -45,7 +45,7 @@ const listItemsDlg = ref(false) const { state, isNew, removeLTARRef } = useSmartsheetRowStoreOrThrow() -const { loadRelatedTableMeta, relatedTableDisplayValueProp, unlink } = useProvideLTARStore( +const { relatedTableMeta, loadRelatedTableMeta, relatedTableDisplayValueProp, unlink } = useProvideLTARStore( column as Ref>, row, isNew, @@ -81,13 +81,24 @@ useSelectedCellKeyupListener(active, (e: KeyboardEvent) => { break } }) + +const belongsToColumn = computed( + () => + relatedTableMeta.value?.columns?.find((c: any) => c.title === relatedTableDisplayValueProp.value) as ColumnType | undefined, +) diff --git a/packages/nc-gui/components/virtual-cell/HasMany.vue b/packages/nc-gui/components/virtual-cell/HasMany.vue index 4397fa190f..6770fc653a 100644 --- a/packages/nc-gui/components/virtual-cell/HasMany.vue +++ b/packages/nc-gui/components/virtual-cell/HasMany.vue @@ -43,7 +43,7 @@ const { isUIAllowed } = useUIPermission() const { state, isNew, removeLTARRef } = useSmartsheetRowStoreOrThrow() -const { loadRelatedTableMeta, relatedTableDisplayValueProp, unlink } = useProvideLTARStore( +const { relatedTableMeta, loadRelatedTableMeta, relatedTableDisplayValueProp, unlink } = useProvideLTARStore( column as Ref>, row, isNew, @@ -81,6 +81,11 @@ const unlinkRef = async (rec: Record) => { } } +const hasManyColumn = computed( + () => + relatedTableMeta.value?.columns?.find((c: any) => c.title === relatedTableDisplayValueProp.value) as ColumnType | undefined, +) + const onAttachRecord = () => { childListDlg.value = false listItemsDlg.value = true @@ -106,6 +111,8 @@ useSelectedCellKeyupListener(inject(ActiveCellInj, ref(false)), (e: KeyboardEven :key="i" :item="cell.item" :value="cell.value" + :column="hasManyColumn" + :show-unlink-button="true" @unlink="unlinkRef(cell.item)" /> @@ -131,11 +138,12 @@ useSelectedCellKeyupListener(inject(ActiveCellInj, ref(false)), (e: KeyboardEven - + diff --git a/packages/nc-gui/components/virtual-cell/ManyToMany.vue b/packages/nc-gui/components/virtual-cell/ManyToMany.vue index 4af1ab7005..bca77bd481 100644 --- a/packages/nc-gui/components/virtual-cell/ManyToMany.vue +++ b/packages/nc-gui/components/virtual-cell/ManyToMany.vue @@ -45,7 +45,7 @@ const { isUIAllowed } = useUIPermission() const { state, isNew, removeLTARRef } = useSmartsheetRowStoreOrThrow() -const { loadRelatedTableMeta, relatedTableDisplayValueProp, unlink } = useProvideLTARStore( +const { relatedTableMeta, loadRelatedTableMeta, relatedTableDisplayValueProp, unlink } = useProvideLTARStore( column as Ref>, row, isNew, @@ -96,6 +96,11 @@ useSelectedCellKeyupListener(inject(ActiveCellInj, ref(false)), (e: KeyboardEven break } }) + +const m2mColumn = computed( + () => + relatedTableMeta.value?.columns?.find((c: any) => c.title === relatedTableDisplayValueProp.value) as ColumnType | undefined, +) - + diff --git a/packages/nc-gui/components/virtual-cell/components/ItemChip.vue b/packages/nc-gui/components/virtual-cell/components/ItemChip.vue index e548d99826..13ada13c8c 100644 --- a/packages/nc-gui/components/virtual-cell/components/ItemChip.vue +++ b/packages/nc-gui/components/virtual-cell/components/ItemChip.vue @@ -1,4 +1,5 @@