diff --git a/apps/red-ui/src/app/app-routing.module.ts b/apps/red-ui/src/app/app-routing.module.ts index 7f0060461..6c5b7a67a 100644 --- a/apps/red-ui/src/app/app-routing.module.ts +++ b/apps/red-ui/src/app/app-routing.module.ts @@ -9,10 +9,11 @@ import { DownloadsListScreenComponent } from '@components/downloads-list-screen/ import { DossiersGuard } from '@guards/dossiers.guard'; import { ACTIVE_DOSSIERS_SERVICE, ARCHIVED_DOSSIERS_SERVICE } from './tokens'; import { FeaturesGuard } from '@guards/features-guard.service'; -import { ARCHIVE_ROUTE, DOSSIER_TEMPLATE_ID, DOSSIERS_ARCHIVE, DOSSIERS_ROUTE } from '@utils/constants'; +import { DOSSIER_TEMPLATE_ID } from '@utils/constants'; import { DossierTemplatesGuard } from '@guards/dossier-templates.guard'; import { DossierTemplateExistsGuard } from '@guards/dossier-template-exists.guard'; import { DashboardGuard } from '@guards/dashboard-guard.service'; +import { ARCHIVE_ROUTE, DOSSIERS_ARCHIVE, DOSSIERS_ROUTE } from '@red/domain'; const routes: Routes = [ { diff --git a/apps/red-ui/src/app/components/base-screen/base-screen.component.ts b/apps/red-ui/src/app/components/base-screen/base-screen.component.ts index 943d9e36c..bc43783c2 100644 --- a/apps/red-ui/src/app/components/base-screen/base-screen.component.ts +++ b/apps/red-ui/src/app/components/base-screen/base-screen.component.ts @@ -10,7 +10,7 @@ import { filter, map, startWith } from 'rxjs/operators'; import { shareDistinctLast } from '@iqser/common-ui'; import { BreadcrumbsService } from '@services/breadcrumbs.service'; import { FeaturesService } from '@services/features.service'; -import { ARCHIVE_ROUTE, DOSSIERS_ARCHIVE, DOSSIERS_ROUTE } from '@utils/constants'; +import { ARCHIVE_ROUTE, DOSSIERS_ARCHIVE, DOSSIERS_ROUTE } from '@red/domain'; interface MenuItem { readonly id: string; diff --git a/apps/red-ui/src/app/guards/dossier-files-guard.ts b/apps/red-ui/src/app/guards/dossier-files-guard.ts index 9aab2878a..63d9948dd 100644 --- a/apps/red-ui/src/app/guards/dossier-files-guard.ts +++ b/apps/red-ui/src/app/guards/dossier-files-guard.ts @@ -3,8 +3,9 @@ import { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router'; import { FilesMapService } from '@services/entity-services/files-map.service'; import { FilesService } from '@services/entity-services/files.service'; import { firstValueFrom } from 'rxjs'; -import { DOSSIER_ID, DOSSIER_TEMPLATE_ID } from '@utils/constants'; +import { DOSSIER_TEMPLATE_ID } from '@utils/constants'; import { DossiersService } from '@services/dossiers/dossiers.service'; +import { DOSSIER_ID } from '@red/domain'; @Injectable({ providedIn: 'root' }) export class DossierFilesGuard implements CanActivate { diff --git a/apps/red-ui/src/app/modules/admin/components/users-stats/users-stats.component.ts b/apps/red-ui/src/app/modules/admin/components/users-stats/users-stats.component.ts index f256e1e32..d7b81cb04 100644 --- a/apps/red-ui/src/app/modules/admin/components/users-stats/users-stats.component.ts +++ b/apps/red-ui/src/app/modules/admin/components/users-stats/users-stats.component.ts @@ -1,5 +1,5 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; -import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/simple-doughnut-chart.component'; +import { DoughnutChartConfig } from '@red/domain'; @Component({ selector: 'redaction-users-stats', diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing-screen.component.ts index 3d7ff95bd..0594e2772 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing-screen.component.ts @@ -7,11 +7,10 @@ import { SortingOrders, TableColumnConfig, } from '@iqser/common-ui'; -import { DossierState, IDossierState } from '@red/domain'; +import { DossierState, DoughnutChartConfig, IDossierState } from '@red/domain'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { firstValueFrom, Observable } from 'rxjs'; import { AdminDialogService } from '../../services/admin-dialog.service'; -import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/simple-doughnut-chart.component'; import { ActivatedRoute } from '@angular/router'; import { DossierStatesMapService } from '@services/entity-services/dossier-states-map.service'; import { map, tap } from 'rxjs/operators'; diff --git a/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.html index 1d4e9834f..5b18cfd15 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.html @@ -37,7 +37,7 @@
- +
diff --git a/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.ts index 8f080de93..9790b0406 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.ts @@ -45,10 +45,10 @@ export class LicenseScreenComponent implements OnInit { } ngOnInit() { - return this.loadLicenceData(this.licenseService.selectedLicense); + return this.loadLicenseData(this.licenseService.selectedLicense); } - async loadLicenceData(license: ILicense) { + async loadLicenseData(license: ILicense) { const startDate = dayjs(license.validFrom); const endDate = dayjs(license.validUntil); @@ -88,8 +88,8 @@ export class LicenseScreenComponent implements OnInit { window.location.href = `mailto:${mail}?subject=${subject}&body=${body}`; } - licenceChanged(license: ILicense) { + licenseChanged(license: ILicense) { this.totalLicensedNumberOfPages = this.licenseService.totalLicensedNumberOfPages; - return this.loadLicenceData(license); + return this.loadLicenseData(license); } } diff --git a/apps/red-ui/src/app/modules/admin/screens/license/services/license.service.ts b/apps/red-ui/src/app/modules/admin/screens/license/services/license.service.ts index d3081f9da..2984ef327 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license/services/license.service.ts +++ b/apps/red-ui/src/app/modules/admin/screens/license/services/license.service.ts @@ -10,7 +10,7 @@ import { getStoredReports } from '../utils/functions'; @Injectable() export class LicenseService extends GenericService { storedReports = getStoredReports(); - readonly licenseData = this.#licenceData; + readonly licenseData = this.#licenseData; readonly activeLicenseId = this.licenseData.activeLicense; readonly selectedLicense$ = new BehaviorSubject(this.getActiveLicense()); @@ -27,7 +27,7 @@ export class LicenseService extends GenericService { return Number(processingPagesFeature.value ?? '0'); } - get #licenceData(): ILicenses { + get #licenseData(): ILicenses { return { ...LICENSE_DATA, licenses: [ diff --git a/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts index 67df7020c..2651ae413 100644 --- a/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts @@ -2,7 +2,7 @@ import { Component, forwardRef, Injector, OnInit } from '@angular/core'; import { UserService } from '@services/user.service'; import { AdminDialogService } from '../../services/admin-dialog.service'; import { TranslateService } from '@ngx-translate/core'; -import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/simple-doughnut-chart.component'; +import { DoughnutChartConfig, User, UserTypes } from '@red/domain'; import { TranslateChartService } from '@services/translate-chart.service'; import { CircleButtonTypes, @@ -18,7 +18,6 @@ import { firstValueFrom, Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { rolesTranslations } from '../../../../translations/roles-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { User, UserTypes } from '@red/domain'; import { userTypeChecker, userTypeFilters } from '../../../../utils'; @Component({ diff --git a/apps/red-ui/src/app/modules/archive/archive-routing.module.ts b/apps/red-ui/src/app/modules/archive/archive-routing.module.ts index d9b734f59..1eb531bf3 100644 --- a/apps/red-ui/src/app/modules/archive/archive-routing.module.ts +++ b/apps/red-ui/src/app/modules/archive/archive-routing.module.ts @@ -1,8 +1,8 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { BreadcrumbTypes } from '@red/domain'; +import { BreadcrumbTypes, DOSSIER_ID } from '@red/domain'; import { ArchivedDossiersScreenComponent } from './screens/archived-dossiers-screen/archived-dossiers-screen.component'; -import { DOSSIER_ID, FILE_ID } from '@utils/constants'; +import { FILE_ID } from '@utils/constants'; import { CompositeRouteGuard } from '@iqser/common-ui'; import { ARCHIVED_DOSSIERS_SERVICE } from '../../tokens'; import { DossierFilesGuard } from '@guards/dossier-files-guard'; diff --git a/apps/red-ui/src/app/modules/dossier-overview/components/dossier-details/dossier-details.component.ts b/apps/red-ui/src/app/modules/dossier-overview/components/dossier-details/dossier-details.component.ts index 9214c1424..4301e87b3 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/components/dossier-details/dossier-details.component.ts +++ b/apps/red-ui/src/app/modules/dossier-overview/components/dossier-details/dossier-details.component.ts @@ -1,18 +1,23 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core'; -import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/simple-doughnut-chart.component'; +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; +import { + Dossier, + DOSSIER_ID, + DossierAttributeWithValue, + DossierStats, + DoughnutChartConfig, + IDossierRequest, + StatusSorter, + User, +} from '@red/domain'; import { TranslateChartService } from '@services/translate-chart.service'; import { UserService } from '@services/user.service'; import { FilterService, ProgressBarConfigModel, shareLast, Toaster } from '@iqser/common-ui'; import { workflowFileStatusTranslations } from '../../../../translations/file-status-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { Dossier, DossierAttributeWithValue, DossierStats, IDossierRequest, StatusSorter, User } from '@red/domain'; import { ActivatedRoute } from '@angular/router'; import { firstValueFrom, Observable } from 'rxjs'; import { DossierStatsService } from '@services/dossiers/dossier-stats.service'; import { map, pluck, switchMap } from 'rxjs/operators'; -import { DossiersDialogService } from '../../../dossier/shared/services/dossiers-dialog.service'; -import { FilesService } from '@services/entity-services/files.service'; -import { DOSSIER_ID } from '@utils/constants'; import { DossiersService } from '@services/dossiers/dossiers.service'; @Component({ @@ -40,19 +45,16 @@ export class DossierDetailsComponent { readonly translateChartService: TranslateChartService, readonly filterService: FilterService, private readonly _dossiersService: DossiersService, - private readonly _changeDetectorRef: ChangeDetectorRef, private readonly _userService: UserService, - private readonly _filesService: FilesService, private readonly _dossierStatsService: DossierStatsService, private readonly _toaster: Toaster, - private readonly _dialogService: DossiersDialogService, - private readonly _activatedRoute: ActivatedRoute, + activatedRoute: ActivatedRoute, ) { - this.dossierId = _activatedRoute.snapshot.paramMap.get(DOSSIER_ID); - this.dossier$ = this._dossiersService.getEntityChanged$(this.dossierId).pipe(shareLast()); + this.dossierId = activatedRoute.snapshot.paramMap.get(DOSSIER_ID); + this.dossier$ = _dossiersService.getEntityChanged$(this.dossierId).pipe(shareLast()); this.dossierStats$ = this.dossier$.pipe( pluck('dossierId'), - switchMap(dossierId => this._dossierStatsService.watch$(dossierId)), + switchMap(dossierId => _dossierStatsService.watch$(dossierId)), ); this.chartConfig$ = this.dossierStats$.pipe(map(stats => this.#calculateChartConfig(stats))); this.statusConfig$ = this.dossierStats$.pipe(map(stats => this.#calculateStatusConfig(stats))); diff --git a/apps/red-ui/src/app/modules/dossier-overview/components/screen-header/dossier-overview-screen-header.component.html b/apps/red-ui/src/app/modules/dossier-overview/components/screen-header/dossier-overview-screen-header.component.html index c8e337ebf..0a6121cce 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/components/screen-header/dossier-overview-screen-header.component.html +++ b/apps/red-ui/src/app/modules/dossier-overview/components/screen-header/dossier-overview-screen-header.component.html @@ -42,6 +42,7 @@ [type]="circleButtonTypes.primary" class="ml-14" icon="iqser:upload" + id="upload-document-btn" iqserHelpMode="edit_dossier_in_dossier" tooltipPosition="below" > diff --git a/apps/red-ui/src/app/modules/dossier-overview/screen/dossier-overview-screen.component.ts b/apps/red-ui/src/app/modules/dossier-overview/screen/dossier-overview-screen.component.ts index 04f5092f3..0174d3d7c 100644 --- a/apps/red-ui/src/app/modules/dossier-overview/screen/dossier-overview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier-overview/screen/dossier-overview-screen.component.ts @@ -1,5 +1,5 @@ import { Component, ElementRef, forwardRef, HostListener, Injector, OnInit, TemplateRef, ViewChild } from '@angular/core'; -import { Dossier, DossierAttributeWithValue, File, IFileAttributeConfig, WorkflowFileStatus } from '@red/domain'; +import { Dossier, DOSSIER_ID, DossierAttributeWithValue, File, IFileAttributeConfig, WorkflowFileStatus } from '@red/domain'; import { FileDropOverlayService } from '@upload-download/services/file-drop-overlay.service'; import { FileUploadModel } from '@upload-download/model/file-upload.model'; import { FileUploadService } from '@upload-download/services/file-upload.service'; @@ -32,7 +32,6 @@ import { DossierTemplatesService } from '@services/dossier-templates/dossier-tem import { UserPreferenceService } from '@services/user-preference.service'; import { FilesMapService } from '@services/entity-services/files-map.service'; import { FilesService } from '@services/entity-services/files.service'; -import { DOSSIER_ID } from '@utils/constants'; import { BulkActionsService } from '../services/bulk-actions.service'; import { DossiersService } from '@services/dossiers/dossiers.service'; import { dossiersServiceProvider } from '@services/entity-services/dossiers.service.provider'; @@ -76,27 +75,27 @@ export class DossierOverviewScreenComponent extends ListingComponent imple private _fileAttributeConfigs: IFileAttributeConfig[]; constructor( - protected readonly _injector: Injector, + route: ActivatedRoute, private readonly _router: Router, - private readonly _dossiersService: DossiersService, - private readonly _loadingService: LoadingService, - private readonly _dossierTemplatesService: DossierTemplatesService, - private readonly _fileUploadService: FileUploadService, + private readonly _logger: NGXLogger, + readonly configService: ConfigService, + protected readonly _injector: Injector, + private readonly _errorService: ErrorService, private readonly _filesService: FilesService, + readonly permissionsService: PermissionsService, + private readonly _loadingService: LoadingService, + private readonly _fileMapService: FilesMapService, + private readonly _dossiersService: DossiersService, + private readonly _fileUploadService: FileUploadService, private readonly _statusOverlayService: StatusOverlayService, - private readonly _fileDropOverlayService: FileDropOverlayService, - private readonly _dossierAttributesService: DossierAttributesService, private readonly _fileAttributesService: FileAttributesService, private readonly _userPreferenceService: UserPreferenceService, - private readonly _fileMapService: FilesMapService, - private readonly _errorService: ErrorService, - private readonly _route: ActivatedRoute, - private readonly _logger: NGXLogger, - readonly permissionsService: PermissionsService, - readonly configService: ConfigService, + private readonly _fileDropOverlayService: FileDropOverlayService, + private readonly _dossierTemplatesService: DossierTemplatesService, + private readonly _dossierAttributesService: DossierAttributesService, ) { super(_injector); - this.dossierId = _route.snapshot.paramMap.get(DOSSIER_ID); + this.dossierId = route.snapshot.paramMap.get(DOSSIER_ID); this.dossier$ = _dossiersService.getEntityChanged$(this.dossierId).pipe(tap(dossier => (this.#currentDossier = dossier))); this.#currentDossier = _dossiersService.find(this.dossierId); this.workflowConfig = configService.workflowConfig(this.#currentDossier); diff --git a/apps/red-ui/src/app/modules/dossier/dossiers-routing.module.ts b/apps/red-ui/src/app/modules/dossier/dossiers-routing.module.ts index 98342b542..bc1178c3f 100644 --- a/apps/red-ui/src/app/modules/dossier/dossiers-routing.module.ts +++ b/apps/red-ui/src/app/modules/dossier/dossiers-routing.module.ts @@ -2,8 +2,8 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { DossierFilesGuard } from '@guards/dossier-files-guard'; import { CompositeRouteGuard } from '@iqser/common-ui'; -import { BreadcrumbTypes } from '@red/domain'; -import { DOSSIER_ID, FILE_ID } from '@utils/constants'; +import { BreadcrumbTypes, DOSSIER_ID } from '@red/domain'; +import { FILE_ID } from '@utils/constants'; import { ACTIVE_DOSSIERS_SERVICE } from '../../tokens'; const routes: Routes = [ diff --git a/apps/red-ui/src/app/modules/dossiers-listing/components/dossiers-listing-details/dossiers-listing-details.component.ts b/apps/red-ui/src/app/modules/dossiers-listing/components/dossiers-listing-details/dossiers-listing-details.component.ts index 4974c67f9..2f37d9924 100644 --- a/apps/red-ui/src/app/modules/dossiers-listing/components/dossiers-listing-details/dossiers-listing-details.component.ts +++ b/apps/red-ui/src/app/modules/dossiers-listing/components/dossiers-listing-details/dossiers-listing-details.component.ts @@ -1,12 +1,11 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; -import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/simple-doughnut-chart.component'; +import { DashboardStats, DoughnutChartConfig } from '@red/domain'; import { Observable } from 'rxjs'; import { TranslateChartService } from '@services/translate-chart.service'; -import { map } from 'rxjs/operators'; +import { map, pluck } from 'rxjs/operators'; import { DashboardStatsService } from '@services/dossier-templates/dashboard-stats.service'; import { ActivatedRoute } from '@angular/router'; import { DOSSIER_TEMPLATE_ID } from '@utils/constants'; -import { DashboardStats } from '@red/domain'; @Component({ selector: 'redaction-dossiers-listing-details', @@ -20,15 +19,20 @@ export class DossiersListingDetailsComponent { readonly dossiersChartData$: Observable; constructor( - private readonly _dashboardStatsService: DashboardStatsService, + route: ActivatedRoute, + dashboardStatsService: DashboardStatsService, private readonly _translateChartService: TranslateChartService, - private readonly _route: ActivatedRoute, ) { - const dossierTemplateId: string = this._route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID); - this.stats$ = this._dashboardStatsService.getEntityChanged$(dossierTemplateId); + const dossierTemplateId: string = route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID); + this.stats$ = dashboardStatsService.getEntityChanged$(dossierTemplateId); + this.dossiersChartData$ = this.stats$.pipe( - map(s => this._translateChartService.translateDossierStates(s.dossiersChartData, dossierTemplateId)), + pluck('dossiersChartData'), + map(data => this._translateChartService.translateDossierStates(data, dossierTemplateId)), + ); + this.documentsChartData$ = this.stats$.pipe( + pluck('documentsChartData'), + map(data => this._translateChartService.translateWorkflowStatus(data)), ); - this.documentsChartData$ = this.stats$.pipe(map(s => this._translateChartService.translateWorkflowStatus(s.documentsChartData))); } } diff --git a/apps/red-ui/src/app/modules/file-preview/components/annotation-card/annotation-card.component.ts b/apps/red-ui/src/app/modules/file-preview/components/annotation-card/annotation-card.component.ts index efc604721..2f7ce75e0 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/annotation-card/annotation-card.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/annotation-card/annotation-card.component.ts @@ -2,10 +2,9 @@ import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } f import { AnnotationWrapper } from '@models/file/annotation.wrapper'; import { MultiSelectService } from '../../services/multi-select.service'; import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service'; -import { DOSSIER_ID } from '@utils/constants'; +import { Dictionary, DOSSIER_ID } from '@red/domain'; import { ActivatedRoute } from '@angular/router'; import { DossiersService } from '@services/dossiers/dossiers.service'; -import { Dictionary } from '@red/domain'; import { BehaviorSubject } from 'rxjs'; @Component({ @@ -21,13 +20,13 @@ export class AnnotationCardComponent implements OnChanges { readonly #dossierTemplateId: string; constructor( + route: ActivatedRoute, + dossiersService: DossiersService, readonly multiSelectService: MultiSelectService, - private readonly _route: ActivatedRoute, private readonly _dictionariesMapService: DictionariesMapService, - private readonly _dossiersService: DossiersService, ) { - const dossierId: string = _route.snapshot.paramMap.get(DOSSIER_ID); - this.#dossierTemplateId = this._dossiersService.find(dossierId).dossierTemplateId; + const dossierId: string = route.snapshot.paramMap.get(DOSSIER_ID); + this.#dossierTemplateId = dossiersService.find(dossierId).dossierTemplateId; } ngOnChanges(changes: SimpleChanges): void { 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 d8f9bbe6f..c3b681167 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 @@ -136,6 +136,10 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni return this._pageRotationService.hasRotations(); } + get scrollableParentView(): ScrollableParentView { + return ScrollableParentViews.ANNOTATIONS_LIST; + } + private get _canPerformAnnotationActions$() { const viewMode$ = this._viewModeService.viewMode$.pipe(tap(() => this.#deactivateMultiSelect())); @@ -209,12 +213,11 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni this._changeDetectorRef.markForCheck(); } - async ngOnAttach(previousRoute: ActivatedRouteSnapshot): Promise { - const file = this.state.file; - if (!file.canBeOpened) { - this._navigateToDossier(); - return; + async ngOnAttach(previousRoute: ActivatedRouteSnapshot): Promise { + if (!this.state.file.canBeOpened) { + return this._navigateToDossier(); } + this._viewModeService.compareMode = false; this._viewModeService.switchToStandard(); @@ -228,20 +231,20 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni const file = this.state.file; if (!file) { - this._handleDeletedFile(); - } else { - this.ready = false; - this._loadingService.start(); - await this.userPreferenceService.saveLastOpenedFileForDossier(this.dossierId, this.fileId); - this._subscribeToFileUpdates(); - - if (file?.analysisRequired && !file.excludedFromAutomaticAnalysis) { - const reanalyzeFiles = this._reanalysisService.reanalyzeFilesForDossier([file], this.dossierId, { force: true }); - await firstValueFrom(reanalyzeFiles); - } - - this.displayPdfViewer = true; + return this._handleDeletedFile(); } + + this.ready = false; + this._loadingService.start(); + await this.userPreferenceService.saveLastOpenedFileForDossier(this.dossierId, this.fileId); + this._subscribeToFileUpdates(); + + if (file?.analysisRequired && !file.excludedFromAutomaticAnalysis) { + const reanalyzeFiles = this._reanalysisService.reanalyzeFilesForDossier([file], this.dossierId, { force: true }); + await firstValueFrom(reanalyzeFiles); + } + + this.displayPdfViewer = true; } handleAnnotationSelected(annotationIds: string[]) { @@ -436,6 +439,15 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni return this._cleanupAndRedrawAnnotations(annotationsToDraw); } + getActionsHelpModeKey(annotation: AnnotationWrapper): string { + const type = annotation?.typeLabel?.split('.')[1]; + const typeValue = annotation?.typeValue; + if (type === 'hint' && (typeValue === 'ocr' || typeValue === 'formula' || typeValue === 'image')) { + return HelpModeKeys[`${type}-${typeValue}`]; + } + return HelpModeKeys[type]; + } + #rebuildFilters() { const startTime = new Date().getTime(); @@ -499,19 +511,6 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni this.handleAnnotationSelected([]); } - get scrollableParentView(): ScrollableParentView { - return ScrollableParentViews.ANNOTATIONS_LIST; - } - - getActionsHelpModeKey(annotation: AnnotationWrapper): string { - const type = annotation?.typeLabel?.split('.')[1]; - const typeValue = annotation?.typeValue; - if (type === 'hint' && (typeValue === 'ocr' || typeValue === 'formula' || typeValue === 'image')) { - return HelpModeKeys[`${type}-${typeValue}`]; - } - return HelpModeKeys[type]; - } - private _setExcludedPageStyles() { const file = this._filesMapService.get(this.dossierId, this.fileId); setTimeout(() => { @@ -556,21 +555,23 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni } private _handleDeletedDossier(): void { - this._errorService.set( - new CustomError(_('error.deleted-entity.file-dossier.label'), _('error.deleted-entity.file-dossier.action'), 'iqser:expand'), + const error = new CustomError( + _('error.deleted-entity.file-dossier.label'), + _('error.deleted-entity.file-dossier.action'), + 'iqser:expand', ); + this._errorService.set(error); } private _handleDeletedFile(): void { - this._errorService.set( - new CustomError( - _('error.deleted-entity.file.label'), - _('error.deleted-entity.file.action'), - 'iqser:expand', - null, - this._navigateToDossier.bind(this), - ), + const error = new CustomError( + _('error.deleted-entity.file.label'), + _('error.deleted-entity.file.action'), + 'iqser:expand', + null, + this._navigateToDossier.bind(this), ); + this._errorService.set(error); } @Debounce(0) diff --git a/apps/red-ui/src/app/modules/file-preview/services/annotation-draw.service.ts b/apps/red-ui/src/app/modules/file-preview/services/annotation-draw.service.ts index d51707217..5e6679f44 100644 --- a/apps/red-ui/src/app/modules/file-preview/services/annotation-draw.service.ts +++ b/apps/red-ui/src/app/modules/file-preview/services/annotation-draw.service.ts @@ -36,8 +36,8 @@ export class AnnotationDrawService { ) {} drawAnnotations(annotationWrappers: readonly AnnotationWrapper[]) { - const licenceKey = environment.licenseKey ? atob(environment.licenseKey) : null; - return this._pdf.PDFNet.runWithCleanup(() => this._drawAnnotations(annotationWrappers), licenceKey); + const licenseKey = environment.licenseKey ? atob(environment.licenseKey) : null; + return this._pdf.PDFNet.runWithCleanup(() => this._drawAnnotations(annotationWrappers), licenseKey); } getColor(superType: string, dictionary?: string) { diff --git a/apps/red-ui/src/app/modules/file-preview/services/file-preview-state.service.ts b/apps/red-ui/src/app/modules/file-preview/services/file-preview-state.service.ts index 5ce48cb69..b3be2a8bd 100644 --- a/apps/red-ui/src/app/modules/file-preview/services/file-preview-state.service.ts +++ b/apps/red-ui/src/app/modules/file-preview/services/file-preview-state.service.ts @@ -1,13 +1,13 @@ import { Injectable, Injector } from '@angular/core'; import { combineLatest, firstValueFrom, from, merge, Observable, of, pairwise, Subject, switchMap } from 'rxjs'; -import { Dossier, File } from '@red/domain'; +import { Dossier, DOSSIER_ID, File } from '@red/domain'; import { ActivatedRoute, Router } from '@angular/router'; import { FilesMapService } from '@services/entity-services/files-map.service'; import { PermissionsService } from '@services/permissions.service'; import { boolFactory } from '@iqser/common-ui'; import { filter, map, startWith, tap, withLatestFrom } from 'rxjs/operators'; import { FileManagementService } from '@services/entity-services/file-management.service'; -import { DOSSIER_ID, FILE_ID } from '@utils/constants'; +import { FILE_ID } from '@utils/constants'; import { dossiersServiceResolver } from '@services/entity-services/dossiers.service.provider'; import { wipeFilesCache } from '@red/cache'; import { DossiersService } from '@services/dossiers/dossiers.service'; @@ -32,6 +32,7 @@ export class FilePreviewStateService { readonly #reloadBlob$ = new Subject(); constructor( + router: Router, route: ActivatedRoute, filesMapService: FilesMapService, private readonly _injector: Injector, @@ -39,9 +40,8 @@ export class FilePreviewStateService { private readonly _filesService: FilesService, private readonly _dossiersService: DossiersService, private readonly _fileManagementService: FileManagementService, - private readonly _router: Router, ) { - const dossiersService = dossiersServiceResolver(_injector, _router); + const dossiersService = dossiersServiceResolver(_injector, router); this.fileId = route.snapshot.paramMap.get(FILE_ID); this.dossierId = route.snapshot.paramMap.get(DOSSIER_ID); diff --git a/apps/red-ui/src/app/modules/search/search-screen/search-screen.component.ts b/apps/red-ui/src/app/modules/search/search-screen/search-screen.component.ts index 6276490ab..5eb38d153 100644 --- a/apps/red-ui/src/app/modules/search/search-screen/search-screen.component.ts +++ b/apps/red-ui/src/app/modules/search/search-screen/search-screen.component.ts @@ -17,11 +17,10 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { workflowFileStatusTranslations } from '../../../translations/file-status-translations'; import { TranslateService } from '@ngx-translate/core'; import { RouterHistoryService } from '@services/router-history.service'; -import { Dossier, IMatchedDocument, ISearchListItem, ISearchResponse } from '@red/domain'; +import { Dossier, DOSSIERS_ARCHIVE, IMatchedDocument, ISearchListItem, ISearchResponse } from '@red/domain'; import { FilesMapService } from '@services/entity-services/files-map.service'; import { PlatformSearchService } from '@services/entity-services/platform-search.service'; import { FeaturesService } from '@services/features.service'; -import { DOSSIERS_ARCHIVE } from '@utils/constants'; import { DossiersCacheService } from '../../../services/dossiers/dossiers-cache.service'; @Component({ diff --git a/apps/red-ui/src/app/modules/shared/components/dossiers-type-switch/dossiers-type-switch.component.ts b/apps/red-ui/src/app/modules/shared/components/dossiers-type-switch/dossiers-type-switch.component.ts index 7488e01da..0dbafe7bf 100644 --- a/apps/red-ui/src/app/modules/shared/components/dossiers-type-switch/dossiers-type-switch.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/dossiers-type-switch/dossiers-type-switch.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; -import { ARCHIVE_ROUTE, DOSSIERS_ROUTE } from '@utils/constants'; +import { ARCHIVE_ROUTE, DOSSIERS_ROUTE } from '@red/domain'; @Component({ selector: 'redaction-dossiers-type-switch', diff --git a/apps/red-ui/src/app/modules/shared/components/simple-doughnut-chart/simple-doughnut-chart.component.ts b/apps/red-ui/src/app/modules/shared/components/simple-doughnut-chart/simple-doughnut-chart.component.ts index 94ffb130e..1e18295a1 100644 --- a/apps/red-ui/src/app/modules/shared/components/simple-doughnut-chart/simple-doughnut-chart.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/simple-doughnut-chart/simple-doughnut-chart.component.ts @@ -1,17 +1,9 @@ import { Component, Input, OnChanges, OnInit, Optional } from '@angular/core'; -import { Color } from '@red/domain'; +import { DoughnutChartConfig } from '@red/domain'; import { FilterService, INestedFilter } from '@iqser/common-ui'; import { Observable, of } from 'rxjs'; import { map } from 'rxjs/operators'; -export interface DoughnutChartConfig { - value: number; - color: Color; - label: string; - key?: string; - active?: boolean; -} - @Component({ selector: 'redaction-simple-doughnut-chart', templateUrl: './simple-doughnut-chart.component.html', diff --git a/apps/red-ui/src/app/modules/upload-download/upload-status-overlay/upload-status-overlay.component.html b/apps/red-ui/src/app/modules/upload-download/upload-status-overlay/upload-status-overlay.component.html index ddd62b26c..dde32f0a7 100644 --- a/apps/red-ui/src/app/modules/upload-download/upload-status-overlay/upload-status-overlay.component.html +++ b/apps/red-ui/src/app/modules/upload-download/upload-status-overlay/upload-status-overlay.component.html @@ -3,8 +3,8 @@
{{ 'upload-status.dialog.title' | translate: { len: uploadService.files.length } }}
- - + +
diff --git a/apps/red-ui/src/app/services/breadcrumbs.service.ts b/apps/red-ui/src/app/services/breadcrumbs.service.ts index fb0c23760..b570170f9 100644 --- a/apps/red-ui/src/app/services/breadcrumbs.service.ts +++ b/apps/red-ui/src/app/services/breadcrumbs.service.ts @@ -5,8 +5,8 @@ import { BehaviorSubject, Observable, of } from 'rxjs'; import { filter, pluck } from 'rxjs/operators'; import { FilesMapService } from '@services/entity-services/files-map.service'; import { TranslateService } from '@ngx-translate/core'; -import { BreadcrumbTypes } from '@red/domain'; -import { DOSSIER_ID, DOSSIER_TEMPLATE_ID, DOSSIERS_ARCHIVE, FILE_ID } from '@utils/constants'; +import { BreadcrumbTypes, DOSSIER_ID, DOSSIERS_ARCHIVE } from '@red/domain'; +import { DOSSIER_TEMPLATE_ID, FILE_ID } from '@utils/constants'; import { DossiersService } from '@services/dossiers/dossiers.service'; import { dossiersServiceResolver } from '@services/entity-services/dossiers.service.provider'; import { FeaturesService } from '@services/features.service'; diff --git a/apps/red-ui/src/app/services/dossiers/active-dossiers.service.ts b/apps/red-ui/src/app/services/dossiers/active-dossiers.service.ts index 817d9e97f..bd85ab539 100644 --- a/apps/red-ui/src/app/services/dossiers/active-dossiers.service.ts +++ b/apps/red-ui/src/app/services/dossiers/active-dossiers.service.ts @@ -1,9 +1,9 @@ import { Injectable, Injector } from '@angular/core'; -import { CHANGED_CHECK_INTERVAL, DOSSIERS_ROUTE } from '@utils/constants'; +import { CHANGED_CHECK_INTERVAL } from '@utils/constants'; import { DossiersService } from './dossiers.service'; import { Observable, timer } from 'rxjs'; import { switchMap, tap } from 'rxjs/operators'; -import { Dossier } from '@red/domain'; +import { Dossier, DOSSIERS_ROUTE } from '@red/domain'; @Injectable({ providedIn: 'root', diff --git a/apps/red-ui/src/app/services/dossiers/archived-dossiers.service.ts b/apps/red-ui/src/app/services/dossiers/archived-dossiers.service.ts index 739933d98..74aadd218 100644 --- a/apps/red-ui/src/app/services/dossiers/archived-dossiers.service.ts +++ b/apps/red-ui/src/app/services/dossiers/archived-dossiers.service.ts @@ -1,5 +1,5 @@ import { Injectable, Injector } from '@angular/core'; -import { Dossier } from '@red/domain'; +import { ARCHIVE_ROUTE, Dossier, DOSSIERS_ARCHIVE } from '@red/domain'; import { catchError, tap } from 'rxjs/operators'; import { Observable, of } from 'rxjs'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @@ -7,7 +7,6 @@ import { ActiveDossiersService } from './active-dossiers.service'; import { DossiersService } from './dossiers.service'; import { FilesMapService } from '../entity-services/files-map.service'; import { FeaturesService } from '@services/features.service'; -import { ARCHIVE_ROUTE, DOSSIERS_ARCHIVE } from '@utils/constants'; @Injectable({ providedIn: 'root' }) export class ArchivedDossiersService extends DossiersService { diff --git a/apps/red-ui/src/app/services/dossiers/dossier-stats.service.ts b/apps/red-ui/src/app/services/dossiers/dossier-stats.service.ts index 75c618fa6..38ee3cc36 100644 --- a/apps/red-ui/src/app/services/dossiers/dossier-stats.service.ts +++ b/apps/red-ui/src/app/services/dossiers/dossier-stats.service.ts @@ -1,7 +1,6 @@ import { Injectable, Injector } from '@angular/core'; import { StatsService } from '@iqser/common-ui'; -import { DossierStats, IDossierStats } from '@red/domain'; -import { DOSSIER_ID } from '@utils/constants'; +import { DOSSIER_ID, DossierStats, IDossierStats } from '@red/domain'; import { Observable, of } from 'rxjs'; import { UserService } from '../user.service'; import { NGXLogger } from 'ngx-logger'; diff --git a/apps/red-ui/src/app/services/entity-services/dossier-states-map.service.ts b/apps/red-ui/src/app/services/entity-services/dossier-states-map.service.ts index 0299c6228..7faa80816 100644 --- a/apps/red-ui/src/app/services/entity-services/dossier-states-map.service.ts +++ b/apps/red-ui/src/app/services/entity-services/dossier-states-map.service.ts @@ -1,8 +1,7 @@ import { Injectable } from '@angular/core'; -import { DossierState, IDossierState } from '@red/domain'; +import { DossierState, DoughnutChartConfig, IDossierState } from '@red/domain'; import { EntitiesMapService } from '@iqser/common-ui'; import { DOSSIER_TEMPLATE_ID } from '@utils/constants'; -import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/simple-doughnut-chart.component'; import { flatMap } from 'lodash-es'; @Injectable({ providedIn: 'root' }) @@ -17,7 +16,7 @@ export class DossierStatesMapService extends EntitiesMapService { const key = name + '-' + color; - const item = acc.get(key) ?? Object.assign({}, { value: 0, label: name, color: color }); + const item: DoughnutChartConfig = acc.get(key) ?? Object.assign({}, { value: 0, label: name, color: color }); return acc.set(key, { ...item, value: item.value + dossierCount }); }, new Map()) .values(), diff --git a/apps/red-ui/src/app/services/entity-services/files-map.service.ts b/apps/red-ui/src/app/services/entity-services/files-map.service.ts index d71f717d1..ef789cf37 100644 --- a/apps/red-ui/src/app/services/entity-services/files-map.service.ts +++ b/apps/red-ui/src/app/services/entity-services/files-map.service.ts @@ -1,7 +1,6 @@ import { Injectable } from '@angular/core'; -import { File, IFile } from '@red/domain'; +import { DOSSIER_ID, File, IFile } from '@red/domain'; import { EntitiesMapService } from '@iqser/common-ui'; -import { DOSSIER_ID } from '@utils/constants'; @Injectable({ providedIn: 'root' }) export class FilesMapService extends EntitiesMapService { diff --git a/apps/red-ui/src/app/services/permissions.service.ts b/apps/red-ui/src/app/services/permissions.service.ts index 33210687e..ecd0da266 100644 --- a/apps/red-ui/src/app/services/permissions.service.ts +++ b/apps/red-ui/src/app/services/permissions.service.ts @@ -1,9 +1,8 @@ import { Injectable } from '@angular/core'; import { UserService } from './user.service'; -import { Dictionary, Dossier, File, IComment, IDossier } from '@red/domain'; +import { Dictionary, Dossier, DOSSIERS_ARCHIVE, File, IComment, IDossier } from '@red/domain'; import { FilesMapService } from '@services/entity-services/files-map.service'; import { FeaturesService } from '@services/features.service'; -import { DOSSIERS_ARCHIVE } from '@utils/constants'; @Injectable({ providedIn: 'root' }) export class PermissionsService { diff --git a/apps/red-ui/src/app/services/translate-chart.service.ts b/apps/red-ui/src/app/services/translate-chart.service.ts index 335022e91..30fd2b1ae 100644 --- a/apps/red-ui/src/app/services/translate-chart.service.ts +++ b/apps/red-ui/src/app/services/translate-chart.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/simple-doughnut-chart.component'; +import { DoughnutChartConfig } from '@red/domain'; import { TranslateService } from '@ngx-translate/core'; import { rolesTranslations } from '../translations/roles-translations'; import { workflowFileStatusTranslations } from '../translations/file-status-translations'; diff --git a/apps/red-ui/src/app/utils/constants.ts b/apps/red-ui/src/app/utils/constants.ts index 4fb7381f9..49a1379a1 100644 --- a/apps/red-ui/src/app/utils/constants.ts +++ b/apps/red-ui/src/app/utils/constants.ts @@ -1,10 +1,5 @@ export const CHANGED_CHECK_INTERVAL = 5000; export const FALLBACK_COLOR = '#CCCCCC'; -export const DOSSIER_ID = 'dossierId'; export const FILE_ID = 'fileId'; export const DOSSIER_TEMPLATE_ID = 'dossierTemplateId'; export const ENTITY_TYPE = 'entity'; -export const DOSSIERS_ARCHIVE = 'DOSSIERS_ARCHIVE'; - -export const ARCHIVE_ROUTE = 'archive'; -export const DOSSIERS_ROUTE = 'dossiers'; diff --git a/libs/red-domain/src/lib/dossier-templates/dashboard-stats.model.ts b/libs/red-domain/src/lib/dossier-templates/dashboard-stats.model.ts index d99a9b03c..d0c9c19c7 100644 --- a/libs/red-domain/src/lib/dossier-templates/dashboard-stats.model.ts +++ b/libs/red-domain/src/lib/dossier-templates/dashboard-stats.model.ts @@ -1,28 +1,13 @@ -import { IDashboardStats, ProcessingFileStatus, StatusSorter, WorkflowFileStatus } from '@red/domain'; -import { IListable } from '@iqser/common-ui'; -import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/simple-doughnut-chart.component'; +import { IListable, List } from '@iqser/common-ui'; +import { CountByStatus, CountPerProcessingStatus, CountPerWorkflowStatus, IDashboardStats } from './dashboard-stats'; +import { DoughnutChartConfig, StatusSorter } from '../shared'; export class DashboardStats implements IListable, IDashboardStats { - readonly dossierCountByStatus: [ - { - count: number; - statusId: string; - }, - ]; + readonly dossierCountByStatus: List; readonly dossierTemplateId: string; - readonly dossiersInTemplate: [string]; - readonly fileCountPerProcessingStatus: [ - { - readonly count: number; - readonly processingStatus: ProcessingFileStatus; - }, - ]; - readonly fileCountPerWorkflowStatus: [ - { - readonly count: number; - readonly workflowStatus: WorkflowFileStatus; - }, - ]; + readonly dossiersInTemplate: List; + readonly fileCountPerProcessingStatus: List; + readonly fileCountPerWorkflowStatus: List; readonly name: string; readonly numberOfActiveDossiers: number; readonly numberOfActiveFiles: number; diff --git a/libs/red-domain/src/lib/dossier-templates/dashboard-stats.ts b/libs/red-domain/src/lib/dossier-templates/dashboard-stats.ts index b7db72f1d..6233e2c5d 100644 --- a/libs/red-domain/src/lib/dossier-templates/dashboard-stats.ts +++ b/libs/red-domain/src/lib/dossier-templates/dashboard-stats.ts @@ -1,26 +1,28 @@ -import { ProcessingFileStatus, WorkflowFileStatus } from '@red/domain'; +import { ProcessingFileStatus, WorkflowFileStatus } from '../files'; +import { List } from '@iqser/common-ui'; + +interface Counter { + readonly count: number; +} + +export interface CountByStatus extends Counter { + readonly statusId: string; +} + +export interface CountPerProcessingStatus extends Counter { + readonly processingStatus: ProcessingFileStatus; +} + +export interface CountPerWorkflowStatus extends Counter { + readonly workflowStatus: WorkflowFileStatus; +} export interface IDashboardStats { - readonly dossierCountByStatus: [ - { - count: number; - statusId: string; - }, - ]; + readonly dossierCountByStatus: List; readonly dossierTemplateId: string; - readonly dossiersInTemplate: [string]; - readonly fileCountPerProcessingStatus: [ - { - readonly count: number; - readonly processingStatus: ProcessingFileStatus; - }, - ]; - readonly fileCountPerWorkflowStatus: [ - { - readonly count: number; - readonly workflowStatus: WorkflowFileStatus; - }, - ]; + readonly dossiersInTemplate: List; + readonly fileCountPerProcessingStatus: List; + readonly fileCountPerWorkflowStatus: List; readonly name: string; readonly numberOfActiveDossiers: number; readonly numberOfActiveFiles: number; diff --git a/libs/red-domain/src/lib/dossiers/constants.ts b/libs/red-domain/src/lib/dossiers/constants.ts new file mode 100644 index 000000000..95b78f4fa --- /dev/null +++ b/libs/red-domain/src/lib/dossiers/constants.ts @@ -0,0 +1,5 @@ +export const DOSSIER_ID = 'dossierId'; +export const DOSSIERS_ARCHIVE = 'DOSSIERS_ARCHIVE'; + +export const ARCHIVE_ROUTE = 'archive'; +export const DOSSIERS_ROUTE = 'dossiers'; diff --git a/libs/red-domain/src/lib/dossiers/dossier.model.ts b/libs/red-domain/src/lib/dossiers/dossier.model.ts index d84139928..63812d3fb 100644 --- a/libs/red-domain/src/lib/dossiers/dossier.model.ts +++ b/libs/red-domain/src/lib/dossiers/dossier.model.ts @@ -1,7 +1,7 @@ import { IListable, List } from '@iqser/common-ui'; import { IDossier } from './dossier'; import { DownloadFileType } from '../shared'; -import { ARCHIVE_ROUTE, DOSSIERS_ROUTE } from '@utils/constants'; +import { ARCHIVE_ROUTE, DOSSIERS_ROUTE } from './constants'; export class Dossier implements IDossier, IListable { readonly dossierId: string; @@ -49,7 +49,7 @@ export class Dossier implements IDossier, IListable { this.hasReviewers = !!this.memberIds && this.memberIds.length > 1; this.id = this.dossierId; - const routerPath = (this.isArchived ? ARCHIVE_ROUTE : DOSSIERS_ROUTE) as string; + const routerPath = this.isArchived ? ARCHIVE_ROUTE : DOSSIERS_ROUTE; this.dossiersListRouterLink = `/main/${this.dossierTemplateId}/${routerPath}`; this.routerLink = `${this.dossiersListRouterLink}/${this.dossierId}`; } diff --git a/libs/red-domain/src/lib/dossiers/index.ts b/libs/red-domain/src/lib/dossiers/index.ts index 7b25e441b..c82a6325c 100644 --- a/libs/red-domain/src/lib/dossiers/index.ts +++ b/libs/red-domain/src/lib/dossiers/index.ts @@ -1,4 +1,5 @@ export * from './dossier'; +export * from './constants'; export * from './dossier.request'; export * from './dossier.model'; export * from './dossier-changes'; diff --git a/libs/red-domain/src/lib/files/file.model.ts b/libs/red-domain/src/lib/files/file.model.ts index 764ea776e..38282f4f5 100644 --- a/libs/red-domain/src/lib/files/file.model.ts +++ b/libs/red-domain/src/lib/files/file.model.ts @@ -10,7 +10,7 @@ import { } from './types'; import { IFile } from './file'; import { FileAttributes } from '../file-attributes'; -import { ARCHIVE_ROUTE, DOSSIERS_ROUTE } from '@utils/constants'; +import { ARCHIVE_ROUTE, DOSSIERS_ROUTE } from '../dossiers'; export class File extends Entity implements IFile { readonly added?: string; diff --git a/libs/red-domain/src/lib/shared/charts.ts b/libs/red-domain/src/lib/shared/charts.ts new file mode 100644 index 000000000..e14be4ed1 --- /dev/null +++ b/libs/red-domain/src/lib/shared/charts.ts @@ -0,0 +1,9 @@ +import { Color } from './colors'; + +export interface DoughnutChartConfig { + value: number; + color: Color; + label: string; + key?: string; + active?: boolean; +} diff --git a/libs/red-domain/src/lib/shared/index.ts b/libs/red-domain/src/lib/shared/index.ts index 71892cfa0..b5bafb4d3 100644 --- a/libs/red-domain/src/lib/shared/index.ts +++ b/libs/red-domain/src/lib/shared/index.ts @@ -10,3 +10,4 @@ export * from './expandable-file-actions'; export * from './pdf.types'; export * from './logger-config'; export * from './admin-side-nav-types'; +export * from './charts';