diff --git a/src/app/submission/sections/upload/file/view/file-view.component.html b/src/app/submission/sections/upload/file/view/file-view.component.html index 0e6baac959..838e6d3b97 100644 --- a/src/app/submission/sections/upload/file/view/file-view.component.html +++ b/src/app/submission/sections/upload/file/view/file-view.component.html @@ -1,22 +1,26 @@
- - + + -
+
{{entry.value}}
- - {{entry.value | dsTruncate:[150]}} -
-
- {{'submission.sections.upload.no-entry' | translate}} {{entry.key}} +
+ {{'submission.sections.upload.no-entry' | translate}} {{fileTitleKey}}
- - {{'submission.sections.upload.no-entry' | translate}} {{entry.key}} -
+ +
+ + + {{entry.value | dsTruncate:[150]}} + + + {{'submission.sections.upload.no-entry' | translate}} {{fileDescrKey}} + +
diff --git a/src/app/submission/sections/upload/file/view/file-view.component.spec.ts b/src/app/submission/sections/upload/file/view/file-view.component.spec.ts index 5fbc0fadd8..4b3710661e 100644 --- a/src/app/submission/sections/upload/file/view/file-view.component.spec.ts +++ b/src/app/submission/sections/upload/file/view/file-view.component.spec.ts @@ -8,6 +8,7 @@ import { mockUploadFiles } from '../../../../../shared/mocks/mock-submission'; import { FormComponent } from '../../../../../shared/form/form.component'; import { UploadSectionFileViewComponent } from './file-view.component'; import { TruncatePipe } from '../../../../../shared/utils/truncate.pipe'; +import { Metadata } from '../../../../../core/shared/metadata.model'; describe('UploadSectionFileViewComponent test suite', () => { @@ -74,10 +75,14 @@ describe('UploadSectionFileViewComponent test suite', () => { it('should init metadata array properly', () => { comp.fileData = fileData; + const expectMetadataMap = { + [comp.fileTitleKey]: Metadata.all(fileData.metadata, 'dc.title'), + [comp.fileDescrKey]: [], + }; fixture.detectChanges(); - expect(comp.metadata.length).toBe(2); + expect(comp.metadata).toEqual(expectMetadataMap); }); diff --git a/src/app/submission/sections/upload/file/view/file-view.component.ts b/src/app/submission/sections/upload/file/view/file-view.component.ts index 0136b70c05..e2b28447fb 100644 --- a/src/app/submission/sections/upload/file/view/file-view.component.ts +++ b/src/app/submission/sections/upload/file/view/file-view.component.ts @@ -1,7 +1,9 @@ import { Component, Input, OnInit } from '@angular/core'; + import { WorkspaceitemSectionUploadFileObject } from '../../../../../core/submission/models/workspaceitem-section-upload-file.model'; -import { Metadatum } from '../../../../../core/shared/metadatum.model'; import { isNotEmpty } from '../../../../../shared/empty.util'; +import { MetadataMap, MetadataValue } from '../../../../../core/shared/metadata.interfaces'; +import { Metadata } from '../../../../../core/shared/metadata.model'; @Component({ selector: 'ds-submission-upload-section-file-view', @@ -10,20 +12,18 @@ import { isNotEmpty } from '../../../../../shared/empty.util'; export class UploadSectionFileViewComponent implements OnInit { @Input() fileData: WorkspaceitemSectionUploadFileObject; - public metadata: Metadatum[] = []; + public metadata: MetadataMap = Object.create({}); + public fileTitleKey = 'Title'; + public fileDescrKey = 'Description'; ngOnInit() { if (isNotEmpty(this.fileData.metadata)) { - this.metadata.push({ - key: 'Title', - language: (this.fileData.metadata.hasOwnProperty('dc.title') ? this.fileData.metadata['dc.title'][0].language : ''), - value: (this.fileData.metadata.hasOwnProperty('dc.title') ? this.fileData.metadata['dc.title'][0].value : '') - }); - this.metadata.push({ - key: 'Description', - language: (this.fileData.metadata.hasOwnProperty('dc.description') ? this.fileData.metadata['dc.description'][0].language : ''), - value: (this.fileData.metadata.hasOwnProperty('dc.description') ? this.fileData.metadata['dc.description'][0].value : '') - }); + this.metadata[this.fileTitleKey] = Metadata.all(this.fileData.metadata, 'dc.title'); + this.metadata[this.fileDescrKey] = Metadata.all(this.fileData.metadata, 'dc.description'); } } + + getAllMetadataValue(metadataKey): MetadataValue[] { + return Metadata.all(this.metadata, metadataKey); + } }