Skip to content

Commit 55435a2

Browse files
authored
Merge pull request DSpace#2579 from paulo-graca/bugfix/accessstatus-2402
adding new access-status-list-element-badge css classes
2 parents 4bda8f4 + 75b788d commit 55435a2

3 files changed

Lines changed: 28 additions & 3 deletions

File tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<ng-container *ngIf="showAccessStatus">
22
<span *ngIf="accessStatus$ | async as accessStatus">
3-
<span class="badge badge-secondary">{{ accessStatus | translate }}</span>
3+
<span [class]="'badge badge-secondary access-status-list-element-badge ' + accessStatusClass">{{ accessStatus | translate }}</span>
44
</span>
55
</ng-container>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Component, Input } from '@angular/core';
22
import { catchError, map } from 'rxjs/operators';
3-
import { Observable, of as observableOf } from 'rxjs';
3+
import { Observable, of as observableOf, Subscription } from 'rxjs';
44
import { AccessStatusObject } from './access-status.model';
55
import { hasValue } from '../../../../empty.util';
66
import { environment } from 'src/environments/environment';
@@ -11,7 +11,8 @@ import { ITEM } from '../../../../../core/shared/item.resource-type';
1111

1212
@Component({
1313
selector: 'ds-access-status-badge',
14-
templateUrl: './access-status-badge.component.html'
14+
templateUrl: './access-status-badge.component.html',
15+
styleUrls: ['./access-status-badge.component.scss']
1516
})
1617
/**
1718
* Component rendering the access status of an item as a badge
@@ -26,6 +27,16 @@ export class AccessStatusBadgeComponent {
2627
*/
2728
showAccessStatus: boolean;
2829

30+
/**
31+
* Value based stylesheet class for access status badge
32+
*/
33+
accessStatusClass: string;
34+
35+
/**
36+
* List of subscriptions
37+
*/
38+
subs: Subscription[] = [];
39+
2940
/**
3041
* Initialize instance variables
3142
*
@@ -57,5 +68,18 @@ export class AccessStatusBadgeComponent {
5768
map((status: string) => `access-status.${status.toLowerCase()}.listelement.badge`),
5869
catchError(() => observableOf('access-status.unknown.listelement.badge'))
5970
);
71+
72+
// stylesheet based on the access status value
73+
this.subs.push(
74+
this.accessStatus$.pipe(
75+
map((accessStatusClass: string) => accessStatusClass.replace(/\./g, '-'))
76+
).subscribe((accessStatusClass: string) => {
77+
this.accessStatusClass = accessStatusClass;
78+
})
79+
);
80+
}
81+
82+
ngOnDestroy(): void {
83+
this.subs.filter((sub) => hasValue(sub)).forEach((sub) => sub.unsubscribe());
6084
}
6185
}

0 commit comments

Comments
 (0)