From e39eebe4ac12f37cd8087f473f2a07cf4d88f730 Mon Sep 17 00:00:00 2001 From: Srujithchaithanya1 Date: Sat, 28 Mar 2026 16:58:31 +0530 Subject: [PATCH 1/3] handled deleted Instances --- .../src/app/search/search.component.html | 22 ++++++++++-- .../src/app/search/search.component.scss | 6 ++++ .../src/app/search/search.component.ts | 34 +++++++++++++++++-- .../src/services/search.service.ts | 1 + 4 files changed, 59 insertions(+), 4 deletions(-) diff --git a/projects/website-angular/src/app/search/search.component.html b/projects/website-angular/src/app/search/search.component.html index b77b750..1ec5204 100644 --- a/projects/website-angular/src/app/search/search.component.html +++ b/projects/website-angular/src/app/search/search.component.html @@ -281,8 +281,26 @@

{{ group.typeName }} ({{ group.entriesCount }})

@for (entry of group.entries; track entry.dbId) {
- - {{ entry.stId }} + @if (entry.deleted) { + + + @if (entry.replacementStIds?.length) { + ⇒ + + {{ entry.replacementStIds[0] }} + + } + + } @else { + + + {{ entry.stId }} + } +
@if (entry.species?.length) {
diff --git a/projects/website-angular/src/app/search/search.component.scss b/projects/website-angular/src/app/search/search.component.scss index ed74920..261fce0 100644 --- a/projects/website-angular/src/app/search/search.component.scss +++ b/projects/website-angular/src/app/search/search.component.scss @@ -73,6 +73,12 @@ $border-radius: 8px; align-items: flex-start; } +.deleted { + text-decoration: line-through; + color: #555; +} + + // Facet sidebar .facet-sidebar { width: 260px; diff --git a/projects/website-angular/src/app/search/search.component.ts b/projects/website-angular/src/app/search/search.component.ts index 8f8abb4..54cfaad 100644 --- a/projects/website-angular/src/app/search/search.component.ts +++ b/projects/website-angular/src/app/search/search.component.ts @@ -199,7 +199,26 @@ export class SearchComponent implements OnInit, OnDestroy, AfterViewInit { this.hasNoResults = false; } else { // Successful API response - check if we have results - this.results = results as SearchResult; + const res = results as SearchResult; + const hasNonDeleted = res.results?.some(group => + group.entries.some(e => !e.deleted) + ); + res.results = res.results?.map(group => { + const entries = hasNonDeleted + ? group.entries.filter(e => !e.deleted) + : group.entries; + + return { + ...group, + entries, + entriesCount: entries.length + }; + }).filter(group => group.entries.length > 0) || []; + res.numberOfMatches = res.results.reduce( + (sum, g) => sum + g.entries.length, + 0 + ); + this.results = res; this.facets = facets; this.totalPages = Math.ceil(((results as SearchResult).numberOfMatches || 0) / this.pageSize); this.hasNoResults = ((results as SearchResult).numberOfMatches || 0) === 0; @@ -233,7 +252,7 @@ export class SearchComponent implements OnInit, OnDestroy, AfterViewInit { get allEntries(): SearchEntry[] { if (!this.results?.results) return []; - return this.results.results.flatMap(g => g.entries); + return this.results.results.flatMap(g => this.filterDeletedEntries(g.entries)); } toggleFacet(category: string, value: string): void { @@ -272,6 +291,17 @@ export class SearchComponent implements OnInit, OnDestroy, AfterViewInit { this.advancedMode = !this.advancedMode; } + private filterDeletedEntries(entries: SearchEntry[]): SearchEntry[] { + if (!entries?.length) return []; + + const nonDeleted = entries.filter(e => !e.deleted); + if (nonDeleted.length > 0) { + return nonDeleted; + } + + return entries; + } + private updateQueryParams(params: Record): void { this.router.navigate([], { relativeTo: this.route, diff --git a/projects/website-angular/src/services/search.service.ts b/projects/website-angular/src/services/search.service.ts index 2f51072..f3c4650 100644 --- a/projects/website-angular/src/services/search.service.ts +++ b/projects/website-angular/src/services/search.service.ts @@ -16,6 +16,7 @@ export interface SearchEntry { referenceIdentifier: string; databaseName: string; referenceURL: string; + deleted: string; } export interface ResultGroup { From 98f485759ede2d0bbde378986c8034d94882b555 Mon Sep 17 00:00:00 2001 From: Srujithchaithanya1 Date: Sat, 28 Mar 2026 16:59:18 +0530 Subject: [PATCH 2/3] changed interface --- .../src/app/viewport/search/search.component.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/projects/pathway-browser/src/app/viewport/search/search.component.ts b/projects/pathway-browser/src/app/viewport/search/search.component.ts index 57fa02e..60e6dad 100644 --- a/projects/pathway-browser/src/app/viewport/search/search.component.ts +++ b/projects/pathway-browser/src/app/viewport/search/search.component.ts @@ -487,7 +487,8 @@ export namespace Search { isDisease: boolean; hasEHLD?: boolean; hasReferenceEntity: boolean; - disease: boolean + disease: boolean; + deleted: boolean; } export interface EntryResult { From fab89a9c3c147d5edc6bf94061870c34179f195c Mon Sep 17 00:00:00 2001 From: Srujithchaithanya1 Date: Sat, 28 Mar 2026 17:34:06 +0530 Subject: [PATCH 3/3] added deleted date and fixes Deleted Instance Handling in Search Fixes #35 --- .../src/app/viewport/search/search.component.ts | 1 + .../website-angular/src/app/search/search.component.html | 6 ++++++ projects/website-angular/src/app/search/search.component.ts | 3 ++- projects/website-angular/src/services/search.service.ts | 3 ++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/projects/pathway-browser/src/app/viewport/search/search.component.ts b/projects/pathway-browser/src/app/viewport/search/search.component.ts index 60e6dad..d9185f4 100644 --- a/projects/pathway-browser/src/app/viewport/search/search.component.ts +++ b/projects/pathway-browser/src/app/viewport/search/search.component.ts @@ -489,6 +489,7 @@ export namespace Search { hasReferenceEntity: boolean; disease: boolean; deleted: boolean; + date: number; } export interface EntryResult { diff --git a/projects/website-angular/src/app/search/search.component.html b/projects/website-angular/src/app/search/search.component.html index 1ec5204..7e2993e 100644 --- a/projects/website-angular/src/app/search/search.component.html +++ b/projects/website-angular/src/app/search/search.component.html @@ -302,6 +302,12 @@

{{ group.typeName }} ({{ group.entriesCount }})

}
+ @if (entry.deleted && entry.date) { +
+ Deleted on + {{ entry.date | date:'MMM d, y, h:mm:ss a' }} +
+ } @if (entry.species?.length) {
@for (sp of entry.species; track sp; let last = $last) { diff --git a/projects/website-angular/src/app/search/search.component.ts b/projects/website-angular/src/app/search/search.component.ts index 54cfaad..fcb62c9 100644 --- a/projects/website-angular/src/app/search/search.component.ts +++ b/projects/website-angular/src/app/search/search.component.ts @@ -15,11 +15,12 @@ import { SearchFilters, FacetCount, } from '../../services/search.service'; +import { DatePipe } from '@angular/common'; @Component({ selector: 'app-search', standalone: true, - imports: [PageLayoutComponent, TileComponent, RouterLink, SearchBarComponent, FormsModule], + imports: [PageLayoutComponent, TileComponent, RouterLink, SearchBarComponent, FormsModule, DatePipe], templateUrl: './search.component.html', styleUrl: './search.component.scss', }) diff --git a/projects/website-angular/src/services/search.service.ts b/projects/website-angular/src/services/search.service.ts index f3c4650..0c35f90 100644 --- a/projects/website-angular/src/services/search.service.ts +++ b/projects/website-angular/src/services/search.service.ts @@ -16,7 +16,8 @@ export interface SearchEntry { referenceIdentifier: string; databaseName: string; referenceURL: string; - deleted: string; + deleted: boolean; + date: number; } export interface ResultGroup {