Skip to content

Commit 0968fe8

Browse files
authored
Merge pull request DSpace#2271 from kshepherd/item_status_page_config_fix
ItemStatus component should handle missing config gracefully
2 parents 8bdd2d2 + efaf1d4 commit 0968fe8

1 file changed

Lines changed: 8 additions & 7 deletions

File tree

src/app/item-page/edit-item-page/item-status/item-status.component.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import { RemoteData } from '../../../core/data/remote-data';
99
import { getItemEditRoute, getItemPageRoute } from '../../item-page-routing-paths';
1010
import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service';
1111
import { FeatureID } from '../../../core/data/feature-authorization/feature-id';
12-
import { hasValue } from '../../../shared/empty.util';
12+
import { hasValue, isNotEmpty } from '../../../shared/empty.util';
1313
import {
14-
getAllSucceededRemoteDataPayload, getFirstSucceededRemoteData, getRemoteDataPayload,
14+
getAllSucceededRemoteDataPayload, getFirstCompletedRemoteData, getFirstSucceededRemoteData, getRemoteDataPayload,
1515
} from '../../../core/shared/operators';
1616
import { IdentifierDataService } from '../../../core/data/identifier-data.service';
1717
import { Identifier } from '../../../shared/object-list/identifier-data/identifier.model';
@@ -105,12 +105,13 @@ export class ItemStatusComponent implements OnInit {
105105

106106
// Observable for configuration determining whether the Register DOI feature is enabled
107107
let registerConfigEnabled$: Observable<boolean> = this.configurationService.findByPropertyName('identifiers.item-status.register-doi').pipe(
108-
getFirstSucceededRemoteData(),
109-
getRemoteDataPayload(),
110-
map((enabled: ConfigurationProperty) => {
111-
if (enabled !== undefined && enabled.values) {
112-
return true;
108+
getFirstCompletedRemoteData(),
109+
map((rd: RemoteData<ConfigurationProperty>) => {
110+
// If the config property is exposed via rest and has a value set, return it
111+
if (rd.hasSucceeded && hasValue(rd.payload) && isNotEmpty(rd.payload.values)) {
112+
return rd.payload.values[0] === 'true';
113113
}
114+
// Otherwise, return false
114115
return false;
115116
})
116117
);

0 commit comments

Comments
 (0)