From 3c96283a7b1057510e2f7ae0b711cae2bf61b2fd Mon Sep 17 00:00:00 2001 From: Katharina Kaiser Date: Thu, 21 Aug 2025 13:54:39 +0200 Subject: [PATCH] Fix broken read-only form field mechanism in submission forms The read-only visibility mechanism for submission form fields was not working, as references to SectionVisibility attributes (`main`, `other`) remained after its removal in DSpace CRIS 2024.02.00. This fix adapts the relevant checks in `field-parser.ts` and adds the missing import required for correct handling of `SubmissionVisibility`. Signed-off-by: Katharina Kaiser --- .../shared/form/builder/parsers/field-parser.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/app/shared/form/builder/parsers/field-parser.ts b/src/app/shared/form/builder/parsers/field-parser.ts index 7c5a64f9baa..03bda4052bd 100644 --- a/src/app/shared/form/builder/parsers/field-parser.ts +++ b/src/app/shared/form/builder/parsers/field-parser.ts @@ -11,14 +11,12 @@ import { import { TranslateService } from '@ngx-translate/core'; import uniqueId from 'lodash/uniqueId'; -import { - SubmissionVisibilityType, - SubmissionVisibilityValue, -} from '../../../../core/config/models/config-submission-section.model'; +import { SubmissionVisibilityType } from '../../../../core/config/models/config-submission-section.model'; import { MetadataValue } from '../../../../core/shared/metadata.models'; import { Metadata } from '../../../../core/shared/metadata.utils'; import { SubmissionScopeType } from '../../../../core/submission/submission-scope-type'; import { VocabularyOptions } from '../../../../core/submission/vocabularies/models/vocabulary-options.model'; +import { SubmissionVisibility } from '../../../../submission/utils/visibility.util'; import { isNgbDateStruct } from '../../../date.util'; import { hasValue, @@ -372,8 +370,9 @@ export abstract class FieldParser { } /** - * Check if a field is read-only with the given scope + * Check if a field is read-only within the given scope * @param visibility + * @param fieldScope * @param submissionScope */ private isFieldReadOnly(visibility: SubmissionVisibilityType, fieldScope: string, submissionScope: string) { @@ -382,12 +381,12 @@ export abstract class FieldParser { && isNotEmpty(visibility) && (( submissionScope === SubmissionScopeType.WorkspaceItem.valueOf() - && visibility.main === SubmissionVisibilityValue.ReadOnly + && SubmissionVisibility.isReadOnly(visibility, SubmissionScopeType.WorkspaceItem) ) || - (visibility.other === SubmissionVisibilityValue.ReadOnly - && submissionScope === SubmissionScopeType.WorkflowItem.valueOf() - ) + (submissionScope === SubmissionScopeType.WorkflowItem.valueOf() + && SubmissionVisibility.isReadOnly(visibility, SubmissionScopeType.WorkflowItem) + ) ); }