- split check for can disable or enable auto analysis in two different methods
- split request method for toggle auto analysis in two methods, one for a single file and another for bulk
This commit is contained in:
parent
a33be9aadc
commit
fb3cc7fc5b
@ -165,9 +165,9 @@ export class DossierOverviewBulkActionsComponent implements OnChanges {
|
|||||||
|
|
||||||
this.canReanalyse = this._permissionsService.canReanalyseFile(this.selectedFiles);
|
this.canReanalyse = this._permissionsService.canReanalyseFile(this.selectedFiles);
|
||||||
|
|
||||||
this.canDisableAutoAnalysis = this._permissionsService.canEnableDisableAutoAnalysis(this.selectedFiles, 'disable');
|
this.canDisableAutoAnalysis = this._permissionsService.canDisableAutoAnalysis(this.selectedFiles);
|
||||||
|
|
||||||
this.canEnableAutoAnalysis = this._permissionsService.canEnableDisableAutoAnalysis(this.selectedFiles, 'enable');
|
this.canEnableAutoAnalysis = this._permissionsService.canEnableAutoAnalysis(this.selectedFiles);
|
||||||
|
|
||||||
this.canOcr = this.selectedFiles.reduce((acc, file) => acc && file.canBeOCRed, true);
|
this.canOcr = this.selectedFiles.reduce((acc, file) => acc && file.canBeOCRed, true);
|
||||||
|
|
||||||
|
|||||||
@ -88,7 +88,7 @@ export class BulkActionsService {
|
|||||||
async toggleAutomaticAnalysis(files: File[], excluded?: boolean) {
|
async toggleAutomaticAnalysis(files: File[], excluded?: boolean) {
|
||||||
this._loadingService.start();
|
this._loadingService.start();
|
||||||
const fileIds = files.map(file => file.fileId);
|
const fileIds = files.map(file => file.fileId);
|
||||||
await firstValueFrom(this._reanalysisService.toggleAutomaticAnalysis(files[0].dossierId, fileIds, excluded));
|
await firstValueFrom(this._reanalysisService.toggleAutomaticAnalysisBulk(files[0].dossierId, fileIds, excluded));
|
||||||
this._loadingService.stop();
|
this._loadingService.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -326,7 +326,7 @@ export class FileActionsComponent extends AutoUnsubscribe implements OnDestroy,
|
|||||||
await firstValueFrom(
|
await firstValueFrom(
|
||||||
this._reanalysisService.toggleAutomaticAnalysis(
|
this._reanalysisService.toggleAutomaticAnalysis(
|
||||||
this.file.dossierId,
|
this.file.dossierId,
|
||||||
[this.file.fileId],
|
this.file.fileId,
|
||||||
!this.file.excludedFromAutomaticAnalysis,
|
!this.file.excludedFromAutomaticAnalysis,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -376,8 +376,8 @@ export class FileActionsComponent extends AutoUnsubscribe implements OnDestroy,
|
|||||||
this.showDelete = this._permissionsService.canDeleteFile(this.file);
|
this.showDelete = this._permissionsService.canDeleteFile(this.file);
|
||||||
this.showOCR = this.file.canBeOCRed;
|
this.showOCR = this.file.canBeOCRed;
|
||||||
this.canReanalyse = this._permissionsService.canReanalyseFile(this.file);
|
this.canReanalyse = this._permissionsService.canReanalyseFile(this.file);
|
||||||
this.canDisableAutoAnalysis = this._permissionsService.canEnableDisableAutoAnalysis(this.file, 'disable');
|
this.canDisableAutoAnalysis = this._permissionsService.canDisableAutoAnalysis([this.file]);
|
||||||
this.canEnableAutoAnalysis = this._permissionsService.canEnableDisableAutoAnalysis(this.file, 'enable');
|
this.canEnableAutoAnalysis = this._permissionsService.canEnableAutoAnalysis([this.file]);
|
||||||
|
|
||||||
this.showStatusBar = !this.file.isError && !this.file.isPending && this.isDossierOverviewList;
|
this.showStatusBar = !this.file.isError && !this.file.isPending && this.isDossierOverviewList;
|
||||||
|
|
||||||
|
|||||||
@ -32,9 +32,12 @@ export class PermissionsService {
|
|||||||
return files.reduce((acc, _file) => this._canReanalyseFile(_file) && acc, true);
|
return files.reduce((acc, _file) => this._canReanalyseFile(_file) && acc, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
canEnableDisableAutoAnalysis(file: File | File[], value: 'enable' | 'disable'): boolean {
|
canEnableAutoAnalysis(files: File[]): boolean {
|
||||||
const files = file instanceof File ? [file] : file;
|
return files.reduce((acc, _file) => this._canEnableAutoAnalysis(_file) && acc, true);
|
||||||
return files.reduce((acc, _file) => this._canEnableDisableAutoAnalysis(_file, value) && acc, true);
|
}
|
||||||
|
|
||||||
|
canDisableAutoAnalysis(files: File[]): boolean {
|
||||||
|
return files.reduce((acc, _file) => this._canDisableAutoAnalysis(_file) && acc, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
isFileAssignee(file: File): boolean {
|
isFileAssignee(file: File): boolean {
|
||||||
@ -163,9 +166,12 @@ export class PermissionsService {
|
|||||||
return this.isReviewerOrApprover(file) || file.isNew || (file.isError && file.isNew);
|
return this.isReviewerOrApprover(file) || file.isNew || (file.isError && file.isNew);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _canEnableDisableAutoAnalysis(file: File, value: 'enable' | 'disable'): boolean {
|
private _canEnableAutoAnalysis(file: File): boolean {
|
||||||
const enableOrDisable = value === 'enable' ? file.excludedFromAutomaticAnalysis : !file.excludedFromAutomaticAnalysis;
|
return file.excludedFromAutomaticAnalysis && file.assignee === this._userService.currentUser.id;
|
||||||
return enableOrDisable && file.assignee === this._userService.currentUser.id;
|
}
|
||||||
|
|
||||||
|
private _canDisableAutoAnalysis(file: File): boolean {
|
||||||
|
return !file.excludedFromAutomaticAnalysis && file.assignee === this._userService.currentUser.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _canAssignToSelf(file: File, dossier: Dossier): boolean {
|
private _canAssignToSelf(file: File, dossier: Dossier): boolean {
|
||||||
|
|||||||
@ -53,13 +53,19 @@ export class ReanalysisService extends GenericService<unknown> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Validate()
|
@Validate()
|
||||||
toggleAutomaticAnalysis(@RequiredParam() dossierId: string, @RequiredParam() fileIds: string[], excluded?: boolean) {
|
toggleAutomaticAnalysis(@RequiredParam() dossierId: string, @RequiredParam() fileId: string, excluded?: boolean) {
|
||||||
const queryParams: QueryParam[] = [{ key: 'excluded', value: !!excluded }];
|
const queryParams: QueryParam[] = [{ key: 'excluded', value: !!excluded }];
|
||||||
return this._post(
|
return this._post({}, `toggle-automatic-analysis/${dossierId}/${fileId}`, queryParams).pipe(
|
||||||
fileIds.length > 1 ? fileIds : {},
|
switchMap(() => this._filesService.loadAll(dossierId)),
|
||||||
`toggle-automatic-analysis/${dossierId}/${fileIds.length > 1 ? 'bulk' : fileIds[0]}`,
|
);
|
||||||
queryParams,
|
}
|
||||||
).pipe(switchMap(() => this._filesService.loadAll(dossierId)));
|
|
||||||
|
@Validate()
|
||||||
|
toggleAutomaticAnalysisBulk(@RequiredParam() dossierId: string, @RequiredParam() fileIds: string[], excluded?: boolean) {
|
||||||
|
const queryParams: QueryParam[] = [{ key: 'excluded', value: !!excluded }];
|
||||||
|
return this._post(fileIds, 'toggle-automatic-analysis/bulk', queryParams).pipe(
|
||||||
|
switchMap(() => this._filesService.loadAll(dossierId)),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Validate()
|
@Validate()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user