mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-17 06:53:03 +00:00
working on fixes for OrgUnit field in submission
This commit is contained in:
@@ -16,6 +16,10 @@ import { FormFieldMetadataValueObject } from '../../shared/form/builder/models/f
|
||||
import { SubmissionObject } from './models/submission-object.model';
|
||||
import { WorkflowItem } from './models/workflowitem.model';
|
||||
import { WorkspaceItem } from './models/workspaceitem.model';
|
||||
import { SubmissionDefinitionsModel } from '../config/models/config-submission-definitions.model';
|
||||
import { SubmissionSectionModel } from '../config/models/config-submission-section.model';
|
||||
import { SectionsType } from '../../submission/sections/sections-type';
|
||||
import { SectionDataModel } from '../../submission/sections/models/section.model';
|
||||
|
||||
/**
|
||||
* Export a function to check if object has same properties of FormFieldMetadataValueObject
|
||||
@@ -136,24 +140,29 @@ export class SubmissionResponseParsingService extends BaseResponseParsingService
|
||||
|
||||
processedList.forEach((item) => {
|
||||
|
||||
item = Object.assign({}, item);
|
||||
// In case data is an Instance of WorkspaceItem normalize field value of all the section of type form
|
||||
if (item instanceof WorkspaceItem
|
||||
|| item instanceof WorkflowItem) {
|
||||
if (item.sections) {
|
||||
const sectionConfigs = (item.submissionDefinition as SubmissionDefinitionsModel).sections.page;
|
||||
const precessedSection = Object.create({});
|
||||
// Iterate over all workspaceitem's sections
|
||||
Object.keys(item.sections)
|
||||
.forEach((sectionId) => {
|
||||
if (typeof item.sections[sectionId] === 'object' && (isNotEmpty(item.sections[sectionId]) &&
|
||||
const sectionConfig: SubmissionSectionModel = sectionConfigs.find((config) => config.id === sectionId);
|
||||
let sectionData = item.sections[sectionId];
|
||||
if (sectionConfig && sectionConfig.sectionType === SectionsType.SubmissionForm) {
|
||||
sectionData = item.item.metadata;
|
||||
}
|
||||
if (typeof sectionData === 'object' && (isNotEmpty(sectionData) &&
|
||||
// When Upload section is disabled, add to submission only if there are files
|
||||
(!item.sections[sectionId].hasOwnProperty('files') || isNotEmpty((item.sections[sectionId] as any).files)))) {
|
||||
(!sectionData.hasOwnProperty('files') || isNotEmpty((sectionData as any).files)))) {
|
||||
|
||||
const sectiondata = Object.create({});
|
||||
// Iterate over all sections property
|
||||
Object.keys(item.sections[sectionId])
|
||||
Object.keys(sectionData)
|
||||
.forEach((metdadataId) => {
|
||||
const entry = item.sections[sectionId][metdadataId];
|
||||
const entry = sectionData[metdadataId];
|
||||
// If entry is not an array, for sure is not a section of type form
|
||||
if (Array.isArray(entry)) {
|
||||
sectiondata[metdadataId] = [];
|
||||
|
Reference in New Issue
Block a user