Merge pull request #4361 from DSpace/backport-4360-to-dspace-8_x

[Port dspace-8_x] Fix and simplify submission section 'enabled' logic
This commit is contained in:
Tim Donohue
2025-05-21 15:53:05 -05:00
committed by GitHub

View File

@@ -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);