diff --git a/src/app/item-page/edit-item-page/item-status/item-status.component.ts b/src/app/item-page/edit-item-page/item-status/item-status.component.ts index c2db518415..ce84786304 100644 --- a/src/app/item-page/edit-item-page/item-status/item-status.component.ts +++ b/src/app/item-page/edit-item-page/item-status/item-status.component.ts @@ -9,9 +9,9 @@ import { RemoteData } from '../../../core/data/remote-data'; import { getItemEditRoute, getItemPageRoute } from '../../item-page-routing-paths'; import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service'; import { FeatureID } from '../../../core/data/feature-authorization/feature-id'; -import { hasValue } from '../../../shared/empty.util'; +import { hasValue, isNotEmpty } from '../../../shared/empty.util'; import { - getAllSucceededRemoteDataPayload, getFirstSucceededRemoteData, getRemoteDataPayload, + getAllSucceededRemoteDataPayload, getFirstCompletedRemoteData, getFirstSucceededRemoteData, getRemoteDataPayload, } from '../../../core/shared/operators'; import { IdentifierDataService } from '../../../core/data/identifier-data.service'; import { Identifier } from '../../../shared/object-list/identifier-data/identifier.model'; @@ -105,12 +105,13 @@ export class ItemStatusComponent implements OnInit { // Observable for configuration determining whether the Register DOI feature is enabled let registerConfigEnabled$: Observable = this.configurationService.findByPropertyName('identifiers.item-status.register-doi').pipe( - getFirstSucceededRemoteData(), - getRemoteDataPayload(), - map((enabled: ConfigurationProperty) => { - if (enabled !== undefined && enabled.values) { - return true; + getFirstCompletedRemoteData(), + map((rd: RemoteData) => { + // If the config property is exposed via rest and has a value set, return it + if (rd.hasSucceeded && hasValue(rd.payload) && isNotEmpty(rd.payload.values)) { + return rd.payload.values[0] === 'true'; } + // Otherwise, return false return false; }) );