diff --git a/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html b/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html
index 7fdb505d43..c4bb444d44 100644
--- a/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html
+++ b/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html
@@ -18,6 +18,7 @@
+
diff --git a/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.ts b/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.ts
index a628c1e7e8..77fc25ff29 100644
--- a/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.ts
+++ b/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.ts
@@ -6,6 +6,7 @@ import { SearchResultGridElementComponent } from '../../search-result-grid-eleme
import { Item } from '../../../../../core/shared/item.model';
import { ItemSearchResult } from '../../../../object-collection/shared/item-search-result.model';
import { getItemPageRoute } from '../../../../../item-page/item-page-routing-paths';
+import { environment } from 'src/environments/environment';
@listableObjectComponent('PublicationSearchResult', ViewMode.GridElement)
@listableObjectComponent(ItemSearchResult, ViewMode.GridElement)
@@ -23,9 +24,14 @@ export class ItemSearchResultGridElementComponent extends SearchResultGridElemen
* Route to the item's page
*/
itemPageRoute: string;
+ /**
+ * Whether to show the access status badge or not
+ */
+ showAccessStatus: boolean;
ngOnInit(): void {
super.ngOnInit();
this.itemPageRoute = getItemPageRoute(this.dso);
+ this.showAccessStatus = environment.ui.showAccessStatuses;
}
}
diff --git a/src/app/shared/object-list/access-status-badge/access-status-badge.component.html b/src/app/shared/object-list/access-status-badge/access-status-badge.component.html
index a7b3edc9b3..8fc3a82740 100644
--- a/src/app/shared/object-list/access-status-badge/access-status-badge.component.html
+++ b/src/app/shared/object-list/access-status-badge/access-status-badge.component.html
@@ -1,3 +1,3 @@
-
-
{{ status | translate }}
+
+ {{ accessStatus | translate }}
diff --git a/src/app/shared/object-list/access-status-badge/access-status-badge.component.ts b/src/app/shared/object-list/access-status-badge/access-status-badge.component.ts
index b181ae4104..bf76a429f7 100644
--- a/src/app/shared/object-list/access-status-badge/access-status-badge.component.ts
+++ b/src/app/shared/object-list/access-status-badge/access-status-badge.component.ts
@@ -1,7 +1,7 @@
import { Component, Input } from '@angular/core';
-import { map } from 'rxjs/operators';
-import { Observable } from 'rxjs';
-import { getFirstSucceededRemoteDataPayload } from 'src/app/core/shared/operators';
+import { catchError, map } from 'rxjs/operators';
+import { Observable, of as observableOf } from 'rxjs';
+import { getFirstCompletedRemoteData } from 'src/app/core/shared/operators';
import { ItemDataService } from 'src/app/core/data/item-data.service';
import { AccessStatusObject } from './access-status.model';
import { hasValue } from '../../empty.util';
@@ -29,9 +29,17 @@ export class AccessStatusBadgeComponent {
this._accessStatus$ = this.itemDataService
.getAccessStatus(this._uuid)
.pipe(
- getFirstSucceededRemoteDataPayload(),
+ getFirstCompletedRemoteData(),
+ map((accessStatusRD) => {
+ if (accessStatusRD.statusCode !== 401 && hasValue(accessStatusRD.payload)) {
+ return accessStatusRD.payload;
+ } else {
+ return [];
+ }
+ }),
map((accessStatus: AccessStatusObject) => hasValue(accessStatus.status) ? accessStatus.status : 'unknown'),
- map((status: string) => `access-status.${status.toLowerCase()}.listelement.badge`)
+ map((status: string) => `access-status.${status.toLowerCase()}.listelement.badge`),
+ catchError(() => observableOf('access-status.unknown.listelement.badge'))
);
}
diff --git a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html
index c518d39bd9..4801e66a26 100644
--- a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html
+++ b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html
@@ -2,7 +2,10 @@
-
+
+
+
+
diff --git a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.ts b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.ts
index 840960d51f..6b2290c711 100644
--- a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.ts
+++ b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.ts
@@ -1,4 +1,5 @@
import { Component, Input } from '@angular/core';
+import { environment } from 'src/environments/environment';
import { Item } from '../../../../core/shared/item.model';
import { fadeInOut } from '../../../animations/fade';
@@ -36,4 +37,12 @@ export class ItemListPreviewComponent {
*/
@Input() showSubmitter = false;
+ /**
+ * Whether to show the access status badge or not
+ */
+ showAccessStatus: boolean;
+
+ ngOnInit(): void {
+ this.showAccessStatus = environment.ui.showAccessStatuses;
+ }
}
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 8bea795cca..8e216bb82c 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
@@ -1,6 +1,6 @@
-
+