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 @@
>
-
+
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