mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-17 15:03:07 +00:00
[CST-5270] Implemented new refresh button & code refactoring
This commit is contained in:
@@ -7,7 +7,9 @@ import { Component, Input } from '@angular/core';
|
|||||||
styleUrls: ['./content-accordion.component.scss']
|
styleUrls: ['./content-accordion.component.scss']
|
||||||
})
|
})
|
||||||
export class ContentAccordionComponent {
|
export class ContentAccordionComponent {
|
||||||
|
/**
|
||||||
|
* PermittedVersions to show information from
|
||||||
|
*/
|
||||||
@Input() version: PermittedVersions;
|
@Input() version: PermittedVersions;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -7,7 +7,9 @@ import { Metadata } from './../../../../core/submission/models/sherpa-policies-d
|
|||||||
styleUrls: ['./metadata-information.component.scss']
|
styleUrls: ['./metadata-information.component.scss']
|
||||||
})
|
})
|
||||||
export class MetadataInformationComponent {
|
export class MetadataInformationComponent {
|
||||||
|
/**
|
||||||
|
* Metadata to show information from
|
||||||
|
*/
|
||||||
@Input() metadata: Metadata;
|
@Input() metadata: Metadata;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -7,7 +7,9 @@ import { Journal } from './../../../../core/submission/models/sherpa-policies-de
|
|||||||
styleUrls: ['./publication-information.component.scss']
|
styleUrls: ['./publication-information.component.scss']
|
||||||
})
|
})
|
||||||
export class PublicationInformationComponent {
|
export class PublicationInformationComponent {
|
||||||
|
/**
|
||||||
|
* Journal to show information from
|
||||||
|
*/
|
||||||
@Input() journal: Journal;
|
@Input() journal: Journal;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -8,7 +8,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<ds-content-accordion *ngFor="let permittedVersions of policy.permittedVersions" [version]="permittedVersions">
|
<ds-content-accordion *ngFor="let permittedVersions of policy.permittedVersions" [version]="permittedVersions">
|
||||||
</ds-content-accordion>
|
</ds-content-accordion>
|
||||||
<!-- <ds-content-accordion></ds-content-accordion> -->
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<p class="m-1">
|
<p class="m-1">
|
||||||
@@ -21,6 +20,4 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
@@ -8,6 +8,9 @@ import { Component, Input, OnInit } from '@angular/core';
|
|||||||
})
|
})
|
||||||
export class PublisherPolicyComponent {
|
export class PublisherPolicyComponent {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Policy to show information from
|
||||||
|
*/
|
||||||
@Input() policy: Policy;
|
@Input() policy: Policy;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,3 +1,9 @@
|
|||||||
|
<div class="refresh-container mt-2 mb-2">
|
||||||
|
<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>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<ngb-accordion *ngFor="let sherpaData of sherpaPoliciesData.sherpaResponse;let i = index;" #acc="ngbAccordion">
|
<ngb-accordion *ngFor="let sherpaData of sherpaPoliciesData.sherpaResponse;let i = index;" #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}}">
|
||||||
|
@@ -28,4 +28,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.refresh-container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: right;
|
||||||
}
|
}
|
@@ -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 { WorkspaceitemSectionSherpaPoliciesObject } from './../../../core/submission/models/workspaceitem-section-sherpa-policies.model';
|
||||||
import { SectionSherpaPoliciesService } from './section-sherpa-policies.service';
|
import { SectionSherpaPoliciesService } from './section-sherpa-policies.service';
|
||||||
import { Component, Inject, ViewChildren, QueryList } from '@angular/core';
|
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 { 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 { hasValue } 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.
|
||||||
@@ -29,6 +33,17 @@ export class SubmissionSectionSherpaPoliciesComponent extends SectionModelCompon
|
|||||||
*/
|
*/
|
||||||
public sherpaPoliciesData: WorkspaceitemSectionSherpaPoliciesObject;
|
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
|
* Initialize instance variables
|
||||||
@@ -36,11 +51,15 @@ export class SubmissionSectionSherpaPoliciesComponent extends SectionModelCompon
|
|||||||
* @param {SectionsService} sectionService
|
* @param {SectionsService} sectionService
|
||||||
* @param {SectionDataObject} injectedSectionData
|
* @param {SectionDataObject} injectedSectionData
|
||||||
* @param {SectionSherpaPoliciesService} sectionSherpaPoliciesService
|
* @param {SectionSherpaPoliciesService} sectionSherpaPoliciesService
|
||||||
|
* @param {JsonPatchOperationsBuilder} operationsBuilder
|
||||||
|
* @param {SubmissionService} submissionService
|
||||||
* @param {string} injectedSubmissionId
|
* @param {string} injectedSubmissionId
|
||||||
*/
|
*/
|
||||||
constructor(
|
constructor(
|
||||||
protected sectionService: SectionsService,
|
protected sectionService: SectionsService,
|
||||||
private sectionSherpaPoliciesService: SectionSherpaPoliciesService,
|
private sectionSherpaPoliciesService: SectionSherpaPoliciesService,
|
||||||
|
protected operationsBuilder: JsonPatchOperationsBuilder,
|
||||||
|
private submissionService: SubmissionService,
|
||||||
@Inject('sectionDataProvider') public injectedSectionData: SectionDataObject,
|
@Inject('sectionDataProvider') public injectedSectionData: SectionDataObject,
|
||||||
@Inject('submissionIdProvider') public injectedSubmissionId: string) {
|
@Inject('submissionIdProvider') public injectedSubmissionId: string) {
|
||||||
super(undefined, injectedSectionData, injectedSubmissionId);
|
super(undefined, injectedSectionData, injectedSubmissionId);
|
||||||
@@ -49,11 +68,15 @@ export class SubmissionSectionSherpaPoliciesComponent extends SectionModelCompon
|
|||||||
/**
|
/**
|
||||||
* Unsubscribe from all subscriptions
|
* Unsubscribe from all subscriptions
|
||||||
*/
|
*/
|
||||||
// tslint:disable-next-line:no-empty
|
|
||||||
onSectionDestroy() {
|
onSectionDestroy() {
|
||||||
|
this.subs
|
||||||
|
.filter((subscription) => hasValue(subscription))
|
||||||
|
.forEach((subscription) => subscription.unsubscribe());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Expand all primary accordions
|
||||||
|
*/
|
||||||
ngAfterViewInit() {
|
ngAfterViewInit() {
|
||||||
this.acc.forEach(accordion => {
|
this.acc.forEach(accordion => {
|
||||||
accordion.expandAll();
|
accordion.expandAll();
|
||||||
@@ -65,9 +88,12 @@ 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.sectionSherpaPoliciesService.getSherpaPoliciesData(this.submissionId, this.sectionData.id).subscribe((sherpaPolicies: WorkspaceitemSectionSherpaPoliciesObject) => {
|
this.pathCombiner = new JsonPatchOperationPathCombiner('sections', this.sectionData.id);
|
||||||
this.sherpaPoliciesData = sherpaPolicies;
|
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);
|
return of(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refresh sherpa information
|
||||||
|
*/
|
||||||
|
refresh() {
|
||||||
|
this.operationsBuilder.remove(this.pathCombiner.getPath('retrievalTime'));
|
||||||
|
this.submissionService.dispatchSaveSection(this.submissionId, this.sectionData.id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -10,7 +10,7 @@ import { isNotUndefined } from '../../../shared/empty.util';
|
|||||||
import { submissionSectionDataFromIdSelector } from '../../selectors';
|
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()
|
@Injectable()
|
||||||
export class SectionSherpaPoliciesService {
|
export class SectionSherpaPoliciesService {
|
||||||
@@ -24,7 +24,7 @@ export class SectionSherpaPoliciesService {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return item's accesses condition state.
|
* Return item's sherpa policies state.
|
||||||
*
|
*
|
||||||
* @param submissionId
|
* @param submissionId
|
||||||
* The submission id
|
* The submission id
|
||||||
|
@@ -4022,6 +4022,7 @@
|
|||||||
|
|
||||||
"submission.sections.sherpa.publisher.policy.conditions": "Conditions",
|
"submission.sections.sherpa.publisher.policy.conditions": "Conditions",
|
||||||
|
|
||||||
|
"submission.sections.sherpa.publisher.policy.refresh": "Refresh",
|
||||||
|
|
||||||
"submission.sections.sherpa.record.information": "Record Information",
|
"submission.sections.sherpa.record.information": "Record Information",
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user