diff --git a/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html b/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html index baebf5fe86..9d1b5e9ef1 100644 --- a/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html +++ b/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html @@ -29,7 +29,7 @@ ) - + ; diff --git a/src/app/shared/object-list/search-result-list-element/search-result-list-element.component.ts b/src/app/shared/object-list/search-result-list-element/search-result-list-element.component.ts index 986138493b..4882313ad0 100644 --- a/src/app/shared/object-list/search-result-list-element/search-result-list-element.component.ts +++ b/src/app/shared/object-list/search-result-list-element/search-result-list-element.component.ts @@ -55,6 +55,28 @@ export class SearchResultListElementComponent, K exten return Metadata.allValues([this.object.hitHighlights, this.dso.metadata], keyOrKeys); } + /** + * Gets all matching metadata string values from hitHighlights or dso metadata. + * + * @param {string|string[]} keyOrKeys The metadata key(s) in scope. Wildcards are supported; see [[Metadata]]. + * @returns {string[]} the matching string values or an empty array. + */ + allMetadataNoExcludingValues(keyOrKeys: string | string[]): string[] { + let dsoMetadata: string[] = Metadata.allValues([this.dso.metadata], keyOrKeys); + let highlights: string[] = Metadata.allValues([this.object.hitHighlights], keyOrKeys); + let removedHighlights: string[] = highlights.map(str => str.replace(/<\/?em>/g, '')); + for (let i = 0; i < removedHighlights.length; i++) { + let index = dsoMetadata.indexOf(removedHighlights[i]); + if (index !== -1) { + dsoMetadata[index] = highlights[i]; + } + } + console.log(dsoMetadata); + console.log(highlights); + console.log(removedHighlights); + return dsoMetadata; + } + /** * Gets the first matching metadata string value from hitHighlights or dso metadata, preferring hitHighlights. *