diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts index 2a0c7bcaa..dd28f23d7 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.ts @@ -175,6 +175,7 @@ export class EditDossierDialogComponent extends BaseDialogComponent implements A key: 'members', title: _('edit-dossier-dialog.nav-items.team-members'), sideNavTitle: _('edit-dossier-dialog.nav-items.members'), + readonly: !this._permissionsService.canEditTeamMembers(), }, { key: 'dossierAttributes', diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-team/edit-dossier-team.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-team/edit-dossier-team.component.html index f5e2ab2ff..ae87fa93e 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-team/edit-dossier-team.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-team/edit-dossier-team.component.html @@ -15,7 +15,7 @@
-
- + [id]="'round-checkbox-' + index" - > - + +
- +
diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-team/edit-dossier-team.component.scss b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-team/edit-dossier-team.component.scss index 0458946c1..ba22b9f9f 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-team/edit-dossier-team.component.scss +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-team/edit-dossier-team.component.scss @@ -24,7 +24,6 @@ redaction-team-members { margin-bottom: 2px; padding: 3px 5px; border-radius: 4px; - cursor: pointer; position: relative; transition: background-color ease-in-out 0.1s; width: 560px; @@ -50,6 +49,10 @@ redaction-team-members { } } + &:not(.disabled) { + cursor: pointer; + } + &.selected, &:hover { background-color: variables.$grey-2; diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-team/edit-dossier-team.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-team/edit-dossier-team.component.ts index 40c711cde..ec4ca3204 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-team/edit-dossier-team.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-team/edit-dossier-team.component.ts @@ -7,6 +7,7 @@ import { EditDossierSaveResult, EditDossierSectionInterface } from '../edit-doss import { BehaviorSubject, firstValueFrom } from 'rxjs'; import { PermissionsService } from '@services/permissions.service'; import { DossiersService } from '@services/dossiers/dossiers.service'; +import { compareLists } from '@utils/functions'; @Component({ selector: 'redaction-edit-dossier-team', @@ -51,7 +52,7 @@ export class EditDossierTeamComponent extends AutoUnsubscribe implements EditDos } get disabled() { - return !this.userService.currentUser.isManager || !this.form.get('owner').value; + return !this._permissionsService.canEditTeamMembers() || !this.form.get('owner').value; } get hasOwner() { @@ -68,18 +69,14 @@ export class EditDossierTeamComponent extends AutoUnsubscribe implements EditDos const initialApprovers = [...this.dossier.approverIds].sort(); const currentApprovers = this.selectedApproversList.sort(); - return this._compareLists(initialMembers, currentMembers) || this._compareLists(initialApprovers, currentApprovers); - } - - isOwner(userId: string): boolean { - return userId === this.selectedOwnerId; + return compareLists(initialMembers, currentMembers) || compareLists(initialApprovers, currentApprovers); } async save(): EditDossierSaveResult { if (!this.hasOwner) { - const owner = this.form.get('owner').value; - if (!this.isApprover(owner)) { - this.toggleApprover(owner); + const ownerId: string = this.form.get('owner').value; + if (!this.isApprover(ownerId)) { + this.toggleApprover(ownerId); } this._updateLists(); } @@ -106,10 +103,6 @@ export class EditDossierTeamComponent extends AutoUnsubscribe implements EditDos toggleApprover(userId: string, $event?: MouseEvent) { $event?.stopPropagation(); - if (this.isOwner(userId) && this.isApprover(userId)) { - return; - } - if (this.isApprover(userId)) { this.selectedApproversList.splice(this.selectedApproversList.indexOf(userId), 1); } else { @@ -159,18 +152,18 @@ export class EditDossierTeamComponent extends AutoUnsubscribe implements EditDos this.form = this._formBuilder.group({ owner: [ { - value: this.dossier?.ownerId, - disabled: !this.userService.currentUser.isManager, + value: this.dossier.ownerId, + disabled: !this._permissionsService.canEditTeamMembers(), }, Validators.required, ], - approvers: [[...this.dossier?.approverIds]], - members: [[...this.dossier?.memberIds]], + approvers: [[...this.dossier.approverIds]], + members: [[...this.dossier.memberIds]], }); - this.addSubscription = this.form.get('owner').valueChanges.subscribe(owner => { + this.addSubscription = this.form.get('owner').valueChanges.subscribe((ownerId: string) => { if (this.hasOwner) { - if (!this.isApprover(owner)) { - this.toggleApprover(owner); + if (!this.isApprover(ownerId)) { + this.toggleApprover(ownerId); } // If it is an approver, it is already a member, no need to check this._updateLists(); @@ -183,18 +176,4 @@ export class EditDossierTeamComponent extends AutoUnsubscribe implements EditDos this._setSelectedReviewersList(); this.setMembersSelectOptions(); } - - private _compareLists(l1: string[], l2: string[]) { - if (l1.length !== l2.length) { - return true; - } - - for (let idx = 0; idx < l1.length; ++idx) { - if (l1[idx] !== l2[idx]) { - return true; - } - } - - return false; - } } diff --git a/apps/red-ui/src/app/modules/file-preview/components/pdf-viewer/pdf-viewer.component.html b/apps/red-ui/src/app/modules/file-preview/components/pdf-viewer/pdf-viewer.component.html index c670ce353..083b15513 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/pdf-viewer/pdf-viewer.component.html +++ b/apps/red-ui/src/app/modules/file-preview/components/pdf-viewer/pdf-viewer.component.html @@ -4,16 +4,16 @@ -