RED-5898: Re-use dossier actions on archived dossiers listing
This commit is contained in:
parent
6c24ab99c5
commit
c351e3d809
@ -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}`,
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
</div>
|
||||
|
||||
<div class="cell">
|
||||
<span class="small-label">{{ dossier.archivedTime | date: 'd MMM yyyy' }}</span>
|
||||
<span class="small-label">{{ dossier.archivedTime | date : 'd MMM yyyy' }}</span>
|
||||
</div>
|
||||
|
||||
<div class="cell user-column">
|
||||
@ -13,20 +13,5 @@
|
||||
<div class="cell">
|
||||
<redaction-dossier-state [dossier]="dossier"></redaction-dossier-state>
|
||||
|
||||
<div class="action-buttons">
|
||||
<iqser-circle-button
|
||||
(action)="openEditDossierDialog($event, dossier.id)"
|
||||
*allow="roles.dossiers.read; if: currentUser.isUser"
|
||||
[icon]="(permissionsService.has$(roles.dossiers.edit) | async) && currentUser.isManager ? 'iqser:edit' : 'red:info'"
|
||||
[iqserHelpMode]="'edit_dossier_dossier_info'"
|
||||
[scrollableParentView]="scrollableParentView"
|
||||
[tooltip]="
|
||||
((permissionsService.has$(roles.dossiers.edit) | async) && currentUser.isManager
|
||||
? 'dossier-listing.edit.action'
|
||||
: 'dossier-listing.dossier-info.action'
|
||||
) | translate
|
||||
"
|
||||
[type]="circleButtonTypes.dark"
|
||||
></iqser-circle-button>
|
||||
</div>
|
||||
<redaction-dossiers-listing-actions [dossier]="dossier"></redaction-dossiers-listing-actions>
|
||||
</div>
|
||||
|
||||
@ -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<User>();
|
||||
|
||||
@Input() dossier!: Dossier;
|
||||
readonly stats$: Observable<DossierStats>;
|
||||
readonly #ngOnChanges$ = new BehaviorSubject<string>(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 });
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,6 +22,6 @@
|
||||
<div class="cell">
|
||||
<redaction-dossier-state [dossier]="dossier"></redaction-dossier-state>
|
||||
|
||||
<redaction-dossiers-listing-actions [dossier]="dossier" [stats]="stats"></redaction-dossiers-listing-actions>
|
||||
<redaction-dossiers-listing-actions [dossier]="dossier"></redaction-dossiers-listing-actions>
|
||||
</div>
|
||||
</ng-container>
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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,
|
||||
@ -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];
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit c91f923bfa7f138fc865b6576fb8398ae0ac2e8f
|
||||
Subproject commit f98109ca45147960805d1ddf28acc59fb50e4955
|
||||
Loading…
x
Reference in New Issue
Block a user