DM-333: Changes in Dossier dialog.
This commit is contained in:
parent
62dc457476
commit
b84d808367
@ -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>
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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)"
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user