Merge branch 'master' into VM/RED-2614
This commit is contained in:
commit
d15c569456
@ -12,7 +12,7 @@
|
||||
></redaction-file-download-btn>
|
||||
|
||||
<iqser-circle-button
|
||||
(action)="exportFilesAsCSV()"
|
||||
(action)="downloadDossierAsCSV()"
|
||||
[disabled]="listingService.areSomeSelected$ | async"
|
||||
[tooltip]="'dossier-overview.header-actions.download-csv' | translate"
|
||||
icon="iqser:csv"
|
||||
|
||||
@ -11,7 +11,7 @@ import {
|
||||
SortingService,
|
||||
Toaster,
|
||||
} from '@iqser/common-ui';
|
||||
import { Dossier, File } from '@red/domain';
|
||||
import { Dossier, File, IFile } from '@red/domain';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { ReanalysisService } from '@services/reanalysis.service';
|
||||
@ -20,6 +20,7 @@ import { saveAsCSV } from '@utils/csv-utils';
|
||||
import { UserService } from '@services/user.service';
|
||||
import { ConfigService } from '../../config.service';
|
||||
import { firstValueFrom } from 'rxjs';
|
||||
import { PrimaryFileAttributeService } from '../../../../../../services/primary-file-attribute.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-screen-header',
|
||||
@ -45,6 +46,7 @@ export class ScreenHeaderComponent implements OnInit {
|
||||
readonly routerHistoryService: RouterHistoryService,
|
||||
private readonly _reanalysisService: ReanalysisService,
|
||||
private readonly _loadingService: LoadingService,
|
||||
private readonly _primaryFileAttributeService: PrimaryFileAttributeService,
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
@ -62,33 +64,34 @@ export class ScreenHeaderComponent implements OnInit {
|
||||
this._loadingService.stop();
|
||||
}
|
||||
|
||||
exportFilesAsCSV() {
|
||||
downloadDossierAsCSV() {
|
||||
const sortedEntities$ = this.listingService.displayed$.pipe(map(entities => this.sortingService.defaultSort(entities)));
|
||||
sortedEntities$.pipe(take(1)).subscribe(entities => {
|
||||
const fileName = this.dossier.dossierName + '.export.csv';
|
||||
saveAsCSV(
|
||||
fileName,
|
||||
entities,
|
||||
[
|
||||
'dossierId',
|
||||
'fileId',
|
||||
'filename',
|
||||
'primaryAttribute',
|
||||
'numberOfPages',
|
||||
'assignee',
|
||||
'workflowStatus',
|
||||
'processingStatus',
|
||||
'lastUpdated',
|
||||
'lastUploaded',
|
||||
'lastProcessed',
|
||||
'hasHints',
|
||||
'hasImages',
|
||||
'hasRedactions',
|
||||
'hasUpdates',
|
||||
'excluded',
|
||||
],
|
||||
fsv => ({ ...fsv, assignee: this._userService.getNameForId(fsv.assignee) }),
|
||||
);
|
||||
const mapper = (file?: IFile) => ({
|
||||
...file,
|
||||
assignee: this._userService.getNameForId(file.assignee),
|
||||
primaryAttribute: this._primaryFileAttributeService.getPrimaryFileAttributeValue(file, this.dossier.dossierTemplateId),
|
||||
});
|
||||
const fileFields = [
|
||||
'dossierId',
|
||||
'fileId',
|
||||
'filename',
|
||||
'primaryAttribute',
|
||||
'numberOfPages',
|
||||
'assignee',
|
||||
'workflowStatus',
|
||||
'processingStatus',
|
||||
'lastUpdated',
|
||||
'lastUploaded',
|
||||
'lastProcessed',
|
||||
'hasHints',
|
||||
'hasImages',
|
||||
'hasRedactions',
|
||||
'hasUpdates',
|
||||
'excluded',
|
||||
];
|
||||
saveAsCSV(fileName, entities, fileFields, mapper);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core';
|
||||
import { File } from '@red/domain';
|
||||
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
||||
import { PrimaryFileAttributeService } from '../../../../../../../services/primary-file-attribute.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-file-name-column',
|
||||
@ -13,19 +13,9 @@ export class FileNameColumnComponent implements OnChanges {
|
||||
@Input() dossierTemplateId: string;
|
||||
primaryAttribute: string;
|
||||
|
||||
constructor(private readonly _fileAttributesService: FileAttributesService) {}
|
||||
constructor(private readonly _primaryFileAttributeService: PrimaryFileAttributeService) {}
|
||||
|
||||
ngOnChanges() {
|
||||
const fileAttributesConfig = this._fileAttributesService.getFileAttributeConfig(this.dossierTemplateId);
|
||||
if (fileAttributesConfig) {
|
||||
const primary = fileAttributesConfig.fileAttributeConfigs?.find(c => c.primaryAttribute);
|
||||
if (primary && this.file.fileAttributes?.attributeIdToValue) {
|
||||
this.primaryAttribute = this.file.fileAttributes?.attributeIdToValue[primary.id];
|
||||
}
|
||||
|
||||
if (!this.primaryAttribute) {
|
||||
this.primaryAttribute = '-';
|
||||
}
|
||||
}
|
||||
this.primaryAttribute = this._primaryFileAttributeService.getPrimaryFileAttributeValue(this.file, this.dossierTemplateId);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { FileAttributesService } from './entity-services/file-attributes.service';
|
||||
import { IFile } from '@red/domain';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class PrimaryFileAttributeService {
|
||||
constructor(private readonly _fileAttributesService: FileAttributesService) {}
|
||||
|
||||
getPrimaryFileAttributeValue(file: IFile, dossierTemplateId: string) {
|
||||
const fileAttributesConfig = this._fileAttributesService.getFileAttributeConfig(dossierTemplateId);
|
||||
|
||||
let primaryAttribute;
|
||||
|
||||
if (fileAttributesConfig) {
|
||||
const primary = fileAttributesConfig.fileAttributeConfigs?.find(c => c.primaryAttribute);
|
||||
if (primary && file.fileAttributes?.attributeIdToValue) {
|
||||
primaryAttribute = file.fileAttributes?.attributeIdToValue[primary.id];
|
||||
}
|
||||
}
|
||||
|
||||
if (!primaryAttribute) {
|
||||
primaryAttribute = '-';
|
||||
}
|
||||
|
||||
return primaryAttribute;
|
||||
}
|
||||
}
|
||||
@ -39,7 +39,6 @@ export class File extends Entity<IFile> implements IFile {
|
||||
readonly processingStatus: ProcessingFileStatus;
|
||||
readonly workflowStatus: WorkflowFileStatus;
|
||||
|
||||
readonly primaryAttribute?: string;
|
||||
readonly statusSort: number;
|
||||
readonly cacheIdentifier?: string;
|
||||
readonly hintsOnly: boolean;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "redaction",
|
||||
"version": "3.181.0",
|
||||
"version": "3.182.0",
|
||||
"private": true,
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
|
||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user