diff --git a/src/app/shared/object-grid/search-result-grid-element/search-result-grid-element.component.ts b/src/app/shared/object-grid/search-result-grid-element/search-result-grid-element.component.ts
index 5fd1c87edd..c3a80604db 100644
--- a/src/app/shared/object-grid/search-result-grid-element/search-result-grid-element.component.ts
+++ b/src/app/shared/object-grid/search-result-grid-element/search-result-grid-element.component.ts
@@ -2,12 +2,11 @@ import { Component, Inject } from '@angular/core';
import { SearchResult } from '../../../+search-page/search-result.model';
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
-import { Metadatum } from '../../../core/shared/metadatum.model';
-import { isEmpty, hasNoValue, hasValue } from '../../empty.util';
import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component';
import { ListableObject } from '../../object-collection/shared/listable-object.model';
import { TruncatableService } from '../../truncatable/truncatable.service';
import { Observable } from 'rxjs';
+import { Metadata } from '../../../core/shared/metadata.model';
@Component({
selector: 'ds-search-result-grid-element',
@@ -22,39 +21,14 @@ export class SearchResultGridElementComponent
, K exten
this.dso = this.object.dspaceObject;
}
- getValues(keys: string[]): string[] {
- const results: string[] = new Array();
- this.object.hitHighlights.forEach(
- (md: Metadatum) => {
- if (keys.indexOf(md.key) > -1) {
- results.push(md.value);
- }
- }
- );
- if (isEmpty(results)) {
- this.dso.filterMetadata(keys).forEach(
- (md: Metadatum) => {
- results.push(md.value);
- }
- );
- }
- return results;
+ /** Gets all matching metadata string values from hitHighlights or dso metadata, preferring hitHighlights. */
+ allMetadataValues(keyOrKeys: string | string[]): string[] {
+ return Metadata.allValues([this.object.hitHighlights, this.dso.metadata], keyOrKeys);
}
- getFirstValue(key: string): string {
- let result: string;
- this.object.hitHighlights.some(
- (md: Metadatum) => {
- if (key === md.key) {
- result = md.value;
- return true;
- }
- }
- );
- if (hasNoValue(result)) {
- result = this.dso.findMetadata(key);
- }
- return result;
+ /** Gets the first matching metadata string value from hitHighlights or dso metadata, preferring hitHighlights. */
+ firstMetadataValue(keyOrKeys: string | string[]): string {
+ return Metadata.firstValue([this.object.hitHighlights, this.dso.metadata], keyOrKeys);
}
isCollapsed(): Observable {
diff --git a/src/app/shared/object-list/item-list-element/item-list-element.component.html b/src/app/shared/object-list/item-list-element/item-list-element.component.html
index 711ce19037..8179b77629 100644
--- a/src/app/shared/object-list/item-list-element/item-list-element.component.html
+++ b/src/app/shared/object-list/item-list-element/item-list-element.component.html
@@ -1,23 +1,23 @@
- {{object.findMetadata("dc.title")}}
+ {{object.firstMetadataValue("dc.title")}}
- 0"
+
- {{authorMd.value}}
+ {{author}}
;
- ({{object.findMetadata("dc.publisher")}}, {{object.findMetadata("dc.date.issued")}})
+ ({{object.firstMetadataValue("dc.publisher")}}, {{object.firstMetadataValue("dc.date.issued")}})
-
- {{object.findMetadata("dc.description.abstract")}}
+
+ {{object.firstMetadataValue("dc.description.abstract")}}
diff --git a/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html b/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html
index be549b2b76..b4af631e83 100644
--- a/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html
+++ b/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html
@@ -1,2 +1,2 @@
-
-
+
+
diff --git a/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html b/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html
index 150ca503cc..9444a63771 100644
--- a/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html
+++ b/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html
@@ -1,2 +1,2 @@
-
-
+
+
diff --git a/src/app/shared/object-list/search-result-list-element/item-search-result/item-search-result-list-element.component.html b/src/app/shared/object-list/search-result-list-element/item-search-result/item-search-result-list-element.component.html
index 584d476e73..6261220459 100644
--- a/src/app/shared/object-list/search-result-list-element/item-search-result/item-search-result-list-element.component.html
+++ b/src/app/shared/object-list/search-result-list-element/item-search-result/item-search-result-list-element.component.html
@@ -1,24 +1,24 @@
+ [innerHTML]="firstMetadataValue('dc.title')">
- ()
- 0"
+ ()
+
-
+
-
+
+ [innerHTML]="firstMetadataValue('dc.description.abstract')">
-
\ No newline at end of file
+
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 6a3b698dd6..a9a3050ac8 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
@@ -3,11 +3,10 @@ import { Observable } from 'rxjs';
import { SearchResult } from '../../../+search-page/search-result.model';
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
-import { Metadatum } from '../../../core/shared/metadatum.model';
-import { hasNoValue, isEmpty } from '../../empty.util';
import { ListableObject } from '../../object-collection/shared/listable-object.model';
import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component';
import { TruncatableService } from '../../truncatable/truncatable.service';
+import { Metadata } from '../../../core/shared/metadata.model';
@Component({
selector: 'ds-search-result-list-element',
@@ -22,39 +21,14 @@ export class SearchResultListElementComponent
, K exten
this.dso = this.object.dspaceObject;
}
- getValues(keys: string[]): string[] {
- const results: string[] = new Array();
- this.object.hitHighlights.forEach(
- (md: Metadatum) => {
- if (keys.indexOf(md.key) > -1) {
- results.push(md.value);
- }
- }
- );
- if (isEmpty(results)) {
- this.dso.filterMetadata(keys).forEach(
- (md: Metadatum) => {
- results.push(md.value);
- }
- );
- }
- return results;
+ /** Gets all matching metadata string values from hitHighlights or dso metadata, preferring hitHighlights. */
+ allMetadataValues(keyOrKeys: string | string[]): string[] {
+ return Metadata.allValues([this.object.hitHighlights, this.dso.metadata], keyOrKeys);
}
- getFirstValue(key: string): string {
- let result: string;
- this.object.hitHighlights.some(
- (md: Metadatum) => {
- if (key === md.key) {
- result = md.value;
- return true;
- }
- }
- );
- if (hasNoValue(result)) {
- result = this.dso.findMetadata(key);
- }
- return result;
+ /** Gets the first matching metadata string value from hitHighlights or dso metadata, preferring hitHighlights. */
+ firstMetadataValue(keyOrKeys: string | string[]): string {
+ return Metadata.firstValue([this.object.hitHighlights, this.dso.metadata], keyOrKeys);
}
isCollapsed(): Observable {