@@ -4,32 +4,49 @@ import EmberArray, { A } from '@ember/array';
44import Component from '@ember/component' ;
55import { task } from 'ember-concurrency' ;
66import DS from 'ember-data' ;
7+ import Features from 'ember-feature-flags/services/features' ;
8+ import appConfig from 'ember-get-config' ;
79import I18N from 'ember-i18n/services/i18n' ;
10+ import Toast from 'ember-toastr/services/toast' ;
11+
812import RegistrationSchema from 'ember-osf-web/adapters/registration-schema' ;
913import requiredAction from 'ember-osf-web/decorators/required-action' ;
1014import Analytics from 'ember-osf-web/services/analytics' ;
1115import defaultTo from 'ember-osf-web/utils/default-to' ;
12- import Toast from 'ember-toastr/services/toast' ;
13- import config from 'registries/config/environment' ;
16+
17+ import engineConfig from 'registries/config/environment' ;
1418import { SearchOptions } from 'registries/services/search' ;
1519import { ShareTermsFilter } from 'registries/services/share-search' ;
1620import layout from './template' ;
1721
22+ const {
23+ sourcesWhitelist,
24+ } = engineConfig ;
25+
26+ const {
27+ featureFlagNames : {
28+ enableInactiveSchemas,
29+ } ,
30+ } = appConfig ;
31+
1832export default class RegistriesRegistrationTypeFacet extends Component . extend ( {
1933 fetchRegistrationTypes : task ( function * ( this : RegistriesRegistrationTypeFacet ) : any {
2034 try {
2135 const metaschemas : RegistrationSchema [ ] = yield this . store . findAll ( 'registration-schema' ) ;
2236
23- this . set ( 'registrationTypes' , A (
24- metaschemas . mapBy ( 'name' ) . concat ( [
37+ const metaschemaNames = metaschemas . mapBy ( 'name' ) ;
38+ if ( ! this . features . isEnabled ( enableInactiveSchemas ) ) {
39+ metaschemaNames . push (
2540 // Manually add 'Election Research Preacceptance Competition' to the list of possible
2641 // facets. Metaschema was removed from the API as a possible registration type
2742 // but should still be searchable
2843 'Election Research Preacceptance Competition' ,
29- ] ) . sort ( ) ,
30- ) ) ;
44+ ) ;
45+ }
46+ this . set ( 'registrationTypes' , A ( metaschemaNames . sort ( ) ) ) ;
3147 } catch ( e ) {
3248 this . toast . error ( this . i18n . t ( 'registries.facets.registration_type.registration_schema_error' ) ) ;
49+ throw e ;
3350 }
3451 } ) . on ( 'init' ) ,
3552} ) {
@@ -39,6 +56,7 @@ export default class RegistriesRegistrationTypeFacet extends Component.extend({
3956 @service toast ! : Toast ;
4057 @service store ! : DS . Store ;
4158 @service analytics ! : Analytics ;
59+ @service features ! : Features ;
4260
4361 searchOptions ! : SearchOptions ;
4462 @requiredAction onSearchOptionsUpdated ! : ( options : SearchOptions ) => void ;
@@ -53,7 +71,7 @@ export default class RegistriesRegistrationTypeFacet extends Component.extend({
5371 get onlyOSF ( ) {
5472 return this . searchOptions . filters . filter ( filter => filter . key === 'sources' ) . size === 1
5573 && this . searchOptions . filters . contains (
56- new ShareTermsFilter ( 'sources' , 'OSF' , config . sourcesWhitelist . find ( x => x . name === 'OSF' ) ! . display ! ) ,
74+ new ShareTermsFilter ( 'sources' , 'OSF' , sourcesWhitelist . find ( x => x . name === 'OSF' ) ! . display ! ) ,
5775 ) ;
5876 }
5977
0 commit comments