RED-10768: Dossier loading improvement
This commit is contained in:
parent
f182be3db0
commit
76a4dc4cfb
@ -7,7 +7,12 @@ import { DashboardGuard } from '@guards/dashboard-guard.service';
|
||||
import { DossierFilesGuard } from '@guards/dossier-files-guard';
|
||||
import { templateExistsWhenEnteringDossierList } from '@guards/dossier-template-exists.guard';
|
||||
import { DossierTemplatesGuard } from '@guards/dossier-templates.guard';
|
||||
import { loadActiveDossiersGuard, loadAllDossiersGuard, loadArchivedDossiersGuard } from '@guards/dossiers.guard';
|
||||
import {
|
||||
loadActiveDossiersGuard,
|
||||
loadActiveDossiersForTemplateGuard,
|
||||
loadAllDossiersGuard,
|
||||
loadArchivedDossiersGuard,
|
||||
} from '@guards/dossiers.guard';
|
||||
import { isNotEditingFileAttributeGuard } from '@guards/file-attribute.guard';
|
||||
import { FeaturesGuard } from '@guards/features-guard.service';
|
||||
import { ifLoggedIn } from '@guards/if-logged-in.guard';
|
||||
@ -27,7 +32,7 @@ import { AuthErrorComponent } from '@components/auth-error/auth-error.component'
|
||||
const dossierTemplateIdRoutes: IqserRoutes = [
|
||||
{
|
||||
path: `${DOSSIERS_ROUTE}`,
|
||||
canActivate: [loadActiveDossiersGuard(), IqserPermissionsGuard],
|
||||
canActivate: [loadActiveDossiersForTemplateGuard(), IqserPermissionsGuard],
|
||||
data: {
|
||||
permissions: {
|
||||
allow: [Roles.files.readStatus],
|
||||
|
||||
@ -35,6 +35,20 @@ export function loadActiveDossiersGuard(): CanActivateFn {
|
||||
};
|
||||
}
|
||||
|
||||
export function loadActiveDossiersForTemplateGuard(): CanActivateFn {
|
||||
return async (route: ActivatedRouteSnapshot) => {
|
||||
const dossierTemplateId: string = route.paramMap.get(DOSSIER_TEMPLATE_ID);
|
||||
console.log(dossierTemplateId);
|
||||
const logger = inject(NGXLogger);
|
||||
logger.info('[GUARDS] loadActiveDossiersForTemplateGuard start');
|
||||
console.log(dossierTemplateId);
|
||||
await firstValueFrom(inject<ActiveDossiersService>(ACTIVE_DOSSIERS_SERVICE).loadDossiersByTemplate(dossierTemplateId));
|
||||
|
||||
logger.info('[GUARDS] loadActiveDossiersForTemplateGuard end');
|
||||
return true;
|
||||
};
|
||||
}
|
||||
|
||||
export function loadArchivedDossiersGuard(): CanActivateFn {
|
||||
return async (route: ActivatedRouteSnapshot) => {
|
||||
const logger = inject(NGXLogger);
|
||||
|
||||
@ -47,6 +47,17 @@ export abstract class DossiersService extends EntitiesService<IDossier, Dossier>
|
||||
);
|
||||
}
|
||||
|
||||
loadDossiersByTemplate(templateId: string): Observable<Dossier[]> {
|
||||
const dossierIds = (dossiers: Dossier[]) => dossiers.map(d => d.id);
|
||||
return this.getForTemplateId(templateId).pipe(
|
||||
mapEach(entity => new Dossier(entity)),
|
||||
/* Load stats before updating entities */
|
||||
switchMap(dossiers => this._dossierStatsService.getFor(dossierIds(dossiers)).pipe(map(() => dossiers))),
|
||||
switchMap(dossiers => this._dashboardStatsService.loadAll().pipe(map(() => dossiers))),
|
||||
tap(dossiers => this.setEntities(dossiers)),
|
||||
);
|
||||
}
|
||||
|
||||
updateDossier(dossier: Dossier): Observable<DossierStats[]> {
|
||||
this.replace(dossier);
|
||||
return this._dossierStatsService.getFor([dossier.id]);
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit 7f13fa62d3d2b346c609bc4978cff75f37f1ee6b
|
||||
Subproject commit a95012ad3bbc9cf6bc14323e183b510eb45e304e
|
||||
Loading…
x
Reference in New Issue
Block a user