Fixed issue with upload section

This commit is contained in:
Giuseppe
2018-10-11 11:28:43 +02:00
parent ae9d62d60d
commit 3ce9c89a4c
3 changed files with 25 additions and 25 deletions

View File

@@ -155,7 +155,11 @@ export class UploadSectionFileComponent implements OnChanges, OnInit {
} }
} }
}); });
this.operationsBuilder.add(this.pathCombiner.getPath('accessConditions'), accessConditionsToSave, true);
if (isNotEmpty(accessConditionsToSave)) {
this.operationsBuilder.add(this.pathCombiner.getPath('accessConditions'), accessConditionsToSave, true);
}
this.operationsService.jsonPatchByResourceID( this.operationsService.jsonPatchByResourceID(
this.submissionService.getSubmissionObjectLinkName(), this.submissionService.getSubmissionObjectLinkName(),
this.submissionId, this.submissionId,

View File

@@ -35,7 +35,7 @@
[availableAccessConditionOptions]="availableAccessConditionOptions" [availableAccessConditionOptions]="availableAccessConditionOptions"
[collectionId]="collectionId" [collectionId]="collectionId"
[collectionPolicyType]="collectionPolicyType" [collectionPolicyType]="collectionPolicyType"
[configMetadataForm]="configMetadataForm" [configMetadataForm]="(configMetadataForm$ | async)"
[fileId]="fileIndexes[fileList.indexOf(fileEntry)]" [fileId]="fileIndexes[fileList.indexOf(fileEntry)]"
[fileIndex]="fileList.indexOf(fileEntry)" [fileIndex]="fileList.indexOf(fileEntry)"
[fileName]="fileNames[fileList.indexOf(fileEntry)]" [fileName]="fileNames[fileList.indexOf(fileEntry)]"

View File

@@ -48,7 +48,7 @@ export class UploadSectionComponent extends SectionModelComponent implements OnI
*/ */
public collectionPolicyType; public collectionPolicyType;
public configMetadataForm: SubmissionFormsModel; public configMetadataForm$: Observable<SubmissionFormsModel>;
/* /*
* List of available access conditions that could be setted to files * List of available access conditions that could be setted to files
@@ -74,6 +74,13 @@ export class UploadSectionComponent extends SectionModelComponent implements OnI
} }
ngOnInit() { ngOnInit() {
const config$ = this.uploadsConfigService.getConfigByHref(this.sectionData.config)
.flatMap((config) => config.payload);
this.configMetadataForm$ = config$
.take(1)
.map((config: SubmissionUploadsModel) => config.metadata[0]);
this.subs.push( this.subs.push(
this.store.select(submissionObjectFromIdSelector(this.submissionId)) this.store.select(submissionObjectFromIdSelector(this.submissionId))
.filter((submissionObject: SubmissionObjectEntry) => isNotUndefined(submissionObject) && !submissionObject.isLoading) .filter((submissionObject: SubmissionObjectEntry) => isNotUndefined(submissionObject) && !submissionObject.isLoading)
@@ -86,19 +93,8 @@ export class UploadSectionComponent extends SectionModelComponent implements OnI
.subscribe((collectionData) => { .subscribe((collectionData) => {
this.collectionName = collectionData.payload.name; this.collectionName = collectionData.payload.name;
console.log(collectionData.payload.defaultAccessConditions);
const defaultAccessConditions$ = collectionData.payload.defaultAccessConditions
|| Observable.of(
new RemoteData(
false,
false,
true,
undefined,
undefined
));
// Default Access Conditions // Default Access Conditions
this.subs.push(defaultAccessConditions$ this.subs.push(collectionData.payload.defaultAccessConditions
.filter((accessConditions) => isNotUndefined((accessConditions.payload))) .filter((accessConditions) => isNotUndefined((accessConditions.payload)))
.take(1) .take(1)
.subscribe((defaultAccessConditions) => { .subscribe((defaultAccessConditions) => {
@@ -109,13 +105,11 @@ export class UploadSectionComponent extends SectionModelComponent implements OnI
} }
// Edit Form Configuration, access policy list // Edit Form Configuration, access policy list
this.subs.push(this.uploadsConfigService.getConfigByHref(this.sectionData.config) this.subs.push(config$
.flatMap((config) => config.payload)
.take(1) .take(1)
.subscribe((config: SubmissionUploadsModel) => { .subscribe((config: SubmissionUploadsModel) => {
this.availableAccessConditionOptions = isNotEmpty(config.accessConditionOptions) ? config.accessConditionOptions : []; this.availableAccessConditionOptions = isNotEmpty(config.accessConditionOptions) ? config.accessConditionOptions : [];
this.configMetadataForm = config.metadata[0];
this.collectionPolicyType = this.availableAccessConditionOptions.length > 0 this.collectionPolicyType = this.availableAccessConditionOptions.length > 0
? POLICY_DEFAULT_WITH_LIST ? POLICY_DEFAULT_WITH_LIST
: POLICY_DEFAULT_NO_LIST; : POLICY_DEFAULT_NO_LIST;
@@ -160,11 +154,13 @@ export class UploadSectionComponent extends SectionModelComponent implements OnI
}) })
}) })
, ,
this.bitstreamService Observable.combineLatest(this.configMetadataForm$,
.getUploadedFileList(this.submissionId, this.sectionData.id) this.bitstreamService.getUploadedFileList(this.submissionId, this.sectionData.id))
.filter((bitstreamList) => isNotUndefined(bitstreamList)) .filter(([configMetadataForm, fileList]:[SubmissionFormsModel, any[]]) => {
return isNotEmpty(configMetadataForm) && isNotUndefined(fileList)
})
.distinctUntilChanged() .distinctUntilChanged()
.subscribe((fileList: any[]) => { .subscribe(([configMetadataForm, fileList]:[SubmissionFormsModel, any[]]) => {
let sectionStatus = false; let sectionStatus = false;
this.fileList = []; this.fileList = [];
this.fileIndexes = []; this.fileIndexes = [];
@@ -174,7 +170,7 @@ export class UploadSectionComponent extends SectionModelComponent implements OnI
fileList.forEach((file) => { fileList.forEach((file) => {
this.fileList.push(file); this.fileList.push(file);
this.fileIndexes.push(file.uuid); this.fileIndexes.push(file.uuid);
this.fileNames.push(this.getFileName(file)); this.fileNames.push(this.getFileName(configMetadataForm, file));
}); });
sectionStatus = true; sectionStatus = true;
} }
@@ -187,8 +183,8 @@ export class UploadSectionComponent extends SectionModelComponent implements OnI
); );
} }
private getFileName(fileData: any): string { private getFileName(configMetadataForm: SubmissionFormsModel, fileData: any): string {
const metadataName: string = this.configMetadataForm.rows[0].fields[0].selectableMetadata[0].metadata; const metadataName: string = configMetadataForm.rows[0].fields[0].selectableMetadata[0].metadata;
let title: string; let title: string;
if (isNotEmpty(fileData.metadata) && isNotEmpty(fileData.metadata[metadataName])) { if (isNotEmpty(fileData.metadata) && isNotEmpty(fileData.metadata[metadataName])) {
title = fileData.metadata[metadataName][0].display; title = fileData.metadata[metadataName][0].display;