From 381143c9a55b295fc79e766148cc7ccacd987d04 Mon Sep 17 00:00:00 2001 From: Timo Date: Mon, 21 Dec 2020 23:02:33 +0200 Subject: [PATCH] bulk assing reviewer --- .../assign-owner-dialog.component.ts | 11 +++--- .../file/service/file-action.service.ts | 34 ++++++++++++++----- 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/apps/red-ui/src/app/dialogs/assign-owner-dialog/assign-owner-dialog.component.ts b/apps/red-ui/src/app/dialogs/assign-owner-dialog/assign-owner-dialog.component.ts index ad3129b37..ea85626a8 100644 --- a/apps/red-ui/src/app/dialogs/assign-owner-dialog/assign-owner-dialog.component.ts +++ b/apps/red-ui/src/app/dialogs/assign-owner-dialog/assign-owner-dialog.component.ts @@ -88,11 +88,14 @@ export class AssignOwnerDialogComponent { if (this.data.type === 'file') { const reviewerId = this.selectedSingleUser; - const promises = this.data.files.map((file) => - this._statusControllerService.setFileReviewer(this._appStateService.activeProjectId, file.fileId, reviewerId).toPromise() - ); + await this._statusControllerService + .setFileReviewerForList( + this.data.files.map((f) => f.fileId), + this._appStateService.activeProjectId, + reviewerId + ) + .toPromise(); - await Promise.all(promises); for (const file of this.data.files) { file.currentReviewer = reviewerId; file.reviewerName = this.userService.getNameForId(reviewerId); diff --git a/apps/red-ui/src/app/screens/file/service/file-action.service.ts b/apps/red-ui/src/app/screens/file/service/file-action.service.ts index f7c326256..45dde39a7 100644 --- a/apps/red-ui/src/app/screens/file/service/file-action.service.ts +++ b/apps/red-ui/src/app/screens/file/service/file-action.service.ts @@ -2,10 +2,10 @@ import { Injectable } from '@angular/core'; import { DialogService } from '../../../dialogs/dialog.service'; import { AppStateService } from '../../../state/app-state.service'; import { UserService } from '../../../user/user.service'; -import { ReanalysisControllerService, StatusControllerService } from '@redaction/red-ui-http'; -import { FileStatus } from '@redaction/red-ui-http'; +import { FileStatus, ReanalysisControllerService, StatusControllerService } from '@redaction/red-ui-http'; import { FileStatusWrapper } from '../model/file-status.wrapper'; import { PermissionsService } from '../../../common/service/permissions.service'; +import { isArray } from 'rxjs/internal-compatibility'; @Injectable({ providedIn: 'root' @@ -75,15 +75,33 @@ export class FileActionService { } } - setFileUnderApproval(fileStatus: FileStatusWrapper) { - return this._statusControllerService.setStatusUnderApproval(this._appStateService.activeProjectId, fileStatus.fileId); + setFileUnderApproval(fileStatus: FileStatusWrapper | FileStatusWrapper[]) { + if (!isArray(fileStatus)) { + fileStatus = [fileStatus]; + } + return this._statusControllerService.setStatusUnderApprovalForList( + fileStatus.map((f) => f.fileId), + this._appStateService.activeProjectId + ); } - setFileApproved(fileStatus: FileStatusWrapper) { - return this._statusControllerService.setStatusApproved(this._appStateService.activeProjectId, fileStatus.fileId); + setFileApproved(fileStatus: FileStatusWrapper | FileStatusWrapper[]) { + if (!isArray(fileStatus)) { + fileStatus = [fileStatus]; + } + return this._statusControllerService.setStatusApprovedForList( + fileStatus.map((f) => f.fileId), + this._appStateService.activeProjectId + ); } - setFileUnderReview(fileStatus: FileStatusWrapper) { - return this._statusControllerService.setStatusUnderReview(this._appStateService.activeProjectId, fileStatus.fileId); + setFileUnderReview(fileStatus: FileStatusWrapper | FileStatusWrapper[]) { + if (!isArray(fileStatus)) { + fileStatus = [fileStatus]; + } + return this._statusControllerService.setStatusUnderReviewForList( + fileStatus.map((f) => f.fileId), + this._appStateService.activeProjectId + ); } }