11import { Component , Inject } from '@angular/core' ;
22import { Observable , of as observableOf , Subscription } from 'rxjs' ;
33import { Field , Option , SubmissionCcLicence } from '../../../core/submission/models/submission-cc-license.model' ;
4- import { getFirstSucceededRemoteData , getRemoteDataPayload } from '../../../core/shared/operators' ;
4+ import {
5+ getFirstCompletedRemoteData ,
6+ getFirstSucceededRemoteData ,
7+ getRemoteDataPayload
8+ } from '../../../core/shared/operators' ;
59import { distinctUntilChanged , filter , map , take } from 'rxjs/operators' ;
610import { SubmissionCcLicenseDataService } from '../../../core/submission/submission-cc-license-data.service' ;
711import { NgbModal , NgbModalRef } from '@ng-bootstrap/ng-bootstrap' ;
@@ -15,6 +19,7 @@ import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder
1519import { isNotEmpty } from '../../../shared/empty.util' ;
1620import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder' ;
1721import { SubmissionCcLicenseUrlDataService } from '../../../core/submission/submission-cc-license-url-data.service' ;
22+ import { ConfigurationDataService } from '../../../core/data/configuration-data.service' ;
1823
1924/**
2025 * This component represents the submission section to select the Creative Commons license.
@@ -60,6 +65,11 @@ export class SubmissionSectionCcLicensesComponent extends SectionModelComponent
6065 */
6166 protected modalRef : NgbModalRef ;
6267
68+ /**
69+ * Default jurisdiction configured
70+ */
71+ defaultJurisdiction : string ;
72+
6373 /**
6474 * The Creative Commons link saved in the workspace item.
6575 */
@@ -83,6 +93,7 @@ export class SubmissionSectionCcLicensesComponent extends SectionModelComponent
8393 protected submissionCcLicensesDataService : SubmissionCcLicenseDataService ,
8494 protected submissionCcLicenseUrlDataService : SubmissionCcLicenseUrlDataService ,
8595 protected operationsBuilder : JsonPatchOperationsBuilder ,
96+ protected configService : ConfigurationDataService ,
8697 @Inject ( 'collectionIdProvider' ) public injectedCollectionId : string ,
8798 @Inject ( 'sectionDataProvider' ) public injectedSectionData : SectionDataObject ,
8899 @Inject ( 'submissionIdProvider' ) public injectedSubmissionId : string
@@ -156,6 +167,9 @@ export class SubmissionSectionCcLicensesComponent extends SectionModelComponent
156167 * @param field the field for which to get the selected option value.
157168 */
158169 getSelectedOption ( ccLicense : SubmissionCcLicence , field : Field ) : Option {
170+ if ( field . id === 'jurisdiction' && this . defaultJurisdiction !== undefined && this . defaultJurisdiction !== 'none' ) {
171+ return field . enums . find ( option => option . id === this . defaultJurisdiction ) ;
172+ }
159173 return this . data . ccLicense . fields [ field . id ] ;
160174 }
161175
@@ -256,6 +270,17 @@ export class SubmissionSectionCcLicensesComponent extends SectionModelComponent
256270 ) . subscribe (
257271 ( licenses ) => this . submissionCcLicenses = licenses
258272 ) ,
273+ this . configService . findByPropertyName ( 'cc.license.jurisdiction' ) . pipe (
274+ getFirstCompletedRemoteData ( ) ,
275+ getRemoteDataPayload ( )
276+ ) . subscribe ( ( remoteData ) => {
277+ if ( remoteData === undefined || remoteData . values . length === 0 ) {
278+ // No value configured, use blank value (International jurisdiction)
279+ this . defaultJurisdiction = '' ;
280+ } else {
281+ this . defaultJurisdiction = remoteData . values [ 0 ] ;
282+ }
283+ } )
259284 ) ;
260285 }
261286
0 commit comments