diff --git a/packages/nc-gui/composables/useLTARStore.ts b/packages/nc-gui/composables/useLTARStore.ts index e38877423c..f8e067b362 100644 --- a/packages/nc-gui/composables/useLTARStore.ts +++ b/packages/nc-gui/composables/useLTARStore.ts @@ -214,22 +214,32 @@ const [useProvideLTARStore, useLTARStore] = useInjectionState( return row.value.row[displayValueProp.value] }) - const attachmentCol = computedInject(FieldsInj, (_fields) => { - return (relatedTableMeta.value.columns ?? []).filter((col) => isAttachment(col))[0] - }) + const attachmentCol = computedInject( + FieldsInj, + (_fields) => { + return (relatedTableMeta.value.columns ?? []).filter((col) => isAttachment(col))[0] + }, + ref([]), + ) - const fields = computedInject(FieldsInj, (_fields) => { - return (relatedTableMeta.value.columns ?? []) - .filter((col) => !isSystemColumn(col) && !isPrimary(col) && !isLinksOrLTAR(col) && !isAttachment(col)) - .sort((a, b) => { - if (isPublic.value) { - return (a.meta?.defaultViewColOrder ?? Infinity) - (b.meta?.defaultViewColOrder ?? Infinity) - } + const fields = computedInject( + FieldsInj, + (_fields) => { + return (relatedTableMeta.value.columns ?? []) + .filter((col) => !isSystemColumn(col) && !isPrimary(col) && !isLinksOrLTAR(col) && !isAttachment(col)) + .sort((a, b) => { + if (isPublic.value) { + return (a.meta?.defaultViewColOrder ?? Infinity) - (b.meta?.defaultViewColOrder ?? Infinity) + } - return (targetViewColumnsById.value[a.id!]?.order ?? Infinity) - (targetViewColumnsById.value[b.id!]?.order ?? Infinity) - }) - .slice(0, isMobileMode.value ? 1 : 3) - }) + return ( + (targetViewColumnsById.value[a.id!]?.order ?? Infinity) - (targetViewColumnsById.value[b.id!]?.order ?? Infinity) + ) + }) + .slice(0, isMobileMode.value ? 1 : 3) + }, + ref([]), + ) const requiredFieldsToLoad = computed(() => { return Array.from( diff --git a/packages/nc-gui/composables/useSharedFormViewStore.ts b/packages/nc-gui/composables/useSharedFormViewStore.ts index bef19f88e0..2a3a8109d1 100644 --- a/packages/nc-gui/composables/useSharedFormViewStore.ts +++ b/packages/nc-gui/composables/useSharedFormViewStore.ts @@ -128,7 +128,9 @@ const [useProvideSharedFormStore, useSharedFormStore] = useInjectionState((share columns.value?.filter((col) => { const isVisible = col.show - return isVisible && supportedFields(col) + const isAllowedToEdit = isAllowed(PermissionEntity.FIELD, col.id!, PermissionKey.RECORD_FIELD_EDIT) + + return isVisible && supportedFields(col) && isAllowedToEdit }) || [], )