diff --git a/src/app/system-wide-alert/alert-banner/system-wide-alert-banner.component.ts b/src/app/system-wide-alert/alert-banner/system-wide-alert-banner.component.ts index 320e42db85..27bdb14f1d 100644 --- a/src/app/system-wide-alert/alert-banner/system-wide-alert-banner.component.ts +++ b/src/app/system-wide-alert/alert-banner/system-wide-alert-banner.component.ts @@ -1,6 +1,8 @@ import { Component, Inject, OnDestroy, OnInit, PLATFORM_ID } from '@angular/core'; import { SystemWideAlertDataService } from '../../core/data/system-wide-alert-data.service'; -import { getAllCompletedRemoteData } from '../../core/shared/operators'; +import { + getAllSucceededRemoteDataPayload +} from '../../core/shared/operators'; import { filter, map, switchMap } from 'rxjs/operators'; import { PaginatedList } from '../../core/data/paginated-list.model'; import { SystemWideAlert } from '../system-wide-alert.model'; @@ -54,14 +56,7 @@ export class SystemWideAlertBannerComponent implements OnInit, OnDestroy { ngOnInit() { this.subscriptions.push(this.systemWideAlertDataService.searchBy('active').pipe( - getAllCompletedRemoteData(), - map((rd) => { - if (rd.hasSucceeded) { - return rd.payload; - } else { - this.notificationsService.error('system-wide-alert-banner.retrieval.error'); - } - }), + getAllSucceededRemoteDataPayload(), map((payload: PaginatedList) => payload.page), filter((page) => isNotEmpty(page)), map((page) => page[0]) diff --git a/src/app/system-wide-alert/alert-form/system-wide-alert-form.component.ts b/src/app/system-wide-alert/alert-form/system-wide-alert-form.component.ts index db517ef8cd..23c9fb75f9 100644 --- a/src/app/system-wide-alert/alert-form/system-wide-alert-form.component.ts +++ b/src/app/system-wide-alert/alert-form/system-wide-alert-form.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { SystemWideAlertDataService } from '../../core/data/system-wide-alert-data.service'; -import { getFirstCompletedRemoteData, getFirstSucceededRemoteDataPayload } from '../../core/shared/operators'; +import { getFirstCompletedRemoteData } from '../../core/shared/operators'; import { filter, map } from 'rxjs/operators'; import { PaginatedList } from '../../core/data/paginated-list.model'; import { SystemWideAlert } from '../system-wide-alert.model'; @@ -88,7 +88,14 @@ export class SystemWideAlertFormComponent implements OnInit { ngOnInit() { this.systemWideAlert$ = this.systemWideAlertDataService.findAll().pipe( - getFirstSucceededRemoteDataPayload(), + getFirstCompletedRemoteData(), + map((rd) => { + if (rd.hasSucceeded) { + return rd.payload; + } else { + this.notificationsService.error('system-wide-alert-form.retrieval.error'); + } + }), map((payload: PaginatedList) => payload.page), filter((page) => isNotEmpty(page)), map((page) => page[0]) diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 056fc593d8..60bbb9e860 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -4860,6 +4860,8 @@ "system-wide-alert.form.header": "System-wide Alert", + "system-wide-alert-form.retrieval.error": "Something went wrong retrieving the system-wide alert", + "system-wide-alert.form.cancel": "Cancel", "system-wide-alert.form.save": "Save",