From 84cdb2f5675cab3d0e32048e7808eb63caeb006b Mon Sep 17 00:00:00 2001 From: Valentin Mihai Date: Thu, 5 Dec 2024 15:05:00 +0200 Subject: [PATCH] RED-10557 - updated logic for file attributes mapping --- ...ossier-overview-screen-header.component.ts | 39 +++++++++---------- apps/red-ui/src/app/utils/csv-utils.ts | 2 - 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier-overview/components/screen-header/dossier-overview-screen-header.component.ts b/apps/red-ui/src/app/modules/dossier-overview/components/screen-header/dossier-overview-screen-header.component.ts index ad45860ad..686c79c75 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/components/screen-header/dossier-overview-screen-header.component.ts +++ b/apps/red-ui/src/app/modules/dossier-overview/components/screen-header/dossier-overview-screen-header.component.ts @@ -102,8 +102,6 @@ export class DossierOverviewScreenHeaderComponent { } async downloadDossierAsCSV() { - console.log('FILE ATTRIBUTES: ', this._fileAttributesService.getFileAttributeConfig(this.dossier().dossierTemplateId)); - const displayedEntities = await firstValueFrom(this.listingService.displayed$); const entities = this.sortingService.defaultSort(displayedEntities); const fileName = this.dossier().dossierName + '.export.csv'; @@ -111,31 +109,13 @@ export class DossierOverviewScreenHeaderComponent { .getFileAttributeConfig(this.dossier().dossierTemplateId) .fileAttributeConfigs.filter(a => a.includeInCsvExport) .map(c => ({ label: c.label, id: c.id })); - for (const entity of entities) { - console.log('--------------------------'); - console.log( - ...Object.keys(entity.fileAttributes.attributeIdToValue).reduce((result, key) => { - const match = configNames.find(item => item.id === key); - if (match) { - result.push(entity.fileAttributes.attributeIdToValue[key]); - } - return result; - }, []), - ); - } const mapper = (file?: File) => ({ ...file, hasAnnotations: file.hasRedactions, assignee: this._userService.getName(file.assignee) || '-', primaryAttribute: this._primaryFileAttributeService.getPrimaryFileAttributeValue(file, this.dossier().dossierTemplateId), - ...Object.keys(file.fileAttributes.attributeIdToValue).reduce((result, key) => { - const match = configNames.find(item => item.id === key); - if (match) { - result.push(match.label); - } - return result; - }, []), + ...this.#mapFileAttributes(file, displayedEntities, configNames), }); const documineOnlyFields = ['hasAnnotations']; @@ -158,4 +138,21 @@ export class DossierOverviewScreenHeaderComponent { ]; saveAsCSV(fileName, entities, fileFields, mapper); } + + #mapFileAttributes(file: File, displayedEntities: File[], configNames: { label: string; id: string }[]) { + const entity = displayedEntities.find(e => e.id === file.id); + + if (!entity) return {}; + + return Object.keys(entity.fileAttributes.attributeIdToValue).reduce( + (result, key) => { + const match = configNames.find(item => item.id === key); + if (match) { + result[match.label] = entity.fileAttributes.attributeIdToValue[key]; + } + return result; + }, + {} as Record, + ); + } } diff --git a/apps/red-ui/src/app/utils/csv-utils.ts b/apps/red-ui/src/app/utils/csv-utils.ts index 72a6a774a..4f9edd3ac 100644 --- a/apps/red-ui/src/app/utils/csv-utils.ts +++ b/apps/red-ui/src/app/utils/csv-utils.ts @@ -22,8 +22,6 @@ export function saveAsCSV(fileName: string, objects: readonly any[], fields: str const headerLine = fields.map(f => '"' + humanize(camelCaseToSnakeCase(f)) + '"').join(',') + '\n'; const csvContent = toCSVContent(objects.map(mapper), fields); - console.log('toCSVContent: ', objects.map(mapper)); - const blob = new Blob([headerLine + csvContent], { type: 'text/csv;charset=utf-8', });