mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-17 06:53:03 +00:00
Merge branch 'main' into themeable-section-upload-file
This commit is contained in:
@@ -8,4 +8,5 @@ export enum SectionsType {
|
||||
AccessesCondition = 'accessCondition',
|
||||
SherpaPolicies = 'sherpaPolicy',
|
||||
Identifiers = 'identifiers',
|
||||
Collection = 'collection',
|
||||
}
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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 {
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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(
|
||||
|
4
src/app/submission/sections/visibility-type.ts
Normal file
4
src/app/submission/sections/visibility-type.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export enum VisibilityType {
|
||||
HIDDEN = 'HIDDEN',
|
||||
READONLY = 'READONLY',
|
||||
}
|
Reference in New Issue
Block a user