From 3ee1983426f0381551fa130bf02860ffd2f9fd8c Mon Sep 17 00:00:00 2001 From: Kim Shepherd Date: Wed, 21 May 2025 19:29:08 +0200 Subject: [PATCH] Fix and simplify submission section 'enabled' logic Fixes cases where a section needs to be disabled on save/init because it is empty and non-mandatory (cherry picked from commit f77dfa37da07f5e2b0b94d9793fea8db2e3751b5) --- .../submission/objects/submission-objects.effects.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/app/submission/objects/submission-objects.effects.ts b/src/app/submission/objects/submission-objects.effects.ts index ef1610794c..f4880fb589 100644 --- a/src/app/submission/objects/submission-objects.effects.ts +++ b/src/app/submission/objects/submission-objects.effects.ts @@ -97,11 +97,13 @@ export class SubmissionObjectEffects { const sectionId = selfLink.substr(selfLink.lastIndexOf('/') + 1); const config = sectionDefinition._links.config ? (sectionDefinition._links.config.href || sectionDefinition._links.config) : ''; // A section is enabled if it is mandatory or contains data in its section payload - // except for detect duplicate steps which will be hidden with no data unless overridden in config, even if mandatory - const enabled = (sectionDefinition.mandatory && (sectionDefinition.sectionType !== SectionsType.Duplicates)) - || (isNotEmpty(action.payload.sections) && action.payload.sections.hasOwnProperty(sectionId) - && (sectionDefinition.sectionType === SectionsType.Duplicates && (alwaysDisplayDuplicates() || isNotEmpty((action.payload.sections[sectionId] as WorkspaceitemSectionDuplicatesObject).potentialDuplicates))) - ); + let enabled = (sectionDefinition.mandatory || (isNotEmpty(action.payload.sections) && action.payload.sections.hasOwnProperty(sectionId))); + + // Duplicates will ignore mandatory and display only when "always display" is set or there is data to show + if (sectionDefinition.sectionType === SectionsType.Duplicates) { + enabled = (alwaysDisplayDuplicates() || isNotEmpty((action.payload.sections[sectionId] as WorkspaceitemSectionDuplicatesObject).potentialDuplicates)); + } + let sectionData; if (sectionDefinition.sectionType !== SectionsType.SubmissionForm) { sectionData = (isNotUndefined(action.payload.sections) && isNotUndefined(action.payload.sections[sectionId])) ? action.payload.sections[sectionId] : Object.create(null);