Merge branch 'main' into themeable-section-upload-file

This commit is contained in:
Mark H. Wood
2023-06-01 16:36:09 -04:00
244 changed files with 4669 additions and 1687 deletions

View File

@@ -8,4 +8,5 @@ export enum SectionsType {
AccessesCondition = 'accessCondition',
SherpaPolicies = 'sherpaPolicy',
Identifiers = 'identifiers',
Collection = 'collection',
}

View File

@@ -23,7 +23,7 @@
</div>
<div class="col-4">
<p class="m-1">
<a href="{{journal.url}}" target="_blank">
<a href="{{journal.url}}" target="_blank" rel="noopener noreferrer">
{{journal.url}}
</a>
</p>
@@ -35,7 +35,7 @@
</div>
<div class="col-4" *ngFor="let publisher of journal.publishers">
<p class="m-1">
<a href="{{publisher.uri}}" target="_blank">
<a href="{{publisher.uri}}" target="_blank" rel="noopener noreferrer">
{{publisher.name}}
</a>
</p>

View File

@@ -8,7 +8,7 @@
</p>
<ul>
<li *ngFor="let url of policy.urls | keyvalue">
<a href="{{url.key}}" target="_blank">{{url.value}}</a>
<a href="{{url.key}}" target="_blank" rel="noopener noreferrer">{{url.value}}</a>
</li>
</ul>
</div>

View File

@@ -7,6 +7,7 @@ import { ResourcePolicy } from '../../../../core/resource-policy/models/resource
import { isEmpty } from '../../../../shared/empty.util';
import { Group } from '../../../../core/eperson/models/group.model';
import { RemoteData } from '../../../../core/data/remote-data';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
/**
* This component represents a badge that describe an access condition
@@ -27,14 +28,13 @@ export class SubmissionSectionUploadAccessConditionsComponent implements OnInit
* The list of access conditions
* @type {Array}
*/
public accessConditionsList = [];
public accessConditionsList: ResourcePolicy[] = [];
/**
* Initialize instance variables
*
* @param {GroupDataService} groupService
*/
constructor(private groupService: GroupDataService) {}
constructor(
public dsoNameService: DSONameService,
protected groupService: GroupDataService,
) {
}
/**
* Retrieve access conditions list
@@ -47,7 +47,7 @@ export class SubmissionSectionUploadAccessConditionsComponent implements OnInit
.subscribe((rd: RemoteData<Group>) => {
const group: Group = rd.payload;
const accessConditionEntry = Object.assign({}, accessCondition);
accessConditionEntry.name = group.name;
accessConditionEntry.name = this.dsoNameService.getName(group);
this.accessConditionsList.push(accessConditionEntry);
});
} else {

View File

@@ -1,4 +1,4 @@
import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { UntypedFormControl } from '@angular/forms';
import {
@@ -66,7 +66,8 @@ import { DynamicDateControlValue } from '@ng-dynamic-forms/core/lib/model/dynami
styleUrls: ['./section-upload-file-edit.component.scss'],
templateUrl: './section-upload-file-edit.component.html',
})
export class SubmissionSectionUploadFileEditComponent implements OnInit {
export class SubmissionSectionUploadFileEditComponent
implements OnInit, OnDestroy {
/**
* The FormComponent reference
@@ -435,13 +436,31 @@ export class SubmissionSectionUploadFileEditComponent implements OnInit {
delete currentAccessCondition.startDate;
} else if (accessCondition.startDate) {
const startDate = this.retrieveValueFromField(accessCondition.startDate);
currentAccessCondition.startDate = dateToISOFormat(startDate);
// Clamp the start date to the maximum, if any, since the
// datepicker sometimes exceeds it.
let startDateDate = new Date(startDate);
if (accessConditionOpt.maxStartDate) {
const maxStartDateDate = new Date(accessConditionOpt.maxStartDate);
if (startDateDate > maxStartDateDate) {
startDateDate = maxStartDateDate;
}
}
currentAccessCondition.startDate = dateToISOFormat(startDateDate);
}
if (!accessConditionOpt.hasEndDate) {
delete currentAccessCondition.endDate;
} else if (accessCondition.endDate) {
const endDate = this.retrieveValueFromField(accessCondition.endDate);
currentAccessCondition.endDate = dateToISOFormat(endDate);
// Clamp the end date to the maximum, if any, since the
// datepicker sometimes exceeds it.
let endDateDate = new Date(endDate);
if (accessConditionOpt.maxEndDate) {
const maxEndDateDate = new Date(accessConditionOpt.maxEndDate);
if (endDateDate > maxEndDateDate) {
endDateDate = maxEndDateDate;
}
}
currentAccessCondition.endDate = dateToISOFormat(endDateDate);
}
accessConditionsToSave.push(currentAccessCondition);
}

View File

@@ -30,6 +30,7 @@ import { Collection } from '../../../core/shared/collection.model';
import { AccessConditionOption } from '../../../core/config/models/config-access-condition-option.model';
import { followLink } from '../../../shared/utils/follow-link-config.model';
import { getFirstSucceededRemoteData } from '../../../core/shared/operators';
import { DSONameService } from '../../../core/breadcrumbs/dso-name.service';
export const POLICY_DEFAULT_NO_LIST = 1; // Banner1
export const POLICY_DEFAULT_WITH_LIST = 2; // Banner2
@@ -138,6 +139,7 @@ export class SubmissionSectionUploadComponent extends SectionModelComponent {
protected sectionService: SectionsService,
private submissionService: SubmissionService,
private uploadsConfigService: SubmissionUploadsConfigDataService,
public dsoNameService: DSONameService,
@Inject('sectionDataProvider') public injectedSectionData: SectionDataObject,
@Inject('submissionIdProvider') public injectedSubmissionId: string) {
super(undefined, injectedSectionData, injectedSubmissionId);
@@ -167,7 +169,7 @@ export class SubmissionSectionUploadComponent extends SectionModelComponent {
tap((submissionObject: SubmissionObjectEntry) => this.collectionId = submissionObject.collection),
mergeMap((submissionObject: SubmissionObjectEntry) => this.collectionDataService.findById(submissionObject.collection)),
filter((rd: RemoteData<Collection>) => isNotUndefined((rd.payload))),
tap((collectionRemoteData: RemoteData<Collection>) => this.collectionName = collectionRemoteData.payload.name),
tap((collectionRemoteData: RemoteData<Collection>) => this.collectionName = this.dsoNameService.getName(collectionRemoteData.payload)),
// TODO review this part when https://github.com/DSpace/dspace-angular/issues/575 is resolved
/* mergeMap((collectionRemoteData: RemoteData<Collection>) => {
return this.resourcePolicyService.findByHref(

View File

@@ -0,0 +1,4 @@
export enum VisibilityType {
HIDDEN = 'HIDDEN',
READONLY = 'READONLY',
}