From d827ef171a3be9fa9bdbce20049f7f18ad1736e4 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Mon, 20 Mar 2023 00:04:59 +0200 Subject: [PATCH] RED-3800: update confirmation dialog stuff --- .../src/app/guards/can-deactivate.guard.ts | 37 +++++++++--------- .../justifications-dialog.service.ts | 6 +-- .../reports-screen.component.ts | 11 +++--- .../watermarks-listing-screen.component.ts | 7 ++-- .../admin/services/admin-dialog.service.ts | 10 ++--- .../services/bulk-actions.service.ts | 10 ++--- .../view-switch/view-switch.component.ts | 6 +-- .../file-preview-screen.component.ts | 13 ++++--- .../compare-file-input.component.ts | 23 +++++------ .../services/page-rotation.service.ts | 9 +++-- .../file-actions/file-actions.component.ts | 38 +++++++++---------- .../edit-dossier-general-info.component.ts | 12 +++--- .../services/file-assign.service.ts | 6 +-- .../trash/services/trash-dialog.service.ts | 6 +-- .../dossier-templates.service.ts | 3 ++ libs/common-ui | 2 +- 16 files changed, 102 insertions(+), 97 deletions(-) diff --git a/apps/red-ui/src/app/guards/can-deactivate.guard.ts b/apps/red-ui/src/app/guards/can-deactivate.guard.ts index df72bc9c3..f71225068 100644 --- a/apps/red-ui/src/app/guards/can-deactivate.guard.ts +++ b/apps/red-ui/src/app/guards/can-deactivate.guard.ts @@ -1,6 +1,6 @@ import { CanDeactivate } from '@angular/router'; import { Injectable } from '@angular/core'; -import { map, Observable } from 'rxjs'; +import { map } from 'rxjs'; import { ConfirmationDialogService, ConfirmOptions } from '@iqser/common-ui'; export interface ComponentCanDeactivate { @@ -15,23 +15,24 @@ export interface ComponentCanDeactivate { export class PendingChangesGuard implements CanDeactivate { constructor(private _dialogService: ConfirmationDialogService) {} - canDeactivate(component: ComponentCanDeactivate): boolean | Observable { - if (component.changed) { - component.isLeavingPage = true; - - const dialogRef = this._dialogService.openDialog({ disableConfirm: component.valid === false }); - return dialogRef.afterClosed().pipe( - map(result => { - if (result === ConfirmOptions.CONFIRM) { - component.save().then(); - } else { - component.discard?.().then(); - } - component.isLeavingPage = false; - return !!result; - }), - ); + canDeactivate(component: ComponentCanDeactivate) { + if (!component.changed) { + return true; } - return true; + + component.isLeavingPage = true; + + const dialogRef = this._dialogService.open({ disableConfirm: component.valid === false }); + return dialogRef.afterClosed().pipe( + map(result => { + if (result === ConfirmOptions.CONFIRM) { + component.save().then(); + } else { + component.discard?.().then(); + } + component.isLeavingPage = false; + return !!result; + }), + ); } } diff --git a/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-dialog.service.ts b/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-dialog.service.ts index 36563c498..b774bbef6 100644 --- a/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-dialog.service.ts +++ b/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-dialog.service.ts @@ -2,9 +2,9 @@ import { Injectable } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { ConfirmationDialogComponent, - ConfirmationDialogInput, DialogConfig, DialogService, + IConfirmationDialogData, LoadingService, TitleColors, } from '@iqser/common-ui'; @@ -39,7 +39,7 @@ export class JustificationsDialogService extends DialogService { } confirmDelete(justifications: Justification[], dossierTemplateId: string) { - const data = new ConfirmationDialogInput({ + const data: IConfirmationDialogData = { title: _('confirmation-dialog.delete-justification.title'), titleColor: TitleColors.WARN, question: _('confirmation-dialog.delete-justification.question'), @@ -47,7 +47,7 @@ export class JustificationsDialogService extends DialogService { count: justifications.length, justificationName: justifications[0].name, }, - }); + }; this.openDialog('confirm', data, async () => { this._loadingService.start(); diff --git a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen/reports-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen/reports-screen.component.ts index cd8c8ad85..39c650687 100644 --- a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen/reports-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen/reports-screen.component.ts @@ -1,7 +1,7 @@ import { ChangeDetectionStrategy, Component, ElementRef, OnInit, ViewChild } from '@angular/core'; import { DOSSIER_TEMPLATE_ID, IPlaceholdersResponse, IReportTemplate, User } from '@red/domain'; import { download } from '@utils/file-download-utils'; -import { ConfirmationDialogInput, getCurrentUser, getParam, LoadingService, Toaster } from '@iqser/common-ui'; +import { getCurrentUser, getParam, IConfirmationDialogData, LoadingService, Toaster } from '@iqser/common-ui'; import { PermissionsService } from '@services/permissions.service'; import { generalPlaceholdersDescriptionsTranslations, @@ -80,7 +80,7 @@ export class ReportsScreenComponent implements OnInit { return; } - const data = new ConfirmationDialogInput({ + const data: IConfirmationDialogData = { title: _('confirmation-dialog.upload-report-template.title'), question: _('confirmation-dialog.upload-report-template.question'), confirmationText: _('confirmation-dialog.upload-report-template.confirmation-text'), @@ -89,7 +89,8 @@ export class ReportsScreenComponent implements OnInit { translateParams: { fileName: file.name, }, - }); + }; + this._dialogService.openDialog('confirm', data, null, async result => { if (result) { const multiFileReport = result > 1; @@ -119,7 +120,7 @@ export class ReportsScreenComponent implements OnInit { } private async _openOverwriteConfirmationDialog(file: File, multiFileReport: boolean): Promise { - const data = new ConfirmationDialogInput({ + const data: IConfirmationDialogData = { title: _('confirmation-dialog.report-template-same-name.title'), question: _('confirmation-dialog.report-template-same-name.question'), confirmationText: _('confirmation-dialog.report-template-same-name.confirmation-text'), @@ -127,7 +128,7 @@ export class ReportsScreenComponent implements OnInit { translateParams: { fileName: file.name, }, - }); + }; this._dialogService.openDialog('confirm', data, null, async result => { if (result) { diff --git a/apps/red-ui/src/app/modules/admin/screens/watermark/watermarks-listing/watermarks-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/watermark/watermarks-listing/watermarks-listing-screen.component.ts index 7a5547055..86c073f31 100644 --- a/apps/red-ui/src/app/modules/admin/screens/watermark/watermarks-listing/watermarks-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/watermark/watermarks-listing/watermarks-listing-screen.component.ts @@ -1,10 +1,10 @@ import { Component } from '@angular/core'; import { CircleButtonTypes, - ConfirmationDialogInput, getCurrentUser, getParam, IconButtonTypes, + IConfirmationDialogData, IqserPermissionsService, ListingComponent, listingProvidersFactory, @@ -54,9 +54,10 @@ export class WatermarksListingScreenComponent extends ListingComponent { await this._deleteWatermark(watermark); }); diff --git a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts index 91c7017d3..13be04637 100644 --- a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts @@ -10,10 +10,10 @@ import { FileAttributesCsvImportDialogComponent } from '../dialogs/file-attribut import { AddEditDossierAttributeDialogComponent } from '../dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component'; import { ConfirmationDialogComponent, - ConfirmationDialogInput, ConfirmOptions, DialogConfig, DialogService, + IConfirmationDialogData, largeDialogConfig, LoadingService, TitleColors, @@ -109,7 +109,7 @@ export class AdminDialogService extends DialogService { } deleteUsers(userIds: string[], cb?: () => Promise | void): void { - const data = new ConfirmationDialogInput({ + const data: IConfirmationDialogData = { title: _('confirm-delete-users.title'), question: _('confirm-delete-users.warning'), confirmationText: _('confirm-delete-users.delete'), @@ -121,7 +121,7 @@ export class AdminDialogService extends DialogService { { value: false, label: _('confirm-delete-users.impacted-documents') }, ], toastMessage: _('confirm-delete-users.toast-error'), - }); + }; this.openDialog('confirm', data, async result => { if (result === ConfirmOptions.CONFIRM) { @@ -149,7 +149,7 @@ export class AdminDialogService extends DialogService { const uniqueTemplates = Array.from(templateIds).map(id => templates.find(t => t.templateId === id)); this._loadingService.stop(); - const data = new ConfirmationDialogInput({ + const data: IConfirmationDialogData = { title: _('confirm-delete-attribute.title'), question: _('confirm-delete-attribute.warning'), confirmationText: _('confirm-delete-attribute.delete'), @@ -173,7 +173,7 @@ export class AdminDialogService extends DialogService { ], toastMessage: _('confirm-delete-attribute.toast-error'), translateParams: { reportsCount: uniqueTemplates.length, count: attributes.length, name: attributes[0].label }, - }); + }; if (templates.length) { data.checkboxes.push({ diff --git a/apps/red-ui/src/app/modules/dossier-overview/services/bulk-actions.service.ts b/apps/red-ui/src/app/modules/dossier-overview/services/bulk-actions.service.ts index 53903e51b..c092aad30 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/services/bulk-actions.service.ts +++ b/apps/red-ui/src/app/modules/dossier-overview/services/bulk-actions.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { Dossier, File, WorkflowFileStatus, WorkflowFileStatuses } from '@red/domain'; import { DossiersDialogService } from '../../shared-dossiers/services/dossiers-dialog.service'; -import { ConfirmationDialogInput, LoadingService } from '@iqser/common-ui'; +import { IConfirmationDialogData, LoadingService } from '@iqser/common-ui'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; import { FilesService } from '@services/files/files.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @@ -47,10 +47,10 @@ export class BulkActionsService { delete(files: File[]) { this._dialogService.openDialog( 'confirm', - new ConfirmationDialogInput({ + { title: _('confirmation-dialog.delete-file.title'), question: _('confirmation-dialog.delete-file.question'), - }), + } as IConfirmationDialogData, async () => { this._loadingService.start(); await firstValueFrom(this._fileManagementService.delete(files, files[0].dossierId)); @@ -97,7 +97,7 @@ export class BulkActionsService { if (foundAnalysisRequiredFile || foundUpdatedFile) { this._dialogService.openDialog( 'confirm', - new ConfirmationDialogInput({ + { title: foundAnalysisRequiredFile ? _('confirmation-dialog.approve-multiple-files-without-analysis.title') : _('confirmation-dialog.approve-multiple-files.title'), @@ -108,7 +108,7 @@ export class BulkActionsService { ? _('confirmation-dialog.approve-multiple-files-without-analysis.confirmationText') : null, denyText: foundAnalysisRequiredFile ? _('confirmation-dialog.approve-multiple-files-without-analysis.denyText') : null, - }), + } as IConfirmationDialogData, async () => { this._loadingService.start(); await this._filesService.setApproved(files); diff --git a/apps/red-ui/src/app/modules/file-preview/components/view-switch/view-switch.component.ts b/apps/red-ui/src/app/modules/file-preview/components/view-switch/view-switch.component.ts index 027169d21..ba927b32e 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/view-switch/view-switch.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/view-switch/view-switch.component.ts @@ -5,7 +5,7 @@ import { FilePreviewStateService } from '../../services/file-preview-state.servi import { combineLatest, Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { FileDataService } from '../../services/file-data.service'; -import { BASE_HREF, ConfirmationDialogInput, ConfirmOptions, Toaster } from '@iqser/common-ui'; +import { BASE_HREF, ConfirmOptions, IConfirmationDialogData, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserPreferenceService } from '@users/user-preference.service'; import { FilePreviewDialogService } from '../../services/file-preview-dialog.service'; @@ -66,7 +66,7 @@ export class ViewSwitchComponent { const question = displaySuggestionsInPreview ? _('unapproved-suggestions.confirmation-dialog.displayed-question') : _('unapproved-suggestions.confirmation-dialog.not-displayed-question'); - const data = new ConfirmationDialogInput({ + const data: IConfirmationDialogData = { title: _('unapproved-suggestions.confirmation-dialog.title'), question: question, confirmationText: _('unapproved-suggestions.confirmation-dialog.confirmation-text'), @@ -78,7 +78,7 @@ export class ViewSwitchComponent { }, ], checkboxesValidation: false, - }); + }; return this._dialogService.openDialog('confirm', data, result => { if (!result) { diff --git a/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts index 26becd816..432ecd4e1 100644 --- a/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts @@ -15,13 +15,14 @@ import { AutoUnsubscribe, bool, CircleButtonTypes, - ConfirmationDialogInput, + ConfirmOption, ConfirmOptions, CustomError, Debounce, ErrorService, FilterService, HelpModeService, + IConfirmationDialogData, List, LoadingService, NestedFilter, @@ -644,11 +645,12 @@ export class FilePreviewScreenComponent filter(event => event.type === ViewerEvents.LOAD_ALL_ANNOTATIONS), switchMap(() => this._fileDataService.annotations), switchMap>(annotations => { + // TODO: this switchMap is ugly, to be refactored const showWarning = !this.userPreferenceService.getBool(PreferencesKeys.loadAllAnnotationsWarning); const annotationsExceedThreshold = annotations.length >= this.configService.values.ANNOTATIONS_THRESHOLD; if (annotationsExceedThreshold && showWarning) { - const data = new ConfirmationDialogInput({ + const data = { question: _('load-all-annotations-threshold-exceeded'), checkboxes: [ { @@ -660,17 +662,18 @@ export class FilePreviewScreenComponent translateParams: { threshold: this.configService.values.ANNOTATIONS_THRESHOLD, }, - }); + } as IConfirmationDialogData; const ref = this._dialogService.openDialog('confirm', data); return ref.afterClosed().pipe( - switchMap(async (result: ConfirmOptions) => { + switchMap(async (result: ConfirmOption) => { const doNotShowWarningAgain = result === ConfirmOptions.SECOND_CONFIRM; if (doNotShowWarningAgain) { await this.userPreferenceService.save(PreferencesKeys.loadAllAnnotationsWarning, 'true'); await this.userPreferenceService.reload(); } - const shouldLoad = [ConfirmOptions.CONFIRM, ConfirmOptions.SECOND_CONFIRM].includes(result); + const validOptions: number[] = [ConfirmOptions.CONFIRM, ConfirmOptions.SECOND_CONFIRM]; + const shouldLoad = validOptions.includes(result); return [shouldLoad, annotations] as const; }), ); diff --git a/apps/red-ui/src/app/modules/pdf-viewer/components/compare-file-input/compare-file-input.component.ts b/apps/red-ui/src/app/modules/pdf-viewer/components/compare-file-input/compare-file-input.component.ts index 1ec58135e..c11b5eed4 100644 --- a/apps/red-ui/src/app/modules/pdf-viewer/components/compare-file-input/compare-file-input.component.ts +++ b/apps/red-ui/src/app/modules/pdf-viewer/components/compare-file-input/compare-file-input.component.ts @@ -1,6 +1,6 @@ import { Component, ElementRef, ViewChild } from '@angular/core'; import { HeaderElements } from '../../../file-preview/utils/constants'; -import { ConfirmationDialogInput, ConfirmOptions, LoadingService } from '@iqser/common-ui'; +import { ConfirmOption, ConfirmOptions, IConfirmationDialogData, LoadingService } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { FilesMapService } from '@services/files/files-map.service'; import { SharedDialogService } from '@shared/services/dialog.service'; @@ -81,18 +81,15 @@ export class CompareFileInputComponent { } #askForConfirmation(fileName: string, currentDocumentPageCount: number, compareDocumentPageCount: number) { - const ref: MatDialogRef = this._dialogService.openDialog( - 'confirm', - new ConfirmationDialogInput({ - title: _('confirmation-dialog.compare-file.title'), - question: _('confirmation-dialog.compare-file.question'), - translateParams: { - fileName, - currentDocumentPageCount, - compareDocumentPageCount, - }, - }), - ); + const ref: MatDialogRef = this._dialogService.openDialog('confirm', { + title: _('confirmation-dialog.compare-file.title'), + question: _('confirmation-dialog.compare-file.question'), + translateParams: { + fileName, + currentDocumentPageCount, + compareDocumentPageCount, + }, + } as IConfirmationDialogData); return firstValueFrom(ref.afterClosed()); } diff --git a/apps/red-ui/src/app/modules/pdf-viewer/services/page-rotation.service.ts b/apps/red-ui/src/app/modules/pdf-viewer/services/page-rotation.service.ts index ada27f747..e56d9afd1 100644 --- a/apps/red-ui/src/app/modules/pdf-viewer/services/page-rotation.service.ts +++ b/apps/red-ui/src/app/modules/pdf-viewer/services/page-rotation.service.ts @@ -5,9 +5,10 @@ import { FileManagementService } from '@services/files/file-management.service'; import { distinctUntilChanged, map, switchMap, tap } from 'rxjs/operators'; import { ConfirmationDialogComponent, - ConfirmationDialogInput, + ConfirmOption, ConfirmOptions, defaultDialogConfig, + IConfirmationDialogData, LoadingService, } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @@ -93,15 +94,15 @@ export class PageRotationService { #showConfirmationDialog() { const ref = this._injector.get(MatDialog).open(ConfirmationDialogComponent, { ...defaultDialogConfig, - data: new ConfirmationDialogInput({ + data: { title: _('page-rotation.confirmation-dialog.title'), question: _('page-rotation.confirmation-dialog.question'), confirmationText: _('page-rotation.apply'), discardChangesText: _('page-rotation.discard'), - }), + } as IConfirmationDialogData, }); - const closed$ = ref.afterClosed().pipe(map((option: ConfirmOptions) => option === ConfirmOptions.CONFIRM)); + const closed$ = ref.afterClosed().pipe(map((option: ConfirmOption) => option === ConfirmOptions.CONFIRM)); return closed$.pipe(tap(apply => (apply ? this.applyRotation() : this.discardRotation()))); } diff --git a/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.ts b/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.ts index 17ac0c541..76c53c310 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.ts +++ b/apps/red-ui/src/app/modules/shared-dossiers/components/file-actions/file-actions.component.ts @@ -5,8 +5,8 @@ import { DossiersDialogService } from '../../services/dossiers-dialog.service'; import { CircleButtonType, CircleButtonTypes, - ConfirmationDialogInput, getCurrentUser, + IConfirmationDialogData, IqserPermissionsService, IqserTooltipPosition, LoadingService, @@ -298,22 +298,18 @@ export class FileActionsComponent implements OnChanges { return; } - this._dialogService.openDialog( - 'confirm', - new ConfirmationDialogInput({ - title: this.file.analysisRequired - ? _('confirmation-dialog.approve-file-without-analysis.title') - : _('confirmation-dialog.approve-file.title'), - question: this.file.analysisRequired - ? _('confirmation-dialog.approve-file-without-analysis.question') - : _('confirmation-dialog.approve-file.question'), - confirmationText: this.file.analysisRequired - ? _('confirmation-dialog.approve-file-without-analysis.confirmationText') - : null, - denyText: this.file.analysisRequired ? _('confirmation-dialog.approve-file-without-analysis.denyText') : null, - }), - () => this.#setFileApproved(), - ); + const data: IConfirmationDialogData = { + title: this.file.analysisRequired + ? _('confirmation-dialog.approve-file-without-analysis.title') + : _('confirmation-dialog.approve-file.title'), + question: this.file.analysisRequired + ? _('confirmation-dialog.approve-file-without-analysis.question') + : _('confirmation-dialog.approve-file.question'), + confirmationText: this.file.analysisRequired ? _('confirmation-dialog.approve-file-without-analysis.confirmationText') : null, + denyText: this.file.analysisRequired ? _('confirmation-dialog.approve-file-without-analysis.denyText') : null, + }; + + this._dialogService.openDialog('confirm', data, () => this.#setFileApproved()); } forceReanalysisAction($event: LongPressEvent) { @@ -322,11 +318,11 @@ export class FileActionsComponent implements OnChanges { } #showOCRConfirmationDialog(): Observable { - const data = new ConfirmationDialogInput({ + const data: IConfirmationDialogData = { title: _('ocr.confirmation-dialog.title'), question: _('ocr.confirmation-dialog.question'), denyText: _('ocr.confirmation-dialog.cancel'), - }); + }; const ref = this._dialogService.openDialog('confirm', data); return ref.afterClosed(); @@ -339,10 +335,10 @@ export class FileActionsComponent implements OnChanges { private _openDeleteFileDialog() { this._dialogService.openDialog( 'confirm', - new ConfirmationDialogInput({ + { title: _('confirmation-dialog.delete-file.title'), question: _('confirmation-dialog.delete-file.question'), - }), + } as IConfirmationDialogData, async () => { this._loadingService.start(); try { diff --git a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts index b37e1b80c..a3fb03445 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts +++ b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component.ts @@ -7,7 +7,7 @@ import { PermissionsService } from '@services/permissions.service'; import { Router } from '@angular/router'; import { MatDialogRef } from '@angular/material/dialog'; import { EditDossierDialogComponent } from '../edit-dossier-dialog.component'; -import { ConfirmationDialogInput, ConfirmOptions, IconButtonTypes, LoadingService, TitleColors, Toaster } from '@iqser/common-ui'; +import { ConfirmOptions, IconButtonTypes, IConfirmationDialogData, LoadingService, TitleColors, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service'; import { DossierStatsService } from '@services/dossiers/dossier-stats.service'; @@ -127,7 +127,7 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti } deleteDossier() { - const data = new ConfirmationDialogInput({ + const data: IConfirmationDialogData = { title: _('confirmation-dialog.delete-dossier.title'), titleColor: TitleColors.WARN, question: _('confirmation-dialog.delete-dossier.question'), @@ -138,7 +138,8 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti dossierName: this.dossier.dossierName, dossiersCount: 1, }, - }); + }; + this._dialogService.openDialog('confirm', data, async () => { this._loadingService.start(); await firstValueFrom(this._trashService.deleteDossier(this.dossier)); @@ -154,7 +155,7 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti } archiveDossier() { - const data = new ConfirmationDialogInput({ + const data: IConfirmationDialogData = { title: _('confirm-archive-dossier.title'), details: _('confirm-archive-dossier.details'), question: _('confirm-archive-dossier.warning'), @@ -164,7 +165,8 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti translateParams: { ...this.dossier }, checkboxes: [{ value: false, label: _('confirm-archive-dossier.checkbox.documents') }], toastMessage: _('confirm-archive-dossier.toast-error'), - }); + }; + this._dialogService.openDialog('confirm', data, async result => { if (result === ConfirmOptions.CONFIRM) { this._loadingService.start(); diff --git a/apps/red-ui/src/app/modules/shared-dossiers/services/file-assign.service.ts b/apps/red-ui/src/app/modules/shared-dossiers/services/file-assign.service.ts index c08092eae..06a9f335b 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/services/file-assign.service.ts +++ b/apps/red-ui/src/app/modules/shared-dossiers/services/file-assign.service.ts @@ -3,7 +3,7 @@ import { Dossier, File, User, WorkflowFileStatus, WorkflowFileStatuses } from '@ import { DossiersDialogService } from './dossiers-dialog.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { FilesService } from '@services/files/files.service'; -import { ConfirmationDialogInput, getCurrentUser, LoadingService, Toaster } from '@iqser/common-ui'; +import { getCurrentUser, IConfirmationDialogData, LoadingService, Toaster } from '@iqser/common-ui'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; import { firstValueFrom } from 'rxjs'; @@ -33,13 +33,13 @@ export class FileAssignService { }; if (atLeastOneAssignee(files)) { - const dialogInput = new ConfirmationDialogInput({ + const dialogInput: IConfirmationDialogData = { title: _('confirmation-dialog.assign-file-to-me.title'), question: files.length === 1 ? _('confirmation-dialog.assign-file-to-me.question.single') : _('confirmation-dialog.assign-file-to-me.question.multiple'), - }); + }; const ref = this._dialogService.openDialog('confirm', dialogInput, assignReq); return firstValueFrom(ref.afterClosed()); } diff --git a/apps/red-ui/src/app/modules/trash/services/trash-dialog.service.ts b/apps/red-ui/src/app/modules/trash/services/trash-dialog.service.ts index f325f5636..41daa010a 100644 --- a/apps/red-ui/src/app/modules/trash/services/trash-dialog.service.ts +++ b/apps/red-ui/src/app/modules/trash/services/trash-dialog.service.ts @@ -2,9 +2,9 @@ import { Injectable } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { ConfirmationDialogComponent, - ConfirmationDialogInput, DialogConfig, DialogService, + IConfirmationDialogData, LoadingService, TitleColors, } from '@iqser/common-ui'; @@ -32,7 +32,7 @@ export class TrashDialogService extends DialogService { } confirmHardDelete(items: TrashItem[]): void { - const data = new ConfirmationDialogInput({ + const data: IConfirmationDialogData = { title: _('confirmation-dialog.delete-items.title'), titleColor: TitleColors.WARN, question: _('confirmation-dialog.delete-items.question'), @@ -40,7 +40,7 @@ export class TrashDialogService extends DialogService { name: items[0].name, itemsCount: items.length, }, - }); + }; this.openDialog('confirm', data, async () => { this._loadingService.start(); diff --git a/apps/red-ui/src/app/services/dossier-templates/dossier-templates.service.ts b/apps/red-ui/src/app/services/dossier-templates/dossier-templates.service.ts index d30033833..c63a833d4 100644 --- a/apps/red-ui/src/app/services/dossier-templates/dossier-templates.service.ts +++ b/apps/red-ui/src/app/services/dossier-templates/dossier-templates.service.ts @@ -45,8 +45,11 @@ export class DossierTemplatesService extends EntitiesService templates)); } diff --git a/libs/common-ui b/libs/common-ui index cb8a0ddcf..a1d11cd9e 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit cb8a0ddcf9a3858ec698e52488a51fabaff55849 +Subproject commit a1d11cd9eb91cebe729a70cf57a778b385edcca0