DM-333: Changes in Dossier dialog.

This commit is contained in:
Nicoleta Panaghiu 2023-07-24 15:11:42 +03:00
parent 62dc457476
commit b84d808367
7 changed files with 41 additions and 30 deletions

View File

@ -33,7 +33,7 @@
<div class="all-caps-label" translate="dossier-details.members"></div>
<redaction-team-members
[dossierId]="ctx.dossier?.dossierId"
[memberIds]="ctx.dossier?.memberIds"
[memberIds]="!isDocumine ? ctx.dossier?.memberIds : ctx.dossier?.approverIds"
[perLine]="9"
></redaction-team-members>
</div>

View File

@ -13,7 +13,7 @@ import {
} from '@red/domain';
import { TranslateChartService } from '@services/translate-chart.service';
import { UserService } from '@users/user.service';
import { ProgressBarConfigModel, Toaster } from '@iqser/common-ui';
import { getConfig, ProgressBarConfigModel, Toaster } from '@iqser/common-ui';
import { workflowFileStatusTranslations } from '@translations/file-status-translations';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { combineLatestWith, firstValueFrom } from 'rxjs';
@ -49,6 +49,7 @@ export class DossierDetailsComponent extends ContextComponent<DossierDetailsCont
readonly collapseTooltip = _('dossier-details.collapse');
readonly expandTooltip = _('dossier-details.expand');
chartConfig: DonutChartConfig[] = [];
readonly isDocumine = getConfig().IS_DOCUMINE;
constructor(
private readonly _toaster: Toaster,

View File

@ -7,15 +7,17 @@
<div class="dialog-content">
<iqser-side-nav [title]="'edit-dossier-dialog.side-nav-title' | translate">
<div
(click)="changeTab(item.key)"
*ngFor="let item of navItems"
[class.active]="item.key === activeNav"
[attr.help-mode-key]="item.helpModeKey"
class="item"
>
{{ item.sideNavTitle || item.title | translate }}
<mat-icon *ngIf="item.readonly" svgIcon="red:read-only"></mat-icon>
<div *ngFor="let item of navItems">
<div
*ngIf="!item.hide"
(click)="changeTab(item.key)"
[class.active]="item.key === activeNav"
[attr.help-mode-key]="item.helpModeKey"
class="item"
>
{{ item.sideNavTitle || item.title | translate }}
<mat-icon *ngIf="item.readonly" svgIcon="red:read-only"></mat-icon>
</div>
</div>
</iqser-side-nav>

View File

@ -17,6 +17,7 @@ import { DossiersService } from '@services/dossiers/dossiers.service';
import { dossiersServiceProvider } from '@services/entity-services/dossiers.service.provider';
import { Roles } from '@users/roles';
import { getCurrentUser } from '@iqser/common-ui/lib/users';
import { ConfigService } from '@services/config.service';
type Section = 'dossierInfo' | 'downloadPackage' | 'dossierDictionary' | 'members' | 'dossierAttributes';
@ -26,6 +27,7 @@ interface NavItem {
sideNavTitle?: string;
readonly?: boolean;
helpModeKey?: string;
hide?: boolean;
}
@Component({
@ -57,6 +59,7 @@ export class EditDossierDialogComponent extends BaseDialogComponent implements A
dossierId: string;
section?: Section;
},
readonly configService: ConfigService,
) {
super(_dialogRef, true);
this.dossier$ = this._dossiersService.getEntityChanged$(_data.dossierId).pipe(
@ -172,6 +175,7 @@ export class EditDossierDialogComponent extends BaseDialogComponent implements A
title: _('edit-dossier-dialog.nav-items.dossier-dictionary'),
readonly: !this._permissionsService.canEditDossierDictionary(this._dossier),
helpModeKey: 'edit_dossier_dossier_dictionary_DIALOG',
hide: this.configService.values.IS_DOCUMINE,
},
{
key: 'members',

View File

@ -26,22 +26,24 @@
</ng-container>
</ng-container>
<div class="all-caps-label mt-16" id="reviewersLabel" translate="assign-dossier-owner.dialog.reviewers"></div>
<div *ngIf="!isDocumine">
<div class="all-caps-label mt-16" id="reviewersLabel" translate="assign-dossier-owner.dialog.reviewers"></div>
<redaction-team-members
(remove)="toggleSelected($event)"
[canAdd]="false"
[canRemove]="hasOwner && !disabled"
[dossierId]="dossier.id"
[largeSpacing]="true"
[memberIds]="selectedReviewers$ | async"
[perLine]="13"
[unremovableMembers]="[this.form.value.owner]"
></redaction-team-members>
<redaction-team-members
(remove)="toggleSelected($event)"
[canAdd]="false"
[canRemove]="hasOwner && !disabled"
[dossierId]="dossier.id"
[largeSpacing]="true"
[memberIds]="selectedReviewers$ | async"
[perLine]="13"
[unremovableMembers]="[this.form.value.owner]"
></redaction-team-members>
<ng-container *ngIf="!(selectedReviewers$ | async)?.length">
<div class="info mt-4" id="no-reviewers-label">{{ 'assign-dossier-owner.dialog.no-reviewers' | translate }}</div>
</ng-container>
<ng-container *ngIf="!(selectedReviewers$ | async)?.length">
<div class="info mt-4" id="no-reviewers-label">{{ 'assign-dossier-owner.dialog.no-reviewers' | translate }}</div>
</ng-container>
</div>
<ng-container *ngIf="hasOwner && !disabled">
<iqser-input-with-action
@ -54,15 +56,15 @@
<div class="members-list">
<div
(click)="!disabled && toggleSelected(userId)"
(click)="!disabled && (!isDocumine ? toggleSelected(userId) : toggleApprover(userId))"
*ngFor="let userId of membersSelectOptions; let index = index"
[class.disabled]="disabled"
[class.selected]="isMemberSelected(userId)"
[class.selected]="!isDocumine ? isMemberSelected(userId) : isApprover(userId)"
[id]="'member-' + index"
>
<iqser-initials-avatar [user]="userId" [withName]="true" size="large"></iqser-initials-avatar>
<div class="actions">
<div class="actions" *ngIf="!isDocumine">
<div
(click)="!disabled && toggleApprover(userId)"
*ngIf="!disabled || isApprover(userId)"

View File

@ -10,6 +10,7 @@ import { compareLists } from '@utils/functions';
import { FilesService } from '@services/files/files.service';
import { map } from 'rxjs/operators';
import { Debounce } from '@iqser/common-ui/lib/utils';
import { getConfig } from '@iqser/common-ui';
@Component({
selector: 'redaction-edit-dossier-team',
@ -30,6 +31,7 @@ export class EditDossierTeamComponent implements EditDossierSectionInterface, On
readonly ownersSelectOptions = this.#userService.all.filter(u => u.isManager).map(m => m.id);
readonly selectedReviewers$ = this.#formValue$.pipe(map(v => v.members.filter(m => !v.approvers.includes(m))));
readonly selectedApprovers$ = this.#formValue$.pipe(map(v => v.approvers));
readonly isDocumine = getConfig().IS_DOCUMINE;
get valid(): boolean {
return this.form.valid;
@ -94,7 +96,7 @@ export class EditDossierTeamComponent implements EditDossierSectionInterface, On
approversControl.patchValue(currentApprovers.filter(a => a !== userId));
} else {
approversControl.patchValue([...currentApprovers, userId]);
if (!this.isMemberSelected(userId)) {
if (!this.isMemberSelected(userId) && !this.isDocumine) {
this.toggleSelected(userId);
}
}

View File

@ -447,7 +447,7 @@
"assign-dossier-owner": {
"dialog": {
"approver": "Approver",
"approvers": "Approvers",
"approvers": "Dossier Members",
"make-approver": "Make Approver",
"no-reviewers": "No members with \"review only\" permission.",
"reviewers": "Reviewers",