Files
dspace-angular/src/app/submission/sections/upload/file/view/section-upload-file-view.component.ts
2024-10-02 09:10:48 -03:00

96 lines
2.5 KiB
TypeScript

import {
NgForOf,
NgIf,
} from '@angular/common';
import {
Component,
Input,
OnInit,
} from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';
import {
MetadataMap,
MetadataValue,
} from '../../../../../core/shared/metadata.models';
import { Metadata } from '../../../../../core/shared/metadata.utils';
import { WorkspaceitemSectionUploadFileObject } from '../../../../../core/submission/models/workspaceitem-section-upload-file.model';
import { isNotEmpty } from '../../../../../shared/empty.util';
import { TruncatePipe } from '../../../../../shared/utils/truncate.pipe';
import { FileSizePipe } from '../../../../../shared/utils/file-size-pipe';
import { SubmissionSectionUploadAccessConditionsComponent } from '../../accessConditions/submission-section-upload-access-conditions.component';
/**
* This component allow to show bitstream's metadata
*/
@Component({
selector: 'ds-submission-section-upload-file-view',
templateUrl: './section-upload-file-view.component.html',
imports: [
SubmissionSectionUploadAccessConditionsComponent,
TranslateModule,
TruncatePipe,
NgIf,
NgForOf,
FileSizePipe,
],
standalone: true,
})
export class SubmissionSectionUploadFileViewComponent implements OnInit {
/**
* The bitstream's metadata data
* @type {WorkspaceitemSectionUploadFileObject}
*/
@Input() fileData: WorkspaceitemSectionUploadFileObject;
/**
* The [[MetadataMap]] object
* @type {MetadataMap}
*/
public metadata: MetadataMap = Object.create({});
/**
* The bitstream's title key
* @type {string}
*/
public fileTitleKey = 'Title';
/**
* The bitstream's description key
* @type {string}
*/
public fileDescrKey = 'Description';
public fileFormat!: string;
public fileCheckSum!: {
checkSumAlgorithm: string;
value: string;
};
/**
* Initialize instance variables
*/
ngOnInit() {
if (isNotEmpty(this.fileData.metadata)) {
this.metadata[this.fileTitleKey] = Metadata.all(this.fileData.metadata, 'dc.title');
this.metadata[this.fileDescrKey] = Metadata.all(this.fileData.metadata, 'dc.description');
}
this.fileCheckSum = this.fileData.checkSum;
this.fileFormat = this.fileData.format.shortDescription;
}
/**
* Gets all matching metadata in the map(s)
*
* @param metadataKey
* The metadata key(s) in scope
* @returns {MetadataValue[]}
* The matching values
*/
getAllMetadataValue(metadataKey: string): MetadataValue[] {
return Metadata.all(this.metadata, metadataKey);
}
}