diff --git a/src/app/submission/sections/sherpa-policies/content-accordion/content-accordion.component.ts b/src/app/submission/sections/sherpa-policies/content-accordion/content-accordion.component.ts
index 12b48d10f4..378f08c8bc 100644
--- a/src/app/submission/sections/sherpa-policies/content-accordion/content-accordion.component.ts
+++ b/src/app/submission/sections/sherpa-policies/content-accordion/content-accordion.component.ts
@@ -7,7 +7,9 @@ import { Component, Input } from '@angular/core';
styleUrls: ['./content-accordion.component.scss']
})
export class ContentAccordionComponent {
-
+ /**
+ * PermittedVersions to show information from
+ */
@Input() version: PermittedVersions;
}
diff --git a/src/app/submission/sections/sherpa-policies/metadata-information/metadata-information.component.ts b/src/app/submission/sections/sherpa-policies/metadata-information/metadata-information.component.ts
index 334aa43593..8b85237762 100644
--- a/src/app/submission/sections/sherpa-policies/metadata-information/metadata-information.component.ts
+++ b/src/app/submission/sections/sherpa-policies/metadata-information/metadata-information.component.ts
@@ -7,7 +7,9 @@ import { Metadata } from './../../../../core/submission/models/sherpa-policies-d
styleUrls: ['./metadata-information.component.scss']
})
export class MetadataInformationComponent {
-
+ /**
+ * Metadata to show information from
+ */
@Input() metadata: Metadata;
}
diff --git a/src/app/submission/sections/sherpa-policies/publication-information/publication-information.component.ts b/src/app/submission/sections/sherpa-policies/publication-information/publication-information.component.ts
index a6cd6cc3da..a5306406af 100644
--- a/src/app/submission/sections/sherpa-policies/publication-information/publication-information.component.ts
+++ b/src/app/submission/sections/sherpa-policies/publication-information/publication-information.component.ts
@@ -7,7 +7,9 @@ import { Journal } from './../../../../core/submission/models/sherpa-policies-de
styleUrls: ['./publication-information.component.scss']
})
export class PublicationInformationComponent {
-
+ /**
+ * Journal to show information from
+ */
@Input() journal: Journal;
}
diff --git a/src/app/submission/sections/sherpa-policies/publisher-policy/publisher-policy.component.html b/src/app/submission/sections/sherpa-policies/publisher-policy/publisher-policy.component.html
index 3bc1cb5084..4a03bae735 100644
--- a/src/app/submission/sections/sherpa-policies/publisher-policy/publisher-policy.component.html
+++ b/src/app/submission/sections/sherpa-policies/publisher-policy/publisher-policy.component.html
@@ -8,7 +8,6 @@
-
-
-
\ No newline at end of file
diff --git a/src/app/submission/sections/sherpa-policies/publisher-policy/publisher-policy.component.ts b/src/app/submission/sections/sherpa-policies/publisher-policy/publisher-policy.component.ts
index e526080d0d..dcbc115ddd 100644
--- a/src/app/submission/sections/sherpa-policies/publisher-policy/publisher-policy.component.ts
+++ b/src/app/submission/sections/sherpa-policies/publisher-policy/publisher-policy.component.ts
@@ -8,6 +8,9 @@ import { Component, Input, OnInit } from '@angular/core';
})
export class PublisherPolicyComponent {
+ /**
+ * Policy to show information from
+ */
@Input() policy: Policy;
}
diff --git a/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.html b/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.html
index ade01a4312..6756793fd5 100644
--- a/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.html
+++ b/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.html
@@ -1,3 +1,9 @@
+
+
+
+
diff --git a/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.scss b/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.scss
index 8c1bfc2580..5a8e0e3c34 100644
--- a/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.scss
+++ b/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.scss
@@ -28,4 +28,9 @@
}
}
+}
+
+.refresh-container {
+ display: flex;
+ justify-content: right;
}
\ No newline at end of file
diff --git a/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.ts b/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.ts
index 662f066663..f5eaaa773a 100644
--- a/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.ts
+++ b/src/app/submission/sections/sherpa-policies/section-sherpa-policies.component.ts
@@ -1,14 +1,18 @@
+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 { SectionSherpaPoliciesService } from './section-sherpa-policies.service';
import { Component, Inject, ViewChildren, QueryList } from '@angular/core';
-import { Observable, of } from 'rxjs';
+import { Observable, of, Subscription } from 'rxjs';
import { renderSectionFor } from '../sections-decorator';
import { SectionsType } from '../sections-type';
import { SectionDataObject } from '../models/section-data.model';
import { SectionsService } from '../sections.service';
import { SectionModelComponent } from '../models/section.model';
+import { SubmissionService } from '../../submission.service';
+import { hasValue } from '../../../shared/empty.util';
/**
* This component represents a section for managing item's access conditions.
@@ -29,6 +33,17 @@ export class SubmissionSectionSherpaPoliciesComponent extends SectionModelCompon
*/
public sherpaPoliciesData: WorkspaceitemSectionSherpaPoliciesObject;
+ /**
+ * The [[JsonPatchOperationPathCombiner]] object
+ * @type {JsonPatchOperationPathCombiner}
+ */
+ protected pathCombiner: JsonPatchOperationPathCombiner;
+
+ /**
+ * Array to track all subscriptions and unsubscribe them onDestroy
+ * @type {Array}
+ */
+ protected subs: Subscription[] = [];
/**
* Initialize instance variables
@@ -36,11 +51,15 @@ export class SubmissionSectionSherpaPoliciesComponent extends SectionModelCompon
* @param {SectionsService} sectionService
* @param {SectionDataObject} injectedSectionData
* @param {SectionSherpaPoliciesService} sectionSherpaPoliciesService
+ * @param {JsonPatchOperationsBuilder} operationsBuilder
+ * @param {SubmissionService} submissionService
* @param {string} injectedSubmissionId
*/
constructor(
protected sectionService: SectionsService,
private sectionSherpaPoliciesService: SectionSherpaPoliciesService,
+ protected operationsBuilder: JsonPatchOperationsBuilder,
+ private submissionService: SubmissionService,
@Inject('sectionDataProvider') public injectedSectionData: SectionDataObject,
@Inject('submissionIdProvider') public injectedSubmissionId: string) {
super(undefined, injectedSectionData, injectedSubmissionId);
@@ -49,11 +68,15 @@ export class SubmissionSectionSherpaPoliciesComponent extends SectionModelCompon
/**
* Unsubscribe from all subscriptions
*/
- // tslint:disable-next-line:no-empty
onSectionDestroy() {
-
+ this.subs
+ .filter((subscription) => hasValue(subscription))
+ .forEach((subscription) => subscription.unsubscribe());
}
+ /**
+ * Expand all primary accordions
+ */
ngAfterViewInit() {
this.acc.forEach(accordion => {
accordion.expandAll();
@@ -65,9 +88,12 @@ export class SubmissionSectionSherpaPoliciesComponent extends SectionModelCompon
* Initialize all instance variables and retrieve collection default access conditions
*/
protected onSectionInit(): void {
- this.sectionSherpaPoliciesService.getSherpaPoliciesData(this.submissionId, this.sectionData.id).subscribe((sherpaPolicies: WorkspaceitemSectionSherpaPoliciesObject) => {
- this.sherpaPoliciesData = sherpaPolicies;
- });
+ this.pathCombiner = new JsonPatchOperationPathCombiner('sections', this.sectionData.id);
+ this.subs.push(
+ this.sectionSherpaPoliciesService.getSherpaPoliciesData(this.submissionId, this.sectionData.id).subscribe((sherpaPolicies: WorkspaceitemSectionSherpaPoliciesObject) => {
+ this.sherpaPoliciesData = sherpaPolicies;
+ })
+ );
}
/**
@@ -80,4 +106,12 @@ export class SubmissionSectionSherpaPoliciesComponent extends SectionModelCompon
return of(true);
}
+ /**
+ * Refresh sherpa information
+ */
+ refresh() {
+ this.operationsBuilder.remove(this.pathCombiner.getPath('retrievalTime'));
+ this.submissionService.dispatchSaveSection(this.submissionId, this.sectionData.id);
+ }
+
}
diff --git a/src/app/submission/sections/sherpa-policies/section-sherpa-policies.service.ts b/src/app/submission/sections/sherpa-policies/section-sherpa-policies.service.ts
index c81caca41e..4ddf4509cb 100644
--- a/src/app/submission/sections/sherpa-policies/section-sherpa-policies.service.ts
+++ b/src/app/submission/sections/sherpa-policies/section-sherpa-policies.service.ts
@@ -10,7 +10,7 @@ import { isNotUndefined } from '../../../shared/empty.util';
import { submissionSectionDataFromIdSelector } from '../../selectors';
/**
- * A service that provides methods to handle submission item's accesses condition state.
+ * A service that provides methods to handle submission item's sherpa policies state.
*/
@Injectable()
export class SectionSherpaPoliciesService {
@@ -24,7 +24,7 @@ export class SectionSherpaPoliciesService {
/**
- * Return item's accesses condition state.
+ * Return item's sherpa policies state.
*
* @param submissionId
* The submission id
diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5
index 59079e34eb..3c2ad2505f 100644
--- a/src/assets/i18n/en.json5
+++ b/src/assets/i18n/en.json5
@@ -4022,6 +4022,7 @@
"submission.sections.sherpa.publisher.policy.conditions": "Conditions",
+ "submission.sections.sherpa.publisher.policy.refresh": "Refresh",
"submission.sections.sherpa.record.information": "Record Information",