From c351e3d809fa49ea195ad4a68e21137aa4a73b44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Tue, 17 Jan 2023 06:23:17 +0200 Subject: [PATCH] RED-5898: Re-use dossier actions on archived dossiers listing --- .../modules/archive/archive-routing.module.ts | 8 ++++++- .../table-item/table-item.component.html | 19 ++------------- .../table-item/table-item.component.ts | 23 ++----------------- .../table-item/table-item.component.html | 2 +- .../dossiers-listing.module.ts | 7 +++--- .../dossiers-listing-actions.component.html | 0 .../dossiers-listing-actions.component.ts | 7 +++--- .../shared-dossiers/shared-dossiers.module.ts | 2 ++ .../src/app/services/permissions.service.ts | 1 + libs/common-ui | 2 +- 10 files changed, 22 insertions(+), 49 deletions(-) rename apps/red-ui/src/app/modules/{dossiers-listing => shared-dossiers}/components/dossiers-listing-actions/dossiers-listing-actions.component.html (100%) rename apps/red-ui/src/app/modules/{dossiers-listing => shared-dossiers}/components/dossiers-listing-actions/dossiers-listing-actions.component.ts (90%) 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 69315fb0d..3d27234d5 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 @@ -11,7 +11,13 @@ const routes: Routes = [ path: '', pathMatch: 'full', component: ArchivedDossiersScreenComponent, - data: { breadcrumbs: [BreadcrumbTypes.dossierTemplate] }, + canActivate: [CompositeRouteGuard], + data: { + routeGuards: [DossierFilesGuard], + breadcrumbs: [BreadcrumbTypes.dossierTemplate], + reuse: true, + dossiersService: ARCHIVED_DOSSIERS_SERVICE, + }, }, { path: `:${DOSSIER_ID}`, diff --git a/apps/red-ui/src/app/modules/archive/components/table-item/table-item.component.html b/apps/red-ui/src/app/modules/archive/components/table-item/table-item.component.html index f9ab61fec..9cd0842c7 100644 --- a/apps/red-ui/src/app/modules/archive/components/table-item/table-item.component.html +++ b/apps/red-ui/src/app/modules/archive/components/table-item/table-item.component.html @@ -3,7 +3,7 @@
- {{ dossier.archivedTime | date: 'd MMM yyyy' }} + {{ dossier.archivedTime | date : 'd MMM yyyy' }}
@@ -13,20 +13,5 @@
-
- -
+
diff --git a/apps/red-ui/src/app/modules/archive/components/table-item/table-item.component.ts b/apps/red-ui/src/app/modules/archive/components/table-item/table-item.component.ts index 93844afd4..a4b3e1658 100644 --- a/apps/red-ui/src/app/modules/archive/components/table-item/table-item.component.ts +++ b/apps/red-ui/src/app/modules/archive/components/table-item/table-item.component.ts @@ -1,11 +1,8 @@ import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core'; -import { Dossier, DossierStats, User } from '@red/domain'; +import { Dossier, DossierStats } from '@red/domain'; import { BehaviorSubject, Observable } from 'rxjs'; import { DossierStatsService } from '@services/dossiers/dossier-stats.service'; import { switchMap } from 'rxjs/operators'; -import { CircleButtonTypes, getCurrentUser, IqserPermissionsService, ScrollableParentView, ScrollableParentViews } from '@iqser/common-ui'; -import { DossiersDialogService } from '../../../shared-dossiers/services/dossiers-dialog.service'; -import { ROLES } from '@users/roles'; @Component({ selector: 'redaction-table-item [dossier]', @@ -13,33 +10,17 @@ import { ROLES } from '@users/roles'; changeDetection: ChangeDetectionStrategy.OnPush, }) export class TableItemComponent implements OnChanges { - readonly circleButtonTypes = CircleButtonTypes; - readonly roles = ROLES; - readonly currentUser = getCurrentUser(); - @Input() dossier!: Dossier; readonly stats$: Observable; readonly #ngOnChanges$ = new BehaviorSubject(undefined); - constructor( - readonly dossierStatsService: DossierStatsService, - readonly permissionsService: IqserPermissionsService, - private readonly _dialogService: DossiersDialogService, - ) { + constructor(readonly dossierStatsService: DossierStatsService) { this.stats$ = this.#ngOnChanges$.pipe(switchMap(dossierId => this.dossierStatsService.watch$(dossierId))); } - get scrollableParentView(): ScrollableParentView { - return ScrollableParentViews.VIRTUAL_SCROLL; - } - ngOnChanges() { if (this.dossier) { this.#ngOnChanges$.next(this.dossier.id); } } - - openEditDossierDialog($event: MouseEvent, dossierId: string): void { - this._dialogService.openDialog('editDossier', $event, { dossierId }); - } } diff --git a/apps/red-ui/src/app/modules/dossiers-listing/components/table-item/table-item.component.html b/apps/red-ui/src/app/modules/dossiers-listing/components/table-item/table-item.component.html index b8dd19023..e353a06f9 100644 --- a/apps/red-ui/src/app/modules/dossiers-listing/components/table-item/table-item.component.html +++ b/apps/red-ui/src/app/modules/dossiers-listing/components/table-item/table-item.component.html @@ -22,6 +22,6 @@
- +
diff --git a/apps/red-ui/src/app/modules/dossiers-listing/dossiers-listing.module.ts b/apps/red-ui/src/app/modules/dossiers-listing/dossiers-listing.module.ts index 73bc03d10..afe634317 100644 --- a/apps/red-ui/src/app/modules/dossiers-listing/dossiers-listing.module.ts +++ b/apps/red-ui/src/app/modules/dossiers-listing/dossiers-listing.module.ts @@ -1,6 +1,7 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { + CompositeRouteGuard, IqserButtonsModule, IqserHelpModeModule, IqserIconsModule, @@ -14,7 +15,6 @@ import { import { TranslateModule } from '@ngx-translate/core'; import { DossiersListingScreenComponent } from './screen/dossiers-listing-screen.component'; import { RouterModule, Routes } from '@angular/router'; -import { DossiersListingActionsComponent } from './components/dossiers-listing-actions/dossiers-listing-actions.component'; import { SharedModule } from '@shared/shared.module'; import { DossiersListingDetailsComponent } from './components/dossiers-listing-details/dossiers-listing-details.component'; import { ConfigService } from './config.service'; @@ -30,15 +30,14 @@ const routes: Routes = [ path: '', component: DossiersListingScreenComponent, pathMatch: 'full', - canActivate: [DossierFilesGuard], - data: { reuse: true, dossiersService: ACTIVE_DOSSIERS_SERVICE }, + canActivate: [CompositeRouteGuard], + data: { guards: [DossierFilesGuard], reuse: true, dossiersService: ACTIVE_DOSSIERS_SERVICE }, }, ]; @NgModule({ declarations: [ DossiersListingScreenComponent, - DossiersListingActionsComponent, DossiersListingDetailsComponent, DossierWorkloadColumnComponent, TableItemComponent, diff --git a/apps/red-ui/src/app/modules/dossiers-listing/components/dossiers-listing-actions/dossiers-listing-actions.component.html b/apps/red-ui/src/app/modules/shared-dossiers/components/dossiers-listing-actions/dossiers-listing-actions.component.html similarity index 100% rename from apps/red-ui/src/app/modules/dossiers-listing/components/dossiers-listing-actions/dossiers-listing-actions.component.html rename to apps/red-ui/src/app/modules/shared-dossiers/components/dossiers-listing-actions/dossiers-listing-actions.component.html diff --git a/apps/red-ui/src/app/modules/dossiers-listing/components/dossiers-listing-actions/dossiers-listing-actions.component.ts b/apps/red-ui/src/app/modules/shared-dossiers/components/dossiers-listing-actions/dossiers-listing-actions.component.ts similarity index 90% rename from apps/red-ui/src/app/modules/dossiers-listing/components/dossiers-listing-actions/dossiers-listing-actions.component.ts rename to apps/red-ui/src/app/modules/shared-dossiers/components/dossiers-listing-actions/dossiers-listing-actions.component.ts index 0787616f5..e5c21e317 100644 --- a/apps/red-ui/src/app/modules/dossiers-listing/components/dossiers-listing-actions/dossiers-listing-actions.component.ts +++ b/apps/red-ui/src/app/modules/shared-dossiers/components/dossiers-listing-actions/dossiers-listing-actions.component.ts @@ -1,8 +1,8 @@ import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core'; import { PermissionsService } from '@services/permissions.service'; import { CircleButtonTypes, getCurrentUser, IqserPermissionsService, ScrollableParentView, ScrollableParentViews } from '@iqser/common-ui'; -import { Dossier, DossierStats, File, User } from '@red/domain'; -import { DossiersDialogService } from '../../../shared-dossiers/services/dossiers-dialog.service'; +import { Dossier, File, User } from '@red/domain'; +import { DossiersDialogService } from '../../services/dossiers-dialog.service'; import { LongPressEvent } from '@shared/directives/long-press.directive'; import { UserPreferenceService } from '@users/user-preference.service'; import { FilesMapService } from '@services/files/files-map.service'; @@ -11,7 +11,7 @@ import { firstValueFrom } from 'rxjs'; import { ROLES } from '@users/roles'; @Component({ - selector: 'redaction-dossiers-listing-actions', + selector: 'redaction-dossiers-listing-actions [dossier]', templateUrl: './dossiers-listing-actions.component.html', changeDetection: ChangeDetectionStrategy.OnPush, }) @@ -25,7 +25,6 @@ export class DossiersListingActionsComponent implements OnChanges { displayReanalyseBtn = false; @Input() dossier: Dossier; - @Input() stats: DossierStats; constructor( private readonly _reanalysisService: ReanalysisService, diff --git a/apps/red-ui/src/app/modules/shared-dossiers/shared-dossiers.module.ts b/apps/red-ui/src/app/modules/shared-dossiers/shared-dossiers.module.ts index 1db620217..130608f62 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/shared-dossiers.module.ts +++ b/apps/red-ui/src/app/modules/shared-dossiers/shared-dossiers.module.ts @@ -24,6 +24,7 @@ import { IqserUsersModule, } from '@iqser/common-ui'; import { TranslateModule } from '@ngx-translate/core'; +import { DossiersListingActionsComponent } from './components/dossiers-listing-actions/dossiers-listing-actions.component'; const components = [ FileActionsComponent, @@ -34,6 +35,7 @@ const components = [ EditDossierTeamComponent, FileActionsComponent, DateColumnComponent, + DossiersListingActionsComponent, ]; const dialogs = [EditDossierDialogComponent, AssignReviewerApproverDialogComponent, DictionaryDetailsDialogComponent]; const services = [DossiersDialogService, FileAssignService]; diff --git a/apps/red-ui/src/app/services/permissions.service.ts b/apps/red-ui/src/app/services/permissions.service.ts index f82d8483e..4b18dd750 100644 --- a/apps/red-ui/src/app/services/permissions.service.ts +++ b/apps/red-ui/src/app/services/permissions.service.ts @@ -65,6 +65,7 @@ export class PermissionsService { displayReanalyseBtn(dossier: Dossier): boolean { return ( + dossier.isActive && this._iqserPermissionsService.has(ROLES.dossiers.reanalyze) && this.isApprover(dossier) && !!this._filesMapService.get(dossier.id).find(f => f.analysisRequired) diff --git a/libs/common-ui b/libs/common-ui index c91f923bf..f98109ca4 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit c91f923bfa7f138fc865b6576fb8398ae0ac2e8f +Subproject commit f98109ca45147960805d1ddf28acc59fb50e4955