mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-15 22:13:02 +00:00
Refactored UploadSectionFileViewComponent using MetadataMap
This commit is contained in:
@@ -1,22 +1,26 @@
|
|||||||
<div>
|
<div>
|
||||||
<ng-container *ngIf="metadata.length > 0">
|
<ng-container *ngIf="metadata">
|
||||||
<ng-container *ngFor="let entry of metadata">
|
<ng-container *ngFor="let entry of getAllMetadataValue(fileTitleKey)">
|
||||||
<ng-container *ngIf="entry.value !== ''">
|
<ng-container *ngIf="entry.value !== ''">
|
||||||
<h5 *ngIf="metadata.indexOf(entry) === 0">
|
<h5>
|
||||||
{{entry.value}}
|
{{entry.value}}
|
||||||
</h5>
|
</h5>
|
||||||
<ng-container *ngIf="metadata.indexOf(entry) !== 0">
|
|
||||||
{{entry.value | dsTruncate:[150]}}
|
|
||||||
</ng-container>
|
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngIf="entry.value === ''">
|
<ng-container *ngIf="entry.value === ''">
|
||||||
<h5 *ngIf="metadata.indexOf(entry) === 0">
|
<h5 *ngIf="metadata[fileTitleKey].indexOf(entry) === 0">
|
||||||
<span class="text-muted">{{'submission.sections.upload.no-entry' | translate}} {{entry.key}}</span>
|
<span class="text-muted">{{'submission.sections.upload.no-entry' | translate}} {{fileTitleKey}}</span>
|
||||||
</h5>
|
</h5>
|
||||||
<ng-container *ngIf="metadata.indexOf(entry) !== 0">
|
|
||||||
<span class="text-muted">{{'submission.sections.upload.no-entry' | translate}} {{entry.key}}</span>
|
|
||||||
</ng-container>
|
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
<span class="clearfix"></span>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container *ngFor="let entry of getAllMetadataValue(fileDescrKey)">
|
||||||
|
<ng-container *ngIf="entry.value !== ''">
|
||||||
|
{{entry.value | dsTruncate:[150]}}
|
||||||
|
</ng-container>
|
||||||
|
<ng-container *ngIf="entry.value === ''">
|
||||||
|
<span *ngIf="metadata[fileDescrKey].indexOf(entry) === 0" class="text-muted">{{'submission.sections.upload.no-entry' | translate}} {{fileDescrKey}}</span>
|
||||||
|
</ng-container>
|
||||||
|
<span class="clearfix"></span>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
|
@@ -8,6 +8,7 @@ import { mockUploadFiles } from '../../../../../shared/mocks/mock-submission';
|
|||||||
import { FormComponent } from '../../../../../shared/form/form.component';
|
import { FormComponent } from '../../../../../shared/form/form.component';
|
||||||
import { UploadSectionFileViewComponent } from './file-view.component';
|
import { UploadSectionFileViewComponent } from './file-view.component';
|
||||||
import { TruncatePipe } from '../../../../../shared/utils/truncate.pipe';
|
import { TruncatePipe } from '../../../../../shared/utils/truncate.pipe';
|
||||||
|
import { Metadata } from '../../../../../core/shared/metadata.model';
|
||||||
|
|
||||||
describe('UploadSectionFileViewComponent test suite', () => {
|
describe('UploadSectionFileViewComponent test suite', () => {
|
||||||
|
|
||||||
@@ -74,10 +75,14 @@ describe('UploadSectionFileViewComponent test suite', () => {
|
|||||||
|
|
||||||
it('should init metadata array properly', () => {
|
it('should init metadata array properly', () => {
|
||||||
comp.fileData = fileData;
|
comp.fileData = fileData;
|
||||||
|
const expectMetadataMap = {
|
||||||
|
[comp.fileTitleKey]: Metadata.all(fileData.metadata, 'dc.title'),
|
||||||
|
[comp.fileDescrKey]: [],
|
||||||
|
};
|
||||||
|
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
|
|
||||||
expect(comp.metadata.length).toBe(2);
|
expect(comp.metadata).toEqual(expectMetadataMap);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
import { Component, Input, OnInit } from '@angular/core';
|
import { Component, Input, OnInit } from '@angular/core';
|
||||||
|
|
||||||
import { WorkspaceitemSectionUploadFileObject } from '../../../../../core/submission/models/workspaceitem-section-upload-file.model';
|
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 { isNotEmpty } from '../../../../../shared/empty.util';
|
||||||
|
import { MetadataMap, MetadataValue } from '../../../../../core/shared/metadata.interfaces';
|
||||||
|
import { Metadata } from '../../../../../core/shared/metadata.model';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-submission-upload-section-file-view',
|
selector: 'ds-submission-upload-section-file-view',
|
||||||
@@ -10,20 +12,18 @@ import { isNotEmpty } from '../../../../../shared/empty.util';
|
|||||||
export class UploadSectionFileViewComponent implements OnInit {
|
export class UploadSectionFileViewComponent implements OnInit {
|
||||||
@Input() fileData: WorkspaceitemSectionUploadFileObject;
|
@Input() fileData: WorkspaceitemSectionUploadFileObject;
|
||||||
|
|
||||||
public metadata: Metadatum[] = [];
|
public metadata: MetadataMap = Object.create({});
|
||||||
|
public fileTitleKey = 'Title';
|
||||||
|
public fileDescrKey = 'Description';
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
if (isNotEmpty(this.fileData.metadata)) {
|
if (isNotEmpty(this.fileData.metadata)) {
|
||||||
this.metadata.push({
|
this.metadata[this.fileTitleKey] = Metadata.all(this.fileData.metadata, 'dc.title');
|
||||||
key: 'Title',
|
this.metadata[this.fileDescrKey] = Metadata.all(this.fileData.metadata, 'dc.description');
|
||||||
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 : '')
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getAllMetadataValue(metadataKey): MetadataValue[] {
|
||||||
|
return Metadata.all(this.metadata, metadataKey);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user