- updated dossier dictionary entries to not be editable when there is no owner set;

- updated members selection list to appear only after the owner is set and saved;
This commit is contained in:
Valentin Mihai 2022-02-08 13:24:36 +02:00
parent f4f02bac87
commit 373cc241c9
3 changed files with 22 additions and 8 deletions

View File

@ -57,7 +57,7 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa
async ngOnInit() {
this._loadingService.start();
this.canEdit = this._permissionsService.isDossierMember(this.dossier);
this.canEdit = this._permissionsService.canEditDossier(this.dossier);
await this._updateDossierDictionary();
this.form = this._getForm();
this._loadingService.stop();

View File

@ -15,7 +15,7 @@
<redaction-team-members
(remove)="toggleSelected($event)"
[canAdd]="false"
[canRemove]="!disabled"
[canRemove]="hasOwner"
[dossierId]="dossier.dossierId"
[largeSpacing]="true"
[memberIds]="selectedApproversList"
@ -29,7 +29,7 @@
<redaction-team-members
(remove)="toggleSelected($event)"
[canAdd]="false"
[canRemove]="!disabled"
[canRemove]="hasOwner"
[dossierId]="dossier.dossierId"
[largeSpacing]="true"
[memberIds]="selectedReviewers$ | async"
@ -42,7 +42,7 @@
<div class="info mt-4">{{ 'assign-dossier-owner.dialog.no-reviewers' | translate }}</div>
</ng-container>
<ng-container *ngIf="!disabled">
<ng-container *ngIf="hasOwner">
<iqser-input-with-action
(valueChange)="setMembersSelectOptions($event)"
[(value)]="searchQuery"

View File

@ -54,6 +54,10 @@ export class EditDossierTeamComponent extends AutoUnsubscribe implements EditDos
return !this.userService.currentUser.isManager || !this.form.get('owner').value;
}
get hasOwner() {
return !!this.dossier.ownerId;
}
get changed() {
if (this.dossier.ownerId !== this.selectedOwnerId) {
return true;
@ -72,6 +76,14 @@ export class EditDossierTeamComponent extends AutoUnsubscribe implements EditDos
}
async save(): EditDossierSaveResult {
if (!this.hasOwner) {
const owner = this.form.get('owner').value;
if (!this.isApprover(owner)) {
this.toggleApprover(owner);
}
this._updateLists();
}
const dossier = {
...this.dossier,
memberIds: this.selectedMembersList,
@ -160,11 +172,13 @@ export class EditDossierTeamComponent extends AutoUnsubscribe implements EditDos
members: [[...this.dossier?.memberIds]],
});
this.addSubscription = this.form.get('owner').valueChanges.subscribe(owner => {
if (!this.isApprover(owner)) {
this.toggleApprover(owner);
if (this.hasOwner) {
if (!this.isApprover(owner)) {
this.toggleApprover(owner);
}
// If it is an approver, it is already a member, no need to check
this._updateLists();
}
// If it is an approver, it is already a member, no need to check
this._updateLists();
});
this._updateLists();
}