mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-08 02:24:11 +00:00
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 f77dfa37da
)
This commit is contained in:

committed by
github-actions[bot]
![github-actions[bot]](/assets/img/avatar_default.png)
parent
ed4dfdad1d
commit
3ee1983426
@@ -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);
|
||||
|
Reference in New Issue
Block a user