diff --git a/src/app/core/data/item-request-data.service.ts b/src/app/core/data/item-request-data.service.ts index db6221572f..351c96a70d 100644 --- a/src/app/core/data/item-request-data.service.ts +++ b/src/app/core/data/item-request-data.service.ts @@ -211,11 +211,10 @@ export class ItemRequestDataService extends IdentifiableDataService * if the 'send secure link' feature is configured. * Expects integer values, conversion to number is done in this processing */ - getConfiguredAccessPeriods(): Observable { + getConfiguredAccessPeriods(): Observable { return this.configService.findByPropertyName('request.item.grant.link.period').pipe( getFirstCompletedRemoteData(), map((propertyRD: RemoteData) => propertyRD.hasSucceeded ? propertyRD.payload.values : []), - map((values) => values.map(value => parseInt(value, 10))), ); } diff --git a/src/app/core/shared/item-request.model.ts b/src/app/core/shared/item-request.model.ts index 8fa3398d24..06d4423ea1 100644 --- a/src/app/core/shared/item-request.model.ts +++ b/src/app/core/shared/item-request.model.ts @@ -86,10 +86,10 @@ export class ItemRequest implements CacheableObject { @autoserialize accessToken: string; /** - * Access period of the request + * Access expiry date of the request */ @autoserialize - accessPeriod: number; + accessExpiry: string; /** * The {@link HALLink}s for this ItemRequest diff --git a/src/app/request-copy/email-request-copy/email-request-copy.component.spec.ts b/src/app/request-copy/email-request-copy/email-request-copy.component.spec.ts index 676f987c0f..9fa32be58b 100644 --- a/src/app/request-copy/email-request-copy/email-request-copy.component.spec.ts +++ b/src/app/request-copy/email-request-copy/email-request-copy.component.spec.ts @@ -45,7 +45,7 @@ describe('EmailRequestCopyComponent', () => { spyOn(component.send, 'emit').and.stub(); component.subject = 'test-subject'; component.message = 'test-message'; - component.validAccessPeriods = [0]; + component.validAccessPeriods = ['FOREVER']; component.submit(); expect(component.send.emit).toHaveBeenCalledWith(new RequestCopyEmail('test-subject', 'test-message')); }); diff --git a/src/app/request-copy/email-request-copy/email-request-copy.component.ts b/src/app/request-copy/email-request-copy/email-request-copy.component.ts index bb455f7fca..e427996080 100644 --- a/src/app/request-copy/email-request-copy/email-request-copy.component.ts +++ b/src/app/request-copy/email-request-copy/email-request-copy.component.ts @@ -34,7 +34,7 @@ export class EmailRequestCopyComponent implements OnInit { * Event emitter for sending the email */ @Output() send: EventEmitter = new EventEmitter(); - @Output() selectedAccessPeriod: EventEmitter = new EventEmitter(); + @Output() selectedAccessPeriod: EventEmitter = new EventEmitter(); /** * The subject of the email @@ -49,12 +49,13 @@ export class EmailRequestCopyComponent implements OnInit { /** * A list of valid access periods to render in a drop-down menu */ - @Input() validAccessPeriods: number[] = []; + @Input() validAccessPeriods: string [] = []; /** - * The selected access period + * The selected access period, e.g. +7DAYS, +12MONTHS, FOREVER. These will be + * calculated as a timestamp to store as the access expiry date for the requested item */ - accessPeriod = 0; + accessPeriod = 'FOREVER'; protected readonly hasValue = hasValue; @@ -86,7 +87,7 @@ export class EmailRequestCopyComponent implements OnInit { * Update the access period when a dropdown menu button is clicked for a value * @param accessPeriod */ - selectAccessPeriod(accessPeriod: number) { + selectAccessPeriod(accessPeriod: string) { this.accessPeriod = accessPeriod; this.selectedAccessPeriod.emit(accessPeriod); } diff --git a/src/app/request-copy/grant-request-copy/grant-request-copy.component.ts b/src/app/request-copy/grant-request-copy/grant-request-copy.component.ts index 597e55e23f..79519341aa 100644 --- a/src/app/request-copy/grant-request-copy/grant-request-copy.component.ts +++ b/src/app/request-copy/grant-request-copy/grant-request-copy.component.ts @@ -76,7 +76,7 @@ export class GrantRequestCopyComponent implements OnInit { /** * A list of integers determining valid access periods in seconds */ - validAccessPeriods$: Observable; + validAccessPeriods$: Observable; /** * The currently selected access period diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 82dc0092e8..5540d16e65 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -2088,15 +2088,15 @@ "grant-request-copy.access-period.header": "Access period", - "grant-request-copy.access-period.120": "2 minutes", + "grant-request-copy.access-period.+1DAY": "1 day", - "grant-request-copy.access-period.240": "4 minutes", + "grant-request-copy.access-period.+1WEEK": "1 week", - "grant-request-copy.access-period.86400": "1 day", + "grant-request-copy.access-period.+1MONTH": "1 month", - "grant-request-copy.access-period.604800": "7 days", + "grant-request-copy.access-period.+3MONTHS": "3 months", - "grant-request-copy.access-period.0": "Forever", + "grant-request-copy.access-period.FOREVER": "Forever", "health.breadcrumbs": "Health",