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..d9185f4 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,9 @@ export namespace Search {
isDisease: boolean;
hasEHLD?: boolean;
hasReferenceEntity: boolean;
- disease: 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 b77b750..7e2993e 100644
--- a/projects/website-angular/src/app/search/search.component.html
+++ b/projects/website-angular/src/app/search/search.component.html
@@ -281,9 +281,33 @@
+ @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.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..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',
})
@@ -199,7 +200,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 +253,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 +292,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..0c35f90 100644
--- a/projects/website-angular/src/services/search.service.ts
+++ b/projects/website-angular/src/services/search.service.ts
@@ -16,6 +16,8 @@ export interface SearchEntry {
referenceIdentifier: string;
databaseName: string;
referenceURL: string;
+ deleted: boolean;
+ date: number;
}
export interface ResultGroup {