This commit is contained in:
Dan Percic 2021-09-26 17:28:44 +03:00
parent 11f804c526
commit f186f766ec
6 changed files with 55 additions and 58 deletions

View File

@ -67,12 +67,12 @@ export class DossierDetailsComponent implements OnInit {
const groups = groupBy(this.appStateService.activeDossier?.files, 'status');
this.documentsChartData = [];
for (const key of Object.keys(groups)) {
for (const status of Object.keys(groups)) {
this.documentsChartData.push({
value: groups[key].length,
color: key,
label: fileStatusTranslations[key],
key: key
value: groups[status].length,
color: status,
label: fileStatusTranslations[status],
key: status
});
}
this.documentsChartData.sort(StatusSorter.byStatus);

View File

@ -222,7 +222,7 @@ export class FileActionsComponent extends AutoUnsubscribe implements OnInit, OnD
}
ngOnChanges(changes: SimpleChanges): void {
if (changes.fileStatus) {
if (changes.file) {
this._setup();
}
}

View File

@ -143,12 +143,12 @@ export class DossierListingScreenComponent
const groups = groupBy(this._appStateService.aggregatedFiles, 'status');
this.documentsChartData = [];
for (const key of Object.keys(groups)) {
for (const status of Object.keys(groups)) {
this.documentsChartData.push({
value: groups[key].length,
color: key,
label: fileStatusTranslations[key],
key: key
value: groups[status].length,
color: status,
label: fileStatusTranslations[status],
key: status
});
}
this.documentsChartData.sort(StatusSorter.byStatus);

View File

@ -403,7 +403,7 @@ export class DossierOverviewScreenComponent extends ListingComponent<File> imple
return;
}
const allDistinctFileStatusWrapper = new Set<string>();
const allDistinctFileStatuses = new Set<string>();
const allDistinctPeople = new Set<string>();
const allDistinctAddedDates = new Set<string>();
const allDistinctNeedsWork = new Set<string>();
@ -412,7 +412,7 @@ export class DossierOverviewScreenComponent extends ListingComponent<File> imple
this.entitiesService.all.forEach(file => {
allDistinctPeople.add(file.currentReviewer);
allDistinctFileStatusWrapper.add(file.status);
allDistinctFileStatuses.add(file.status);
allDistinctAddedDates.add(moment(file.added).format('DD/MM/YYYY'));
if (file.analysisRequired) {
@ -459,11 +459,11 @@ export class DossierOverviewScreenComponent extends ListingComponent<File> imple
});
});
const statusFilters = [...allDistinctFileStatusWrapper].map(
item =>
const statusFilters = [...allDistinctFileStatuses].map(
status =>
new NestedFilter({
id: item,
label: this._translateService.instant(fileStatusTranslations[item])
id: status,
label: this._translateService.instant(fileStatusTranslations[status])
})
);

View File

@ -22,7 +22,7 @@ export const loadCompareDocumentWrapper = async (
compareDocument,
mergedDocument,
instance,
fileStatus,
file,
setCompareViewMode: () => void,
navigateToPage: () => void,
pdfNet: any
@ -44,7 +44,7 @@ export const loadCompareDocumentWrapper = async (
setCompareViewMode();
instance.loadDocument(mergedDocumentBuffer, {
filename: fileStatus ? fileStatus.filename : 'document.pdf'
filename: file?.filename ?? 'document.pdf'
});
instance.disableElements(['compareButton']);
instance.enableElements(['closeCompareButton']);

View File

@ -239,24 +239,22 @@ export class AppStateService {
}
const oldProcessedDate = this.activeFile.lastProcessed;
const dossierTemplateId = this.activeFile.dossierTemplateId;
const activeFile = await this._statusControllerService.getFileStatus(this.activeDossierId, this.activeFileId).toPromise();
activeFile.dossierTemplateId = dossierTemplateId;
const iFile = await this._statusControllerService.getFileStatus(this.activeDossierId, this.activeFileId).toPromise();
iFile.dossierTemplateId = dossierTemplateId;
const activeFileWrapper = new File(
activeFile,
this._userService.getNameForId(activeFile.currentReviewer),
this.getFileAttributeConfig(activeFile.dossierTemplateId)
);
this.activeDossier.files = this.activeDossier?.files.map(file =>
file.fileId === activeFileWrapper.fileId ? activeFileWrapper : file
const activeFile = new File(
iFile,
this._userService.getNameForId(iFile.currentReviewer),
this.getFileAttributeConfig(iFile.dossierTemplateId)
);
this.activeDossier.files = this.activeDossier?.files.map(file => (file.fileId === activeFile.fileId ? activeFile : file));
this._computeStats();
if (activeFileWrapper.lastProcessed !== oldProcessedDate) {
this.fileReanalysed$.next(activeFileWrapper);
if (activeFile.lastProcessed !== oldProcessedDate) {
this.fileReanalysed$.next(activeFile);
}
this.fileChanged$.next(activeFileWrapper);
return activeFileWrapper;
this.fileChanged$.next(activeFile);
return activeFile;
}
async getFiles(dossier: Dossier = this.activeDossier, emitEvents = true) {
@ -664,31 +662,30 @@ export class AppStateService {
return dossier?.files ?? [];
}
private _processFiles(dossier: Dossier, files: IFile[], emitEvents: boolean = true) {
private _processFiles(dossier: Dossier, iFiles: IFile[], emitEvents = true) {
const oldFiles = [...dossier.files];
const fileStatusChangedEvent = [];
const fileReanalysedEvent = [];
const fileChangedEvent: File[] = [];
const fileReanalysedEvent: File[] = [];
for (const file of files) {
for (const iFile of iFiles) {
let found = false;
file.dossierTemplateId = dossier.dossierTemplateId;
iFile.dossierTemplateId = dossier.dossierTemplateId;
for (const oldFile of oldFiles) {
if (oldFile.fileId === file.fileId) {
if (oldFile.fileId === iFile.fileId) {
// emit when analysis count changed
const fileStatusWrapper = new File(
file,
this._userService.getNameForId(file.currentReviewer),
this.getFileAttributeConfig(file.dossierTemplateId)
const file = new File(
iFile,
this._userService.getNameForId(iFile.currentReviewer),
this.getFileAttributeConfig(iFile.dossierTemplateId)
);
fileStatusWrapper.lastOpened =
fileStatusWrapper.fileId === this._userPreferenceService.getLastOpenedFileForDossier(dossier.id);
if (JSON.stringify(oldFile) !== JSON.stringify(fileStatusWrapper)) {
fileStatusChangedEvent.push(fileStatusWrapper);
file.lastOpened = file.fileId === this._userPreferenceService.getLastOpenedFileForDossier(dossier.id);
if (JSON.stringify(oldFile) !== JSON.stringify(file)) {
fileChangedEvent.push(file);
}
if (oldFile.lastProcessed !== file.lastProcessed) {
fileReanalysedEvent.push(fileStatusWrapper);
if (oldFile.lastProcessed !== iFile.lastProcessed) {
fileReanalysedEvent.push(file);
}
found = true;
break;
@ -696,31 +693,31 @@ export class AppStateService {
}
// emit for new file
if (!found) {
const fsw = new File(
file,
this._userService.getNameForId(file.currentReviewer),
this.getFileAttributeConfig(file.dossierTemplateId)
const file = new File(
iFile,
this._userService.getNameForId(iFile.currentReviewer),
this.getFileAttributeConfig(iFile.dossierTemplateId)
);
fileStatusChangedEvent.push(fsw);
fileChangedEvent.push(file);
}
}
dossier.files = files.map(
file =>
new File(file, this._userService.getNameForId(file.currentReviewer), this.getFileAttributeConfig(file.dossierTemplateId))
dossier.files = iFiles.map(
iFile =>
new File(iFile, this._userService.getNameForId(iFile.currentReviewer), this.getFileAttributeConfig(iFile.dossierTemplateId))
);
this._computeStats();
if (emitEvents) {
fileReanalysedEvent.forEach(file => this.fileReanalysed$.next(file));
fileStatusChangedEvent.forEach(file => this.fileChanged$.next(file));
fileChangedEvent.forEach(file => this.fileChanged$.next(file));
}
const lastOpenedFileId = this._userPreferenceService.getLastOpenedFileForDossier(dossier.id);
dossier.files.forEach(file => (file.lastOpened = file.fileId === lastOpenedFileId));
return files;
return iFiles;
}
private _computeStats() {