Entity url param constant

This commit is contained in:
Adina Țeudan 2022-02-14 12:16:24 +02:00
parent 56b93d908a
commit d3d8b16f8e
27 changed files with 62 additions and 32 deletions

View File

@ -4,6 +4,7 @@ import { DossiersService } from '@services/entity-services/dossiers.service';
import { FilesMapService } from '@services/entity-services/files-map.service'; import { FilesMapService } from '@services/entity-services/files-map.service';
import { FilesService } from '@services/entity-services/files.service'; import { FilesService } from '@services/entity-services/files.service';
import { firstValueFrom } from 'rxjs'; import { firstValueFrom } from 'rxjs';
import { DOSSIER_ID } from '@utils/constants';
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class DossierFilesGuard implements CanActivate { export class DossierFilesGuard implements CanActivate {
@ -15,7 +16,7 @@ export class DossierFilesGuard implements CanActivate {
) {} ) {}
async canActivate(route: ActivatedRouteSnapshot): Promise<boolean> { async canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {
const dossierId = route.paramMap.get('dossierId'); const dossierId = route.paramMap.get(DOSSIER_ID);
if (!this._dossiersService.has(dossierId)) { if (!this._dossiersService.has(dossierId)) {
await this._router.navigate(['/main', 'dossiers']); await this._router.navigate(['/main', 'dossiers']);

View File

@ -2,6 +2,7 @@ import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router'; import { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';
import { FilesMapService } from '@services/entity-services/files-map.service'; import { FilesMapService } from '@services/entity-services/files-map.service';
import { DossiersService } from '@services/entity-services/dossiers.service'; import { DossiersService } from '@services/entity-services/dossiers.service';
import { DOSSIER_ID, FILE_ID } from '@utils/constants';
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class FilePreviewGuard implements CanActivate { export class FilePreviewGuard implements CanActivate {
@ -12,8 +13,8 @@ export class FilePreviewGuard implements CanActivate {
) {} ) {}
async canActivate(route: ActivatedRouteSnapshot): Promise<boolean> { async canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {
const dossierId = route.paramMap.get('dossierId'); const dossierId = route.paramMap.get(DOSSIER_ID);
const fileId = route.paramMap.get('fileId'); const fileId = route.paramMap.get(FILE_ID);
const dossier = this._dossiersService.find(dossierId); const dossier = this._dossiersService.find(dossierId);

View File

@ -4,6 +4,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { adminSideNavTranslations } from '../translations/admin-side-nav-translations'; import { adminSideNavTranslations } from '../translations/admin-side-nav-translations';
import { UserService } from '@services/user.service'; import { UserService } from '@services/user.service';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { DICTIONARY_TYPE } from '@utils/constants';
type Type = 'settings' | 'dossierTemplates'; type Type = 'settings' | 'dossierTemplates';
@ -77,6 +78,6 @@ export class AdminSideNavComponent implements OnInit {
} }
ngOnInit(): void { ngOnInit(): void {
this.prefix = this._route.snapshot.paramMap.get('dictionary') ? '../../' : '../'; this.prefix = this._route.snapshot.paramMap.get(DICTIONARY_TYPE) ? '../../' : '../';
} }
} }

View File

@ -5,6 +5,7 @@ import { map, switchMap } from 'rxjs/operators';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { Dictionary, DossierTemplate } from '@red/domain'; import { Dictionary, DossierTemplate } from '@red/domain';
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service'; import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
@Component({ @Component({
selector: 'redaction-dossier-template-breadcrumbs', selector: 'redaction-dossier-template-breadcrumbs',
@ -22,11 +23,11 @@ export class DossierTemplateBreadcrumbsComponent {
private readonly _route: ActivatedRoute, private readonly _route: ActivatedRoute,
) { ) {
this.dossierTemplate$ = _route.paramMap.pipe( this.dossierTemplate$ = _route.paramMap.pipe(
map(params => params.get('dossierTemplateId')), map(params => params.get(DOSSIER_TEMPLATE_ID)),
switchMap((dossierTemplateId: string) => this._dossierTemplatesService.getEntityChanged$(dossierTemplateId)), switchMap((dossierTemplateId: string) => this._dossierTemplatesService.getEntityChanged$(dossierTemplateId)),
); );
this.activeDictionary$ = _route.paramMap.pipe( this.activeDictionary$ = _route.paramMap.pipe(
map(params => [params.get('dossierTemplateId'), params.get('dictionary')]), map(params => [params.get(DOSSIER_TEMPLATE_ID), params.get('dictionary')]),
switchMap(([dossierTemplateId, dictionary]: [string, string]) => switchMap(([dossierTemplateId, dictionary]: [string, string]) =>
dictionary ? this._dictionariesMapService.watch$(dossierTemplateId, dictionary) : of(undefined), dictionary ? this._dictionariesMapService.watch$(dossierTemplateId, dictionary) : of(undefined),
), ),

View File

@ -16,6 +16,7 @@ import { DictionaryService } from '@shared/services/dictionary.service';
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
import { firstValueFrom } from 'rxjs'; import { firstValueFrom } from 'rxjs';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
interface ListItem extends IListable { interface ListItem extends IListable {
readonly key: string; readonly key: string;
@ -50,7 +51,7 @@ export class DefaultColorsScreenComponent extends ListingComponent<ListItem> {
private readonly _route: ActivatedRoute, private readonly _route: ActivatedRoute,
) { ) {
super(_injector); super(_injector);
this.#dossierTemplateId = _route.snapshot.paramMap.get('dossierTemplateId'); this.#dossierTemplateId = _route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID);
} }
openEditColorDialog($event: MouseEvent, color: { key: DefaultColorType | string; value: string }) { openEditColorDialog($event: MouseEvent, color: { key: DefaultColorType | string; value: string }) {
@ -79,7 +80,7 @@ export class DefaultColorsScreenComponent extends ListingComponent<ListItem> {
searchKey: key, searchKey: key,
value: data[key], value: data[key],
})) }))
.filter(entry => entry.id !== 'dossierTemplateId'); .filter(entry => entry.id !== DOSSIER_TEMPLATE_ID);
this.entitiesService.setEntities(entities); this.entitiesService.setEntities(entities);
this._loadingService.stop(); this._loadingService.stop();
} }

View File

@ -20,6 +20,7 @@ import { DossierTemplateStatsService } from '@services/entity-services/dossier-t
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { tap } from 'rxjs/operators'; import { tap } from 'rxjs/operators';
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service'; import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
@Component({ @Component({
templateUrl: './dictionary-listing-screen.component.html', templateUrl: './dictionary-listing-screen.component.html',
@ -54,7 +55,7 @@ export class DictionaryListingScreenComponent extends ListingComponent<Dictionar
) { ) {
super(_injector); super(_injector);
_loadingService.start(); _loadingService.start();
this.#dossierTemplateId = _route.snapshot.paramMap.get('dossierTemplateId'); this.#dossierTemplateId = _route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID);
this.templateStats$ = this._dossierTemplateStatsService this.templateStats$ = this._dossierTemplateStatsService
.watch$(this.#dossierTemplateId) .watch$(this.#dossierTemplateId)
.pipe(tap(templateStats => this._loadDictionaryData(templateStats))); .pipe(tap(templateStats => this._loadDictionaryData(templateStats)));

View File

@ -11,6 +11,7 @@ import { Dictionary } from '@red/domain';
import { firstValueFrom, Observable, of } from 'rxjs'; import { firstValueFrom, Observable, of } from 'rxjs';
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service'; import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
import { map, switchMap } from 'rxjs/operators'; import { map, switchMap } from 'rxjs/operators';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
@Component({ @Component({
templateUrl: './dictionary-overview-screen.component.html', templateUrl: './dictionary-overview-screen.component.html',
@ -41,7 +42,7 @@ export class DictionaryOverviewScreenComponent {
private readonly _route: ActivatedRoute, private readonly _route: ActivatedRoute,
) { ) {
this.dictionary$ = _route.paramMap.pipe( this.dictionary$ = _route.paramMap.pipe(
map(params => [params.get('dossierTemplateId'), params.get('dictionary')]), map(params => [params.get(DOSSIER_TEMPLATE_ID), params.get('dictionary')]),
switchMap(([dossierTemplateId, dictionary]: [string, string]) => switchMap(([dossierTemplateId, dictionary]: [string, string]) =>
dossierTemplateId ? this._dictionariesMapService.watch$(dossierTemplateId, dictionary) : of(undefined), dossierTemplateId ? this._dictionariesMapService.watch$(dossierTemplateId, dictionary) : of(undefined),
), ),

View File

@ -17,6 +17,7 @@ import { DossierAttributeConfig, IDossierAttributeConfig } from '@red/domain';
import { firstValueFrom } from 'rxjs'; import { firstValueFrom } from 'rxjs';
import { ReportTemplateService } from '../../../../services/report-template.service'; import { ReportTemplateService } from '../../../../services/report-template.service';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
@Component({ @Component({
templateUrl: './dossier-attributes-listing-screen.component.html', templateUrl: './dossier-attributes-listing-screen.component.html',
@ -50,7 +51,7 @@ export class DossierAttributesListingScreenComponent extends ListingComponent<Do
private readonly _route: ActivatedRoute, private readonly _route: ActivatedRoute,
) { ) {
super(_injector); super(_injector);
this.#dossierTemplateId = _route.snapshot.paramMap.get('dossierTemplateId'); this.#dossierTemplateId = _route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID);
} }
async ngOnInit(): Promise<void> { async ngOnInit(): Promise<void> {

View File

@ -19,6 +19,7 @@ import { firstValueFrom } from 'rxjs';
import { ReportTemplateService } from '../../../../services/report-template.service'; import { ReportTemplateService } from '../../../../services/report-template.service';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
@Component({ @Component({
templateUrl: './file-attributes-listing-screen.component.html', templateUrl: './file-attributes-listing-screen.component.html',
@ -65,7 +66,7 @@ export class FileAttributesListingScreenComponent extends ListingComponent<FileA
private readonly _route: ActivatedRoute, private readonly _route: ActivatedRoute,
) { ) {
super(_injector); super(_injector);
this.#dossierTemplateId = _route.snapshot.paramMap.get('dossierTemplateId'); this.#dossierTemplateId = _route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID);
} }
private get _numberOfDisplayedAttrs(): number { private get _numberOfDisplayedAttrs(): number {

View File

@ -6,6 +6,7 @@ import { DossierTemplate, DossierTemplateStats } from '@red/domain';
import { DossierTemplateStatsService } from '@services/entity-services/dossier-template-stats.service'; import { DossierTemplateStatsService } from '@services/entity-services/dossier-template-stats.service';
import { AdminDialogService } from '../../../services/admin-dialog.service'; import { AdminDialogService } from '../../../services/admin-dialog.service';
import { PermissionsService } from '@services/permissions.service'; import { PermissionsService } from '@services/permissions.service';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
@Component({ @Component({
templateUrl: './dossier-template-info-screen.component.html', templateUrl: './dossier-template-info-screen.component.html',
@ -23,7 +24,7 @@ export class DossierTemplateInfoScreenComponent {
private readonly _route: ActivatedRoute, private readonly _route: ActivatedRoute,
readonly permissionsService: PermissionsService, readonly permissionsService: PermissionsService,
) { ) {
const dossierTemplateId = _route.snapshot.paramMap.get('dossierTemplateId'); const dossierTemplateId = _route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID);
this.dossierTemplate$ = this._dossierTemplatesService.getEntityChanged$(dossierTemplateId); this.dossierTemplate$ = this._dossierTemplatesService.getEntityChanged$(dossierTemplateId);
this.dossierTemplateStats$ = this._dossierTemplateStatsService.watch$(dossierTemplateId); this.dossierTemplateStats$ = this._dossierTemplateStatsService.watch$(dossierTemplateId);
} }

View File

@ -16,6 +16,7 @@ import { UserService } from '@services/user.service';
import { UserPreferenceService } from '@services/user-preference.service'; import { UserPreferenceService } from '@services/user-preference.service';
import { firstValueFrom } from 'rxjs'; import { firstValueFrom } from 'rxjs';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
@Component({ @Component({
selector: 'redaction-justifications-screen', selector: 'redaction-justifications-screen',
@ -50,7 +51,7 @@ export class JustificationsScreenComponent extends ListingComponent<Justificatio
private readonly _route: ActivatedRoute, private readonly _route: ActivatedRoute,
) { ) {
super(_injector); super(_injector);
this.#dossierTemplateId = _route.snapshot.paramMap.get('dossierTemplateId'); this.#dossierTemplateId = _route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID);
} }
async ngOnInit(): Promise<void> { async ngOnInit(): Promise<void> {

View File

@ -5,6 +5,7 @@ import { JustificationsDialogService } from '../justifications-dialog.service';
import { UserService } from '@services/user.service'; import { UserService } from '@services/user.service';
import { UserPreferenceService } from '@services/user-preference.service'; import { UserPreferenceService } from '@services/user-preference.service';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
@Component({ @Component({
selector: 'redaction-table-item', selector: 'redaction-table-item',
@ -25,7 +26,7 @@ export class TableItemComponent {
readonly userService: UserService, readonly userService: UserService,
private readonly _route: ActivatedRoute, private readonly _route: ActivatedRoute,
) { ) {
this.#dossierTemplateId = _route.snapshot.paramMap.get('dossierTemplateId'); this.#dossierTemplateId = _route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID);
} }
openEditJustificationDialog() { openEditJustificationDialog() {

View File

@ -14,6 +14,7 @@ import { DossierTemplatesService } from '@services/entity-services/dossier-templ
import { ReportTemplateService } from '@services/report-template.service'; import { ReportTemplateService } from '@services/report-template.service';
import { BehaviorSubject, firstValueFrom } from 'rxjs'; import { BehaviorSubject, firstValueFrom } from 'rxjs';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
interface Placeholder { interface Placeholder {
placeholder: string; placeholder: string;
@ -46,7 +47,7 @@ export class ReportsScreenComponent implements OnInit {
private readonly _route: ActivatedRoute, private readonly _route: ActivatedRoute,
readonly permissionsService: PermissionsService, readonly permissionsService: PermissionsService,
) { ) {
this.#dossierTemplateId = _route.snapshot.paramMap.get('dossierTemplateId'); this.#dossierTemplateId = _route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID);
} }
async ngOnInit() { async ngOnInit() {

View File

@ -7,6 +7,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { RulesService } from '../../../services/rules.service'; import { RulesService } from '../../../services/rules.service';
import { firstValueFrom } from 'rxjs'; import { firstValueFrom } from 'rxjs';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
import ICodeEditor = monaco.editor.ICodeEditor; import ICodeEditor = monaco.editor.ICodeEditor;
import IModelDeltaDecoration = monaco.editor.IModelDeltaDecoration; import IModelDeltaDecoration = monaco.editor.IModelDeltaDecoration;
import IStandaloneEditorConstructionOptions = monaco.editor.IStandaloneEditorConstructionOptions; import IStandaloneEditorConstructionOptions = monaco.editor.IStandaloneEditorConstructionOptions;
@ -47,7 +48,7 @@ export class RulesScreenComponent implements OnInit {
private readonly _loadingService: LoadingService, private readonly _loadingService: LoadingService,
private readonly _route: ActivatedRoute, private readonly _route: ActivatedRoute,
) { ) {
this.#dossierTemplateId = _route.snapshot.paramMap.get('dossierTemplateId'); this.#dossierTemplateId = _route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID);
} }
set isLeavingPage(isLeaving: boolean) { set isLeavingPage(isLeaving: boolean) {

View File

@ -14,6 +14,7 @@ import { WatermarkService } from '@shared/services/watermark.service';
import { firstValueFrom, Observable, of, switchMap } from 'rxjs'; import { firstValueFrom, Observable, of, switchMap } from 'rxjs';
import { catchError, tap } from 'rxjs/operators'; import { catchError, tap } from 'rxjs/operators';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
export const DEFAULT_WATERMARK: IWatermark = { export const DEFAULT_WATERMARK: IWatermark = {
text: null, text: null,
@ -51,7 +52,7 @@ export class WatermarkScreenComponent {
private readonly _route: ActivatedRoute, private readonly _route: ActivatedRoute,
) { ) {
this._loadingService.start(); this._loadingService.start();
this.#dossierTemplateId = this._route.snapshot.paramMap.get('dossierTemplateId'); this.#dossierTemplateId = this._route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID);
} }
get changed(): boolean { get changed(): boolean {

View File

@ -6,6 +6,7 @@ import { UserService } from '@services/user.service';
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
import { firstValueFrom } from 'rxjs'; import { firstValueFrom } from 'rxjs';
import { DictionaryService } from '../../../../shared/services/dictionary.service'; import { DictionaryService } from '../../../../shared/services/dictionary.service';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
@Component({ @Component({
selector: 'redaction-dossier-template-actions', selector: 'redaction-dossier-template-actions',
@ -30,7 +31,7 @@ export class DossierTemplateActionsComponent implements OnInit {
) {} ) {}
ngOnInit() { ngOnInit() {
this.dossierTemplateId ??= this._route.snapshot.paramMap.get('dossierTemplateId'); this.dossierTemplateId ??= this._route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID);
} }
openEditDossierTemplateDialog($event: MouseEvent) { openEditDossierTemplateDialog($event: MouseEvent) {

View File

@ -9,6 +9,7 @@ import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
import { ReportTemplateService } from '@services/report-template.service'; import { ReportTemplateService } from '@services/report-template.service';
import { firstValueFrom } from 'rxjs'; import { firstValueFrom } from 'rxjs';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
@Component({ @Component({
templateUrl: './add-dossier-dialog.component.html', templateUrl: './add-dossier-dialog.component.html',
@ -129,7 +130,7 @@ export class AddDossierDialogComponent extends BaseDialogComponent {
dossierName: this.form.get('dossierName').value, dossierName: this.form.get('dossierName').value,
description: this.form.get('description').value, description: this.form.get('description').value,
dueDate: this.hasDueDate ? this.form.get('dueDate').value : undefined, dueDate: this.hasDueDate ? this.form.get('dueDate').value : undefined,
dossierTemplateId: this.form.get('dossierTemplateId').value, dossierTemplateId: this.form.get(DOSSIER_TEMPLATE_ID).value,
downloadFileTypes: this.form.get('downloadFileTypes').value, downloadFileTypes: this.form.get('downloadFileTypes').value,
reportTemplateIds: this.form.get('reportTemplateIds').value, reportTemplateIds: this.form.get('reportTemplateIds').value,
watermarkEnabled: this.form.get('watermarkEnabled').value, watermarkEnabled: this.form.get('watermarkEnabled').value,

View File

@ -14,6 +14,7 @@ import { DossiersService } from '@services/entity-services/dossiers.service';
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
import { DossierStatsService } from '@services/entity-services/dossier-stats.service'; import { DossierStatsService } from '@services/entity-services/dossier-stats.service';
import { firstValueFrom } from 'rxjs'; import { firstValueFrom } from 'rxjs';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
@Component({ @Component({
selector: 'redaction-edit-dossier-general-info', selector: 'redaction-edit-dossier-general-info',
@ -94,7 +95,7 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
watermarkEnabled: this.form.get('watermarkEnabled').value, watermarkEnabled: this.form.get('watermarkEnabled').value,
watermarkPreviewEnabled: this.form.get('watermarkPreviewEnabled').value, watermarkPreviewEnabled: this.form.get('watermarkPreviewEnabled').value,
dueDate: this.hasDueDate ? this.form.get('dueDate').value : undefined, dueDate: this.hasDueDate ? this.form.get('dueDate').value : undefined,
dossierTemplateId: this.form.get('dossierTemplateId').value, dossierTemplateId: this.form.get(DOSSIER_TEMPLATE_ID).value,
} as IDossierRequest; } as IDossierRequest;
try { try {
await firstValueFrom(this._dossiersService.createOrUpdate(dossier)); await firstValueFrom(this._dossiersService.createOrUpdate(dossier));

View File

@ -13,6 +13,7 @@ import { DossierStatsService } from '@services/entity-services/dossier-stats.ser
import { pluck, switchMap } from 'rxjs/operators'; import { pluck, switchMap } from 'rxjs/operators';
import { DossiersDialogService } from '../../../../services/dossiers-dialog.service'; import { DossiersDialogService } from '../../../../services/dossiers-dialog.service';
import { FilesService } from '@services/entity-services/files.service'; import { FilesService } from '@services/entity-services/files.service';
import { DOSSIER_ID } from '@utils/constants';
@Component({ @Component({
selector: 'redaction-dossier-details', selector: 'redaction-dossier-details',
@ -45,7 +46,7 @@ export class DossierDetailsComponent {
private readonly _dialogService: DossiersDialogService, private readonly _dialogService: DossiersDialogService,
activatedRoute: ActivatedRoute, activatedRoute: ActivatedRoute,
) { ) {
this.dossierId = activatedRoute.snapshot.paramMap.get('dossierId'); this.dossierId = activatedRoute.snapshot.paramMap.get(DOSSIER_ID);
this.dossier$ = this.dossiersService.getEntityChanged$(this.dossierId).pipe(shareLast()); this.dossier$ = this.dossiersService.getEntityChanged$(this.dossierId).pipe(shareLast());
this.dossierStats$ = this.dossier$.pipe( this.dossierStats$ = this.dossier$.pipe(
pluck('dossierId'), pluck('dossierId'),

View File

@ -44,6 +44,7 @@ import { LongPressEvent } from '@shared/directives/long-press.directive';
import { UserPreferenceService } from '@services/user-preference.service'; import { UserPreferenceService } from '@services/user-preference.service';
import { FilesMapService } from '@services/entity-services/files-map.service'; import { FilesMapService } from '@services/entity-services/files-map.service';
import { FilesService } from '@services/entity-services/files.service'; import { FilesService } from '@services/entity-services/files.service';
import { DOSSIER_ID } from '@utils/constants';
@Component({ @Component({
templateUrl: './dossier-overview-screen.component.html', templateUrl: './dossier-overview-screen.component.html',
@ -93,7 +94,7 @@ export class DossierOverviewScreenComponent extends ListingComponent<File> imple
readonly activatedRoute: ActivatedRoute, readonly activatedRoute: ActivatedRoute,
) { ) {
super(_injector); super(_injector);
this.dossierId = activatedRoute.snapshot.paramMap.get('dossierId'); this.dossierId = activatedRoute.snapshot.paramMap.get(DOSSIER_ID);
this.dossier$ = this._dossiersService this.dossier$ = this._dossiersService
.getEntityChanged$(this.dossierId) .getEntityChanged$(this.dossierId)
.pipe(tap(dossier => (this.dossierTemplateId = dossier.dossierTemplateId))); .pipe(tap(dossier => (this.dossierTemplateId = dossier.dossierTemplateId)));

View File

@ -9,6 +9,7 @@ import { PermissionsService } from '../../../../../services/permissions.service'
import { boolFactory, shareLast } from '@iqser/common-ui'; import { boolFactory, shareLast } from '@iqser/common-ui';
import { filter, startWith } from 'rxjs/operators'; import { filter, startWith } from 'rxjs/operators';
import { FileManagementService } from '@services/entity-services/file-management.service'; import { FileManagementService } from '@services/entity-services/file-management.service';
import { DOSSIER_ID, FILE_ID } from '@utils/constants';
@Injectable() @Injectable()
export class FilePreviewStateService { export class FilePreviewStateService {
@ -32,8 +33,8 @@ export class FilePreviewStateService {
activatedRoute: ActivatedRoute, activatedRoute: ActivatedRoute,
private readonly _fileManagementService: FileManagementService, private readonly _fileManagementService: FileManagementService,
) { ) {
this.fileId = activatedRoute.snapshot.paramMap.get('fileId'); this.fileId = activatedRoute.snapshot.paramMap.get(FILE_ID);
this.dossierId = activatedRoute.snapshot.paramMap.get('dossierId'); this.dossierId = activatedRoute.snapshot.paramMap.get(DOSSIER_ID);
this.dossierTemplateId = dossiersService.find(this.dossierId).dossierTemplateId; this.dossierTemplateId = dossiersService.find(this.dossierId).dossierTemplateId;
this.dossier$ = dossiersService.getEntityChanged$(this.dossierId); this.dossier$ = dossiersService.getEntityChanged$(this.dossierId);

View File

@ -7,6 +7,7 @@ import { FilesMapService } from '@services/entity-services/files-map.service';
import { DossiersService } from '@services/entity-services/dossiers.service'; import { DossiersService } from '@services/entity-services/dossiers.service';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { BreadcrumbTypes } from '@red/domain'; import { BreadcrumbTypes } from '@red/domain';
import { DOSSIER_ID, FILE_ID } from '@utils/constants';
export type RouterLinkActiveOptions = { exact: boolean } | IsActiveMatchOptions; export type RouterLinkActiveOptions = { exact: boolean } | IsActiveMatchOptions;
@ -82,7 +83,7 @@ export class BreadcrumbsService {
} }
private _addDossierBreadcrumb(route: ActivatedRouteSnapshot): void { private _addDossierBreadcrumb(route: ActivatedRouteSnapshot): void {
const dossierId = route.paramMap.get('dossierId'); const dossierId = route.paramMap.get(DOSSIER_ID);
this._append({ this._append({
name$: this._dossiersService.getEntityChanged$(dossierId).pipe(pluck('dossierName')), name$: this._dossiersService.getEntityChanged$(dossierId).pipe(pluck('dossierName')),
routerLink: ['/main', 'dossiers', dossierId], routerLink: ['/main', 'dossiers', dossierId],
@ -91,8 +92,8 @@ export class BreadcrumbsService {
} }
private _addFileBreadcrumb(route: ActivatedRouteSnapshot): void { private _addFileBreadcrumb(route: ActivatedRouteSnapshot): void {
const dossierId = route.paramMap.get('dossierId'); const dossierId = route.paramMap.get(DOSSIER_ID);
const fileId = route.paramMap.get('fileId'); const fileId = route.paramMap.get(FILE_ID);
this._append({ this._append({
name$: this._filesMapService.watch$(dossierId, fileId).pipe(pluck('filename')), name$: this._filesMapService.watch$(dossierId, fileId).pipe(pluck('filename')),
routerLink: ['/main', 'dossiers', dossierId, 'file', fileId], routerLink: ['/main', 'dossiers', dossierId, 'file', fileId],

View File

@ -1,11 +1,12 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { Dictionary, IDictionary } from '@red/domain'; import { Dictionary, IDictionary } from '@red/domain';
import { EntitiesMapService } from '@iqser/common-ui'; import { EntitiesMapService } from '@iqser/common-ui';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class DictionariesMapService extends EntitiesMapService<Dictionary, IDictionary> { export class DictionariesMapService extends EntitiesMapService<Dictionary, IDictionary> {
constructor() { constructor() {
super('dossierTemplateId'); super(DOSSIER_TEMPLATE_ID);
} }
/** If the type is not found, it returns the 'default' type. */ /** If the type is not found, it returns the 'default' type. */

View File

@ -1,12 +1,13 @@
import { Injectable, Injector } from '@angular/core'; import { Injectable, Injector } from '@angular/core';
import { StatsService } from '@iqser/common-ui'; import { StatsService } from '@iqser/common-ui';
import { DossierStats, IDossierStats } from '@red/domain'; import { DossierStats, IDossierStats } from '@red/domain';
import { DOSSIER_ID } from '@utils/constants';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
}) })
export class DossierStatsService extends StatsService<DossierStats, IDossierStats> { export class DossierStatsService extends StatsService<DossierStats, IDossierStats> {
constructor(protected readonly _injector: Injector) { constructor(protected readonly _injector: Injector) {
super(_injector, 'dossierId', DossierStats, 'dossier-stats'); super(_injector, DOSSIER_ID, DossierStats, 'dossier-stats');
} }
} }

View File

@ -1,12 +1,13 @@
import { Injectable, Injector } from '@angular/core'; import { Injectable, Injector } from '@angular/core';
import { StatsService } from '@iqser/common-ui'; import { StatsService } from '@iqser/common-ui';
import { DossierTemplateStats, IDossierTemplateStats } from '@red/domain'; import { DossierTemplateStats, IDossierTemplateStats } from '@red/domain';
import { DOSSIER_TEMPLATE_ID } from '@utils/constants';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
}) })
export class DossierTemplateStatsService extends StatsService<DossierTemplateStats, IDossierTemplateStats> { export class DossierTemplateStatsService extends StatsService<DossierTemplateStats, IDossierTemplateStats> {
constructor(protected readonly _injector: Injector) { constructor(protected readonly _injector: Injector) {
super(_injector, 'dossierTemplateId', DossierTemplateStats, 'dossier-template-stats'); super(_injector, DOSSIER_TEMPLATE_ID, DossierTemplateStats, 'dossier-template-stats');
} }
} }

View File

@ -1,11 +1,12 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { File, IFile } from '@red/domain'; import { File, IFile } from '@red/domain';
import { EntitiesMapService } from '@iqser/common-ui'; import { EntitiesMapService } from '@iqser/common-ui';
import { DOSSIER_ID } from '@utils/constants';
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class FilesMapService extends EntitiesMapService<File, IFile> { export class FilesMapService extends EntitiesMapService<File, IFile> {
constructor() { constructor() {
super('dossierId'); super(DOSSIER_ID);
} }
replaceFiles(files: File[], property: keyof IFile, generateValue: Function) { replaceFiles(files: File[], property: keyof IFile, generateValue: Function) {

View File

@ -1,2 +1,6 @@
export const CHANGED_CHECK_INTERVAL = 5000; export const CHANGED_CHECK_INTERVAL = 5000;
export const FALLBACK_COLOR = '#CCCCCC'; export const FALLBACK_COLOR = '#CCCCCC';
export const DOSSIER_ID = 'dossierId';
export const FILE_ID = 'fileId';
export const DOSSIER_TEMPLATE_ID = 'dossierTemplateId';
export const DICTIONARY_TYPE = 'dictionary';