Assign file reviewer updates
This commit is contained in:
parent
7bca8aba3e
commit
9981bedce5
@ -26,31 +26,77 @@
|
||||
[small]="true"
|
||||
>
|
||||
</redaction-status-bar>
|
||||
<div class="all-caps-label mr-16 ml-8">{{ appStateService.activeFile.status.toLowerCase().replace('_', '-') | translate }}</div>
|
||||
<redaction-initials-avatar
|
||||
[userId]="appStateService.activeFile.currentReviewer"
|
||||
[withName]="!!appStateService.activeFile.currentReviewer"
|
||||
></redaction-initials-avatar>
|
||||
<div
|
||||
(click)="assignReviewer()"
|
||||
*ngIf="!appStateService.activeFile.currentReviewer && permissionsService.canAssignReviewer(appStateService.activeFile)"
|
||||
class="assign-reviewer pointer"
|
||||
translate="file-preview.assign-reviewer"
|
||||
></div>
|
||||
<div class="all-caps-label mr-16 ml-8">
|
||||
{{ appStateService.activeFile.status.toLowerCase().replace('_', '-') | translate }}
|
||||
<span *ngIf="appStateService.activeFile.status === 'UNDER_REVIEW' || appStateService.activeFile.status === 'UNDER_APPROVAL'"
|
||||
>{{ 'by' | translate }}:</span
|
||||
>
|
||||
</div>
|
||||
|
||||
<ng-container *ngIf="!editingReviewer">
|
||||
<redaction-initials-avatar
|
||||
*ngIf="!editingReviewer"
|
||||
[userId]="appStateService.activeFile.currentReviewer"
|
||||
[withName]="!!appStateService.activeFile.currentReviewer"
|
||||
></redaction-initials-avatar>
|
||||
<div
|
||||
(click)="editingReviewer = true"
|
||||
*ngIf="!editingReviewer && !appStateService.activeFile.currentReviewer && permissionsService.canAssignReviewer(appStateService.activeFile)"
|
||||
class="assign-reviewer pointer"
|
||||
translate="file-preview.assign-reviewer"
|
||||
></div>
|
||||
</ng-container>
|
||||
|
||||
<ng-container *ngIf="editingReviewer">
|
||||
<form [formGroup]="reviewerForm">
|
||||
<div class="red-input-group w-250">
|
||||
<mat-select formControlName="reviewer">
|
||||
<mat-select-trigger>
|
||||
<redaction-initials-avatar
|
||||
size="small"
|
||||
[userId]="reviewerForm.get('reviewer').value"
|
||||
[withName]="true"
|
||||
></redaction-initials-avatar>
|
||||
</mat-select-trigger>
|
||||
<mat-option *ngFor="let reviewerId of this.appStateService.activeProject.memberIds" [value]="reviewerId">
|
||||
<redaction-initials-avatar size="small" [userId]="reviewerId" [withName]="true"></redaction-initials-avatar>
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</div>
|
||||
</form>
|
||||
</ng-container>
|
||||
|
||||
<div *ngIf="permissionsService.canAssignReviewer(appStateService.activeFile)" class="assign-actions-wrapper">
|
||||
<redaction-circle-button
|
||||
(action)="assignReviewer()"
|
||||
*ngIf="permissionsService.canAssignReviewer(appStateService.activeFile) && appStateService.activeFile.currentReviewer"
|
||||
(action)="editingReviewer = true"
|
||||
*ngIf="!editingReviewer && permissionsService.canAssignReviewer(appStateService.activeFile) && appStateService.activeFile.currentReviewer"
|
||||
icon="red:edit"
|
||||
tooltip="file-preview.assign-reviewer"
|
||||
tooltipPosition="below"
|
||||
>
|
||||
</redaction-circle-button>
|
||||
|
||||
<redaction-circle-button
|
||||
(action)="assignReviewer()"
|
||||
*ngIf="editingReviewer"
|
||||
icon="red:check-alt"
|
||||
tooltip="file-preview.save-assign-reviewer"
|
||||
tooltipPosition="below"
|
||||
>
|
||||
</redaction-circle-button>
|
||||
|
||||
<redaction-circle-button
|
||||
(action)="editingReviewer = false; resetReviewerForm()"
|
||||
*ngIf="editingReviewer"
|
||||
icon="red:close"
|
||||
tooltip="file-preview.cancel-assign-reviewer"
|
||||
tooltipPosition="below"
|
||||
>
|
||||
</redaction-circle-button>
|
||||
|
||||
<redaction-circle-button
|
||||
(action)="assignToMe()"
|
||||
*ngIf="permissionsService.canAssignReviewer(appStateService.activeFile) && !permissionsService.isFileReviewer()"
|
||||
*ngIf="!editingReviewer && permissionsService.canAssignReviewer(appStateService.activeFile) && !permissionsService.isFileReviewer()"
|
||||
icon="red:assign-me"
|
||||
tooltip="file-preview.assign-me"
|
||||
tooltipPosition="below"
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
min-width: fit-content;
|
||||
}
|
||||
|
||||
.left-container {
|
||||
|
||||
@ -25,6 +25,9 @@ import { PermissionsService } from '../../../common/service/permissions.service'
|
||||
import { Subscription, timer } from 'rxjs';
|
||||
import { processFilters } from '../../../common/filter/utils/filter-utils';
|
||||
import { UserPreferenceService } from '../../../common/service/user-preference.service';
|
||||
import { UserService } from '../../../user/user.service';
|
||||
import { FormBuilder, FormGroup } from '@angular/forms';
|
||||
import { StatusControllerService } from '@redaction/red-ui-http';
|
||||
|
||||
const KEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'f', 'F'];
|
||||
|
||||
@ -39,6 +42,8 @@ export class FilePreviewScreenComponent implements OnInit, OnDestroy {
|
||||
private instance: WebViewerInstance;
|
||||
private _dialogRef: MatDialogRef<any>;
|
||||
public fullScreen = false;
|
||||
public editingReviewer = false;
|
||||
public reviewerForm: FormGroup;
|
||||
|
||||
@ViewChild(PdfViewerComponent) private _viewerComponent: PdfViewerComponent;
|
||||
@ViewChild('annotationsElement') private _annotationsElement: ElementRef;
|
||||
@ -61,6 +66,7 @@ export class FilePreviewScreenComponent implements OnInit, OnDestroy {
|
||||
public readonly appStateService: AppStateService,
|
||||
public readonly permissionsService: PermissionsService,
|
||||
public readonly userPreferenceService: UserPreferenceService,
|
||||
public readonly userService: UserService,
|
||||
private readonly _changeDetectorRef: ChangeDetectorRef,
|
||||
private readonly _activatedRoute: ActivatedRoute,
|
||||
private readonly _dialogService: DialogService,
|
||||
@ -72,12 +78,18 @@ export class FilePreviewScreenComponent implements OnInit, OnDestroy {
|
||||
private readonly _fileActionService: FileActionService,
|
||||
private readonly _manualAnnotationService: ManualAnnotationService,
|
||||
private readonly _fileDownloadService: FileDownloadService,
|
||||
private readonly _formBuilder: FormBuilder,
|
||||
private readonly _statusControllerService: StatusControllerService,
|
||||
private ngZone: NgZone
|
||||
) {
|
||||
this._activatedRoute.params.subscribe((params) => {
|
||||
this.projectId = params.projectId;
|
||||
this.fileId = params.fileId;
|
||||
this.appStateService.activateFile(this.projectId, this.fileId);
|
||||
|
||||
this.reviewerForm = this._formBuilder.group({
|
||||
reviewer: [this.appStateService.activeFile.currentReviewer]
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@ -499,16 +511,31 @@ export class FilePreviewScreenComponent implements OnInit, OnDestroy {
|
||||
return this.fileData ? (this.redactedView ? this.fileData.redactedFileData : this.fileData.annotatedFileData) : null;
|
||||
}
|
||||
|
||||
public assignReviewer() {
|
||||
this._fileActionService.assignProjectReviewer(this.fileData.fileStatus, async () => {
|
||||
public async assignToMe() {
|
||||
await this._fileActionService.assignToMe(this.fileData.fileStatus, async () => {
|
||||
await this.appStateService.reloadActiveFile();
|
||||
this.resetReviewerForm();
|
||||
this._updateCanPerformActions();
|
||||
});
|
||||
}
|
||||
|
||||
public async assignToMe() {
|
||||
await this._fileActionService.assignToMe(this.fileData.fileStatus, async () => {
|
||||
this._updateCanPerformActions();
|
||||
});
|
||||
public assignReviewer() {
|
||||
const reviewerId = this.reviewerForm.get('reviewer').value;
|
||||
|
||||
this._statusControllerService
|
||||
.assignProjectOwner(this.fileData.fileStatus.projectId, this.fileData.fileStatus.fileId, reviewerId)
|
||||
.subscribe(async () => {
|
||||
this._notificationService.showToastNotification(
|
||||
'Successfully assigned ' + this.userService.getNameForId(reviewerId) + ' to file: ' + this.fileData.fileStatus.filename
|
||||
);
|
||||
await this.appStateService.reloadActiveFile();
|
||||
this._updateCanPerformActions();
|
||||
this.editingReviewer = false;
|
||||
});
|
||||
}
|
||||
|
||||
public resetReviewerForm() {
|
||||
this.reviewerForm.setValue({ reviewer: this.appStateService.activeFile.currentReviewer });
|
||||
}
|
||||
|
||||
pageSelectedByClick($event: number) {
|
||||
|
||||
@ -274,6 +274,8 @@
|
||||
"reviewer": "Assigned to",
|
||||
"unassigned": "Unassigned",
|
||||
"assign-reviewer": "Assign Reviewer",
|
||||
"cancel-assign-reviewer": "Cancel",
|
||||
"save-assign-reviewer": "Save",
|
||||
"assign-me": "Assign to me",
|
||||
"last-reviewer": "Last Reviewed by:",
|
||||
"fullscreen": "Full Screen (F)",
|
||||
@ -402,6 +404,7 @@
|
||||
"unassigned": "Unassigned",
|
||||
"under-review": "Under Review",
|
||||
"under-approval": "Under Approval",
|
||||
"by": "by",
|
||||
"efsa": "EFSA Approval",
|
||||
"finished": "Finished",
|
||||
"approved": "Approved",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user