From f16107677185ecb9c122694bf55a6b64606922ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Wed, 22 Mar 2023 12:39:10 +0200 Subject: [PATCH] RED-6457: Link the dossier in the search results --- .../search-item-template.component.html | 4 ++-- .../search-item-template.component.ts | 15 +++++++++++++-- .../search-screen/search-screen.component.ts | 4 ++++ apps/red-ui/src/app/utils/index.ts | 1 + apps/red-ui/src/app/utils/router-links.ts | 7 +++++++ libs/common-ui | 2 +- 6 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 apps/red-ui/src/app/utils/router-links.ts diff --git a/apps/red-ui/src/app/modules/search/search-item-template/search-item-template.component.html b/apps/red-ui/src/app/modules/search/search-item-template/search-item-template.component.html index 8c52a91f4..5901dc0b4 100644 --- a/apps/red-ui/src/app/modules/search/search-item-template/search-item-template.component.html +++ b/apps/red-ui/src/app/modules/search/search-item-template/search-item-template.component.html @@ -47,10 +47,10 @@ > -
+
- {{ item.dossierName }} + {{ item.dossierName }}
diff --git a/apps/red-ui/src/app/modules/search/search-item-template/search-item-template.component.ts b/apps/red-ui/src/app/modules/search/search-item-template/search-item-template.component.ts index ea3a27016..5ba409269 100644 --- a/apps/red-ui/src/app/modules/search/search-item-template/search-item-template.component.ts +++ b/apps/red-ui/src/app/modules/search/search-item-template/search-item-template.component.ts @@ -1,21 +1,32 @@ -import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core'; import { workflowFileStatusTranslations } from '@translations/file-status-translations'; import { ISearchListItem } from '@red/domain'; import { escapeHtml } from '@iqser/common-ui'; +import { getDossierRouterLink } from '@utils/router-links'; @Component({ selector: 'redaction-search-item-template', templateUrl: './search-item-template.component.html', styleUrls: ['./search-item-template.component.scss'], }) -export class SearchItemTemplateComponent { +export class SearchItemTemplateComponent implements OnChanges { @Input() item: ISearchListItem; @Output() readonly mustContain = new EventEmitter(); readonly fileStatusTranslations = workflowFileStatusTranslations; + routerLink: string; + sanitize(value: string) { return escapeHtml(value, { ignoreTags: ['em'], }); } + + ngOnChanges(changes: SimpleChanges): void { + if (changes.item) { + this.routerLink = getDossierRouterLink(this.item.dossierTemplateId, this.item.dossierId, this.item.archived); + } else { + this.routerLink = undefined; + } + } } 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 5ec6e2f09..5c360fbef 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 @@ -283,6 +283,10 @@ export class SearchScreenComponent extends ListingComponent imp } const dossier = this._dossiersCacheService.get(dossierId); + if (!dossier) { + console.error('Missing dossier'); + return undefined; + } return { id: fileId, diff --git a/apps/red-ui/src/app/utils/index.ts b/apps/red-ui/src/app/utils/index.ts index 4dd4d4f26..6e79bdfaf 100644 --- a/apps/red-ui/src/app/utils/index.ts +++ b/apps/red-ui/src/app/utils/index.ts @@ -10,3 +10,4 @@ export * from './functions'; export * from './global-error-handler.service'; export * from './missing-translations-handler'; export * from './page-stamper'; +export * from './router-links'; diff --git a/apps/red-ui/src/app/utils/router-links.ts b/apps/red-ui/src/app/utils/router-links.ts new file mode 100644 index 000000000..5ca8f9dff --- /dev/null +++ b/apps/red-ui/src/app/utils/router-links.ts @@ -0,0 +1,7 @@ +import { ARCHIVE_ROUTE, DOSSIERS_ROUTE } from '@red/domain'; + +export function getDossierRouterLink(dossierTemplateId: string, dossierId: string, isArchived: boolean): string { + const routerPath = isArchived ? ARCHIVE_ROUTE : DOSSIERS_ROUTE; + const dossiersListRouterLink = `/main/${dossierTemplateId}/${routerPath}`; + return `${dossiersListRouterLink}/${dossierId}`; +} diff --git a/libs/common-ui b/libs/common-ui index 03421b43d..9eecf327c 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 03421b43d9eeb0940e7cb7adc9905f0c1beb91e1 +Subproject commit 9eecf327c264ae65dc80dc474d5e02526d63597e