[CST-5270] Refactoring implementation and remove mock response

This commit is contained in:
Giuseppe Digilio
2022-04-27 17:19:38 +02:00
parent 63366e6ca2
commit f9d55dc3e8
17 changed files with 100 additions and 122 deletions

View File

@@ -18,5 +18,5 @@ export interface WorkspaceitemSectionSherpaPoliciesObject {
/** /**
* The sherpa policies details * The sherpa policies details
*/ */
sherpaResponse: SherpaPoliciesDetailsObject[]; sherpaResponse: SherpaPoliciesDetailsObject;
} }

View File

@@ -1,11 +1,11 @@
import { WorkspaceitemSectionSherpaPoliciesObject } from './../../core/submission/models/workspaceitem-section-sherpa-policies.model'; import {
import { SubmissionFormsModel } from '../../core/config/models/config-submission-forms.model'; WorkspaceitemSectionSherpaPoliciesObject
import { of as observableOf } from 'rxjs'; } from '../../core/submission/models/workspaceitem-section-sherpa-policies.model';
export const dataRes = { export const SherpaDataResponse = {
'id': 'sherpaPolicies', 'id': 'sherpaPolicies',
'retrievalTime': '2022-04-20T09:44:39.870+00:00', 'retrievalTime': '2022-04-20T09:44:39.870+00:00',
'sherpaResponse': [ 'sherpaResponse':
{ {
'error': false, 'error': false,
'message': null, 'message': null,
@@ -98,11 +98,4 @@ export const dataRes = {
'inDOAJ': false 'inDOAJ': false
}] }]
} }
]
} as WorkspaceitemSectionSherpaPoliciesObject; } as WorkspaceitemSectionSherpaPoliciesObject;
export function getSherpaPoliciesData() {
return jasmine.createSpyObj('SectionAccessesService', {
getSherpaPoliciesData: observableOf(dataRes),
});
}

View File

@@ -6,5 +6,5 @@ export enum SectionsType {
CcLicense = 'cclicense', CcLicense = 'cclicense',
collection = 'collection', collection = 'collection',
AccessesCondition = 'accessCondition', AccessesCondition = 'accessCondition',
SherpaPolicies = 'sherpaPolicies', SherpaPolicies = 'sherpaPolicy',
} }

View File

@@ -1,12 +1,13 @@
import { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap'; import { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap';
import { TranslateLoaderMock } from './../../../../shared/testing/translate-loader.mock'; import { TranslateLoaderMock } from '../../../../shared/mocks/translate-loader.mock';
import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ContentAccordionComponent } from './content-accordion.component'; import { ContentAccordionComponent } from './content-accordion.component';
import { dataRes } from './../../../../shared/mocks/section-sherpa-policies.service.mock';
import { DebugElement } from '@angular/core'; import { DebugElement } from '@angular/core';
import { By } from '@angular/platform-browser'; import { By } from '@angular/platform-browser';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { SherpaDataResponse } from '../../../../shared/mocks/section-sherpa-policies.service.mock';
describe('ContentAccordionComponent', () => { describe('ContentAccordionComponent', () => {
let component: ContentAccordionComponent; let component: ContentAccordionComponent;
@@ -33,7 +34,7 @@ describe('ContentAccordionComponent', () => {
fixture = TestBed.createComponent(ContentAccordionComponent); fixture = TestBed.createComponent(ContentAccordionComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
de = fixture.debugElement; de = fixture.debugElement;
component.version = dataRes.sherpaResponse[0].journals[0].policies[0].permittedVersions[0]; component.version = SherpaDataResponse.sherpaResponse.journals[0].policies[0].permittedVersions[0];
fixture.detectChanges(); fixture.detectChanges();
}); });

View File

@@ -1,6 +1,7 @@
import { PermittedVersions } from './../../../../core/submission/models/sherpa-policies-details.model';
import { Component, Input } from '@angular/core'; import { Component, Input } from '@angular/core';
import { PermittedVersions } from '../../../../core/submission/models/sherpa-policies-details.model';
@Component({ @Component({
selector: 'ds-content-accordion', selector: 'ds-content-accordion',
templateUrl: './content-accordion.component.html', templateUrl: './content-accordion.component.html',

View File

@@ -1,11 +1,12 @@
import { TranslateLoaderMock } from './../../../../shared/testing/translate-loader.mock'; import { TranslateLoaderMock } from '../../../../shared/testing/translate-loader.mock';
import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MetadataInformationComponent } from './metadata-information.component'; import { MetadataInformationComponent } from './metadata-information.component';
import { dataRes } from './../../../../shared/mocks/section-sherpa-policies.service.mock';
import { DebugElement } from '@angular/core'; import { DebugElement } from '@angular/core';
import { By } from '@angular/platform-browser'; import { By } from '@angular/platform-browser';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { SherpaDataResponse } from '../../../../shared/mocks/section-sherpa-policies.service.mock';
describe('MetadataInformationComponent', () => { describe('MetadataInformationComponent', () => {
let component: MetadataInformationComponent; let component: MetadataInformationComponent;
@@ -31,7 +32,7 @@ describe('MetadataInformationComponent', () => {
fixture = TestBed.createComponent(MetadataInformationComponent); fixture = TestBed.createComponent(MetadataInformationComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
de = fixture.debugElement; de = fixture.debugElement;
component.metadata = dataRes.sherpaResponse[0].metadata; component.metadata = SherpaDataResponse.sherpaResponse.metadata;
fixture.detectChanges(); fixture.detectChanges();
}); });

View File

@@ -1,5 +1,6 @@
import { Component, Input } from '@angular/core'; import { Component, Input } from '@angular/core';
import { Metadata } from './../../../../core/submission/models/sherpa-policies-details.model';
import { Metadata } from '../../../../core/submission/models/sherpa-policies-details.model';
@Component({ @Component({
selector: 'ds-metadata-information', selector: 'ds-metadata-information',

View File

@@ -1,11 +1,11 @@
import { TranslateLoaderMock } from './../../../../shared/testing/translate-loader.mock'; import { TranslateLoaderMock } from '../../../../shared/testing/translate-loader.mock';
import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing';
import { PublicationInformationComponent } from './publication-information.component'; import { PublicationInformationComponent } from './publication-information.component';
import { dataRes } from './../../../../shared/mocks/section-sherpa-policies.service.mock';
import { DebugElement } from '@angular/core'; import { DebugElement } from '@angular/core';
import { By } from '@angular/platform-browser'; import { By } from '@angular/platform-browser';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { SherpaDataResponse } from '../../../../shared/mocks/section-sherpa-policies.service.mock';
describe('PublicationInformationComponent', () => { describe('PublicationInformationComponent', () => {
let component: PublicationInformationComponent; let component: PublicationInformationComponent;
@@ -32,7 +32,7 @@ describe('PublicationInformationComponent', () => {
fixture = TestBed.createComponent(PublicationInformationComponent); fixture = TestBed.createComponent(PublicationInformationComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
de = fixture.debugElement; de = fixture.debugElement;
component.journal = dataRes.sherpaResponse[0].journals[0]; component.journal = SherpaDataResponse.sherpaResponse.journals[0];
fixture.detectChanges(); fixture.detectChanges();
}); });

View File

@@ -1,5 +1,6 @@
import { Component, Input, OnInit } from '@angular/core'; import { Component, Input } from '@angular/core';
import { Journal } from './../../../../core/submission/models/sherpa-policies-details.model';
import { Journal } from '../../../../core/submission/models/sherpa-policies-details.model';
@Component({ @Component({
selector: 'ds-publication-information', selector: 'ds-publication-information',

View File

@@ -1,12 +1,11 @@
import { TranslateLoaderMock } from './../../../../shared/testing/translate-loader.mock';
import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing';
import { PublisherPolicyComponent } from './publisher-policy.component'; import { PublisherPolicyComponent } from './publisher-policy.component';
import { dataRes } from './../../../../shared/mocks/section-sherpa-policies.service.mock';
import { By } from '@angular/platform-browser'; import { By } from '@angular/platform-browser';
import { DebugElement } from '@angular/core'; import { DebugElement } from '@angular/core';
import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core'; import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { getMockTranslateService } from '../../../../shared/mocks/translate.service.mock';
import { SherpaDataResponse } from '../../../../shared/mocks/section-sherpa-policies.service.mock';
import { TranslateLoaderMock } from '../../../../shared/mocks/translate-loader.mock';
describe('PublisherPolicyComponent', () => { describe('PublisherPolicyComponent', () => {
let component: PublisherPolicyComponent; let component: PublisherPolicyComponent;
@@ -32,7 +31,7 @@ describe('PublisherPolicyComponent', () => {
fixture = TestBed.createComponent(PublisherPolicyComponent); fixture = TestBed.createComponent(PublisherPolicyComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
de = fixture.debugElement; de = fixture.debugElement;
component.policy = dataRes.sherpaResponse[0].journals[0].policies[0]; component.policy = SherpaDataResponse.sherpaResponse.journals[0].policies[0];
fixture.detectChanges(); fixture.detectChanges();
}); });

View File

@@ -1,5 +1,6 @@
import { Policy } from './../../../../core/submission/models/sherpa-policies-details.model'; import { Component, Input } from '@angular/core';
import { Component, Input, OnInit } from '@angular/core';
import { Policy } from '../../../../core/submission/models/sherpa-policies-details.model';
@Component({ @Component({
selector: 'ds-publisher-policy', selector: 'ds-publisher-policy',

View File

@@ -1,10 +1,13 @@
<ds-alert [type]="'alert-info'" *ngIf="hasNoData()" [content]="'submission.sections.sherpa-policy.title-empty'">
</ds-alert>
<div class="refresh-container mt-2 mb-2"> <div class="refresh-container mt-2 mb-2">
<button type="button" class="btn btn-secondary pull-right" (click)="refresh()"> <button type="button" class="btn btn-secondary pull-right" (click)="refresh()">
<span><i class="fas fa-sync"></i> {{'submission.sections.sherpa.publisher.policy.refresh' | translate}} </span> <span><i class="fas fa-sync"></i> {{'submission.sections.sherpa.publisher.policy.refresh' | translate}} </span>
</button> </button>
</div> </div>
<ngb-accordion *ngFor="let sherpaData of sherpaPoliciesData.sherpaResponse;let i = index;" #acc="ngbAccordion"> <ngb-accordion *ngVar="(sherpaPoliciesData$ | async)?.sherpaResponse as sherpaData" #acc="ngbAccordion">
<ng-container *ngFor="let journal of sherpaData.journals;let j=index;"> <ng-container *ngFor="let journal of sherpaData.journals;let j=index;">
<ngb-panel id="publication-information-{{j}}"> <ngb-panel id="publication-information-{{j}}">
<ng-template ngbPanelTitle> <ng-template ngbPanelTitle>
@@ -38,11 +41,11 @@
</ngb-panel> </ngb-panel>
</ng-container> </ng-container>
</ng-container> </ng-container>
<ngb-panel id="metadata-{{i}}"> <ngb-panel id="metadata">
<ng-template ngbPanelTitle> <ng-template ngbPanelTitle>
<div class="d-inline-block float-left"> <div class="d-inline-block float-left">
<span *ngIf="!acc.isExpanded('metadata-{{i}}')" class="fas fa-chevron-up fa-fw"></span> <span *ngIf="!acc.isExpanded('metadata')" class="fas fa-chevron-up fa-fw"></span>
<span *ngIf="acc.isExpanded('metadata-{{i}}')" class="fas fa-chevron-down fa-fw"></span> <span *ngIf="acc.isExpanded('metadata')" class="fas fa-chevron-down fa-fw"></span>
</div> </div>
<span class="float-left section-title" tabindex="0">{{'submission.sections.sherpa.record.information' <span class="float-left section-title" tabindex="0">{{'submission.sections.sherpa.record.information'
| translate}}</span> | translate}}</span>
@@ -51,4 +54,4 @@
<ds-metadata-information [metadata]="sherpaData.metadata"></ds-metadata-information> <ds-metadata-information [metadata]="sherpaData.metadata"></ds-metadata-information>
</ng-template> </ng-template>
</ngb-panel> </ngb-panel>
</ngb-accordion> </ngb-accordion>

View File

@@ -1,25 +1,21 @@
import { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap'; import { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap';
import { SubmissionServiceStub } from './../../../shared/testing/submission-service.stub'; import { SubmissionServiceStub } from '../../../shared/testing/submission-service.stub';
import { dataRes, getSherpaPoliciesData } from './../../../shared/mocks/section-sherpa-policies.service.mock'; import { SherpaDataResponse } from '../../../shared/mocks/section-sherpa-policies.service.mock';
import { ComponentFixture, inject, TestBed } from '@angular/core/testing'; import { ComponentFixture, inject, TestBed } from '@angular/core/testing';
import { SectionsService } from '../sections.service'; import { SectionsService } from '../sections.service';
import { SectionsServiceStub } from '../../../shared/testing/sections-service.stub'; import { SectionsServiceStub } from '../../../shared/testing/sections-service.stub';
import { FormBuilderService } from '../../../shared/form/builder/form-builder.service';
import { getMockFormBuilderService } from '../../../shared/mocks/form-builder-service.mock';
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder'; import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
import { TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core'; import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { getMockTranslateService } from '../../../shared/mocks/translate.service.mock';
import { BrowserModule, By } from '@angular/platform-browser'; import { BrowserModule, By } from '@angular/platform-browser';
import { Store } from '@ngrx/store'; import { Store } from '@ngrx/store';
import { AppState } from '../../../app.reducer'; import { AppState } from '../../../app.reducer';
import { SectionSherpaPoliciesService } from './section-sherpa-policies.service';
import { SubmissionSectionSherpaPoliciesComponent } from './section-sherpa-policies.component'; import { SubmissionSectionSherpaPoliciesComponent } from './section-sherpa-policies.component';
import { SubmissionService } from '../../submission.service'; import { SubmissionService } from '../../submission.service';
import { DebugElement } from '@angular/core'; import { DebugElement } from '@angular/core';
import { TranslateLoaderMock } from 'src/app/shared/mocks/translate-loader.mock'; import { TranslateLoaderMock } from '../../../shared/mocks/translate-loader.mock';
import { of as observableOf } from 'rxjs';
describe('SubmissionSectionSherpaPoliciesComponent', () => { describe('SubmissionSectionSherpaPoliciesComponent', () => {
let component: SubmissionSectionSherpaPoliciesComponent; let component: SubmissionSectionSherpaPoliciesComponent;
@@ -27,10 +23,6 @@ describe('SubmissionSectionSherpaPoliciesComponent', () => {
let de: DebugElement; let de: DebugElement;
const sectionsServiceStub = new SectionsServiceStub(); const sectionsServiceStub = new SectionsServiceStub();
// const pathCombiner = new JsonPatchOperationPathCombiner('sections', sectionId, 'files', fileIndex);
const builderService: FormBuilderService = getMockFormBuilderService();
const sectionSherpaPoliciesService = getSherpaPoliciesData();
const operationsBuilder = jasmine.createSpyObj('operationsBuilder', { const operationsBuilder = jasmine.createSpyObj('operationsBuilder', {
add: undefined, add: undefined,
@@ -47,7 +39,7 @@ describe('SubmissionSectionSherpaPoliciesComponent', () => {
sectionType: 'sherpaPolicies', sectionType: 'sherpaPolicies',
collapsed: false, collapsed: false,
enabled: true, enabled: true,
data: dataRes, data: SherpaDataResponse,
errorsToShow: [], errorsToShow: [],
serverValidationErrors: [], serverValidationErrors: [],
isLoading: false, isLoading: false,
@@ -71,7 +63,6 @@ describe('SubmissionSectionSherpaPoliciesComponent', () => {
declarations: [SubmissionSectionSherpaPoliciesComponent], declarations: [SubmissionSectionSherpaPoliciesComponent],
providers: [ providers: [
{ provide: SectionsService, useValue: sectionsServiceStub }, { provide: SectionsService, useValue: sectionsServiceStub },
{ provide: SectionSherpaPoliciesService, useValue: sectionSherpaPoliciesService },
{ provide: JsonPatchOperationsBuilder, useValue: operationsBuilder }, { provide: JsonPatchOperationsBuilder, useValue: operationsBuilder },
{ provide: SubmissionService, useValue: SubmissionServiceStub }, { provide: SubmissionService, useValue: SubmissionServiceStub },
{ provide: Store, useValue: storeStub }, { provide: Store, useValue: storeStub },
@@ -86,6 +77,7 @@ describe('SubmissionSectionSherpaPoliciesComponent', () => {
fixture = TestBed.createComponent(SubmissionSectionSherpaPoliciesComponent); fixture = TestBed.createComponent(SubmissionSectionSherpaPoliciesComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
de = fixture.debugElement; de = fixture.debugElement;
sectionsServiceStub.getSectionData.and.returnValue(observableOf(SherpaDataResponse))
fixture.detectChanges(); fixture.detectChanges();
})); }));

View File

@@ -1,18 +1,19 @@
import { JsonPatchOperationPathCombiner } from './../../../core/json-patch/builder/json-patch-operation-path-combiner'; import { Component, Inject, QueryList, ViewChildren } from '@angular/core';
import { JsonPatchOperationsBuilder } from './../../../core/json-patch/builder/json-patch-operations-builder';
import { WorkspaceitemSectionSherpaPoliciesObject } from './../../../core/submission/models/workspaceitem-section-sherpa-policies.model';
import { SectionSherpaPoliciesService } from './section-sherpa-policies.service';
import { Component, Inject, ViewChildren, QueryList } from '@angular/core';
import { Observable, of, Subscription } from 'rxjs'; import { BehaviorSubject, Observable, of, Subscription } from 'rxjs';
import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder/json-patch-operation-path-combiner';
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
import {
WorkspaceitemSectionSherpaPoliciesObject
} from '../../../core/submission/models/workspaceitem-section-sherpa-policies.model';
import { renderSectionFor } from '../sections-decorator'; import { renderSectionFor } from '../sections-decorator';
import { SectionsType } from '../sections-type'; import { SectionsType } from '../sections-type';
import { SectionDataObject } from '../models/section-data.model'; import { SectionDataObject } from '../models/section-data.model';
import { SectionsService } from '../sections.service'; import { SectionsService } from '../sections.service';
import { SectionModelComponent } from '../models/section.model'; import { SectionModelComponent } from '../models/section.model';
import { SubmissionService } from '../../submission.service'; import { SubmissionService } from '../../submission.service';
import { hasValue } from '../../../shared/empty.util'; import { hasValue, isEmpty } from '../../../shared/empty.util';
/** /**
* This component represents a section for managing item's access conditions. * This component represents a section for managing item's access conditions.
@@ -31,7 +32,7 @@ export class SubmissionSectionSherpaPoliciesComponent extends SectionModelCompon
* The accesses section data * The accesses section data
* @type {WorkspaceitemSectionAccessesObject} * @type {WorkspaceitemSectionAccessesObject}
*/ */
public sherpaPoliciesData: WorkspaceitemSectionSherpaPoliciesObject; public sherpaPoliciesData$: BehaviorSubject<WorkspaceitemSectionSherpaPoliciesObject> = new BehaviorSubject<WorkspaceitemSectionSherpaPoliciesObject>(null);
/** /**
* The [[JsonPatchOperationPathCombiner]] object * The [[JsonPatchOperationPathCombiner]] object
@@ -50,14 +51,12 @@ export class SubmissionSectionSherpaPoliciesComponent extends SectionModelCompon
* *
* @param {SectionsService} sectionService * @param {SectionsService} sectionService
* @param {SectionDataObject} injectedSectionData * @param {SectionDataObject} injectedSectionData
* @param {SectionSherpaPoliciesService} sectionSherpaPoliciesService
* @param {JsonPatchOperationsBuilder} operationsBuilder * @param {JsonPatchOperationsBuilder} operationsBuilder
* @param {SubmissionService} submissionService * @param {SubmissionService} submissionService
* @param {string} injectedSubmissionId * @param {string} injectedSubmissionId
*/ */
constructor( constructor(
protected sectionService: SectionsService, protected sectionService: SectionsService,
private sectionSherpaPoliciesService: SectionSherpaPoliciesService,
protected operationsBuilder: JsonPatchOperationsBuilder, protected operationsBuilder: JsonPatchOperationsBuilder,
private submissionService: SubmissionService, private submissionService: SubmissionService,
@Inject('sectionDataProvider') public injectedSectionData: SectionDataObject, @Inject('sectionDataProvider') public injectedSectionData: SectionDataObject,
@@ -88,11 +87,14 @@ export class SubmissionSectionSherpaPoliciesComponent extends SectionModelCompon
* Initialize all instance variables and retrieve collection default access conditions * Initialize all instance variables and retrieve collection default access conditions
*/ */
protected onSectionInit(): void { protected onSectionInit(): void {
this.pathCombiner = new JsonPatchOperationPathCombiner('sections', this.sectionData.id); this.pathCombiner = new JsonPatchOperationPathCombiner('sections', this.sectionData.id);
this.subs.push( this.subs.push(
this.sectionSherpaPoliciesService.getSherpaPoliciesData(this.submissionId, this.sectionData.id).subscribe((sherpaPolicies: WorkspaceitemSectionSherpaPoliciesObject) => { this.sectionService.getSectionData(this.submissionId, this.sectionData.id, this.sectionData.sectionType)
this.sherpaPoliciesData = sherpaPolicies; .subscribe((sherpaPolicies: WorkspaceitemSectionSherpaPoliciesObject) => {
}) this.sherpaPoliciesData$.next(sherpaPolicies);
console.log(this.sherpaPoliciesData$.value)
})
); );
} }
@@ -106,6 +108,13 @@ export class SubmissionSectionSherpaPoliciesComponent extends SectionModelCompon
return of(true); return of(true);
} }
/**
* Check if section has no data
*/
hasNoData(): boolean {
return isEmpty(this.sherpaPoliciesData$.value);
}
/** /**
* Refresh sherpa information * Refresh sherpa information
*/ */

View File

@@ -1,42 +0,0 @@
import { WorkspaceitemSectionSherpaPoliciesObject } from './../../../core/submission/models/workspaceitem-section-sherpa-policies.model';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { distinctUntilChanged, filter } from 'rxjs/operators';
import { Store } from '@ngrx/store';
import { SubmissionState } from '../../submission.reducers';
import { isNotUndefined } from '../../../shared/empty.util';
import { submissionSectionDataFromIdSelector } from '../../selectors';
/**
* A service that provides methods to handle submission item's sherpa policies state.
*/
@Injectable()
export class SectionSherpaPoliciesService {
/**
* Initialize service variables
*
* @param {Store<SubmissionState>} store
*/
constructor(private store: Store<SubmissionState>) { }
/**
* Return item's sherpa policies state.
*
* @param submissionId
* The submission id
* @param sectionId
* The section id
* @returns {Observable}
* Emits bitstream's metadata
*/
public getSherpaPoliciesData(submissionId: string, sectionId: string): Observable<WorkspaceitemSectionSherpaPoliciesObject> {
return this.store.select(submissionSectionDataFromIdSelector(submissionId, sectionId)).pipe(
filter((state) => isNotUndefined(state)),
distinctUntilChanged());
}
}

View File

@@ -1,4 +1,3 @@
import { SectionSherpaPoliciesService } from './sections/sherpa-policies/section-sherpa-policies.service';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { CoreModule } from '../core/core.module'; import { CoreModule } from '../core/core.module';
import { SharedModule } from '../shared/shared.module'; import { SharedModule } from '../shared/shared.module';
@@ -23,15 +22,27 @@ import { SubmissionSectionLicenseComponent } from './sections/license/section-li
import { SubmissionUploadsConfigService } from '../core/config/submission-uploads-config.service'; import { SubmissionUploadsConfigService } from '../core/config/submission-uploads-config.service';
import { SubmissionEditComponent } from './edit/submission-edit.component'; import { SubmissionEditComponent } from './edit/submission-edit.component';
import { SubmissionSectionUploadFileComponent } from './sections/upload/file/section-upload-file.component'; import { SubmissionSectionUploadFileComponent } from './sections/upload/file/section-upload-file.component';
import { SubmissionSectionUploadFileEditComponent } from './sections/upload/file/edit/section-upload-file-edit.component'; import {
import { SubmissionSectionUploadFileViewComponent } from './sections/upload/file/view/section-upload-file-view.component'; SubmissionSectionUploadFileEditComponent
import { SubmissionSectionUploadAccessConditionsComponent } from './sections/upload/accessConditions/submission-section-upload-access-conditions.component'; } from './sections/upload/file/edit/section-upload-file-edit.component';
import {
SubmissionSectionUploadFileViewComponent
} from './sections/upload/file/view/section-upload-file-view.component';
import {
SubmissionSectionUploadAccessConditionsComponent
} from './sections/upload/accessConditions/submission-section-upload-access-conditions.component';
import { SubmissionSubmitComponent } from './submit/submission-submit.component'; import { SubmissionSubmitComponent } from './submit/submission-submit.component';
import { storeModuleConfig } from '../app.reducer'; import { storeModuleConfig } from '../app.reducer';
import { SubmissionImportExternalComponent } from './import-external/submission-import-external.component'; import { SubmissionImportExternalComponent } from './import-external/submission-import-external.component';
import { SubmissionImportExternalSearchbarComponent } from './import-external/import-external-searchbar/submission-import-external-searchbar.component'; import {
import { SubmissionImportExternalPreviewComponent } from './import-external/import-external-preview/submission-import-external-preview.component'; SubmissionImportExternalSearchbarComponent
import { SubmissionImportExternalCollectionComponent } from './import-external/import-external-collection/submission-import-external-collection.component'; } from './import-external/import-external-searchbar/submission-import-external-searchbar.component';
import {
SubmissionImportExternalPreviewComponent
} from './import-external/import-external-preview/submission-import-external-preview.component';
import {
SubmissionImportExternalCollectionComponent
} from './import-external/import-external-collection/submission-import-external-collection.component';
import { SubmissionSectionCcLicensesComponent } from './sections/cc-license/submission-section-cc-licenses.component'; import { SubmissionSectionCcLicensesComponent } from './sections/cc-license/submission-section-cc-licenses.component';
import { JournalEntitiesModule } from '../entity-groups/journal-entities/journal-entities.module'; import { JournalEntitiesModule } from '../entity-groups/journal-entities/journal-entities.module';
import { ResearchEntitiesModule } from '../entity-groups/research-entities/research-entities.module'; import { ResearchEntitiesModule } from '../entity-groups/research-entities/research-entities.module';
@@ -46,8 +57,12 @@ import { SectionAccessesService } from './sections/accesses/section-accesses.ser
import { SubmissionSectionSherpaPoliciesComponent } from './sections/sherpa-policies/section-sherpa-policies.component'; import { SubmissionSectionSherpaPoliciesComponent } from './sections/sherpa-policies/section-sherpa-policies.component';
import { ContentAccordionComponent } from './sections/sherpa-policies/content-accordion/content-accordion.component'; import { ContentAccordionComponent } from './sections/sherpa-policies/content-accordion/content-accordion.component';
import { PublisherPolicyComponent } from './sections/sherpa-policies/publisher-policy/publisher-policy.component'; import { PublisherPolicyComponent } from './sections/sherpa-policies/publisher-policy/publisher-policy.component';
import { PublicationInformationComponent } from './sections/sherpa-policies/publication-information/publication-information.component'; import {
import { MetadataInformationComponent } from './sections/sherpa-policies/metadata-information/metadata-information.component'; PublicationInformationComponent
} from './sections/sherpa-policies/publication-information/publication-information.component';
import {
MetadataInformationComponent
} from './sections/sherpa-policies/metadata-information/metadata-information.component';
const ENTRY_COMPONENTS = [ const ENTRY_COMPONENTS = [
// put only entry components that use custom decorator // put only entry components that use custom decorator
@@ -108,8 +123,7 @@ const DECLARATIONS = [
SectionsService, SectionsService,
SubmissionUploadsConfigService, SubmissionUploadsConfigService,
SubmissionAccessesConfigService, SubmissionAccessesConfigService,
SectionAccessesService, SectionAccessesService
SectionSherpaPoliciesService
] ]
}) })

View File

@@ -3874,10 +3874,14 @@
"submission.sections.submit.progressbar.license": "Deposit license", "submission.sections.submit.progressbar.license": "Deposit license",
"submission.sections.submit.progressbar.sherpapolicy": "Sherpa policies",
"submission.sections.submit.progressbar.upload": "Upload files", "submission.sections.submit.progressbar.upload": "Upload files",
"submission.sections.sherpa-policy.title-empty": "No information available",
"submission.sections.status.errors.title": "Errors", "submission.sections.status.errors.title": "Errors",
"submission.sections.status.valid.title": "Valid", "submission.sections.status.valid.title": "Valid",
@@ -3990,7 +3994,7 @@
"submission.sections.sherpa.publication.information": "Publication information", "submission.sections.sherpa.publication.information": "Publication information",
"submission.sections.sherpa.publication.information.title": "Title", "submission.sections.sherpa.publication.information.title": "Title",
"submission.sections.sherpa.publication.information.issns": "ISSNs", "submission.sections.sherpa.publication.information.issns": "ISSNs",