diff --git a/src/app/request-copy/grant-deny-request-copy/grant-deny-request-copy.component.html b/src/app/request-copy/grant-deny-request-copy/grant-deny-request-copy.component.html new file mode 100644 index 0000000000..ae38a964e8 --- /dev/null +++ b/src/app/request-copy/grant-deny-request-copy/grant-deny-request-copy.component.html @@ -0,0 +1,20 @@ +
+

{{'grant-deny-request-copy.header' | translate}}

+

{{'grant-deny-request-copy.intro' | translate}}

+ + +
+ + {{'grant-deny-request-copy.grant' | translate }} + + + + {{'grant-deny-request-copy.deny' | translate }} + +
+ +
\ No newline at end of file diff --git a/src/app/request-copy/grant-deny-request-copy/grant-deny-request-copy.component.scss b/src/app/request-copy/grant-deny-request-copy/grant-deny-request-copy.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/request-copy/grant-deny-request-copy/grant-deny-request-copy.component.ts b/src/app/request-copy/grant-deny-request-copy/grant-deny-request-copy.component.ts new file mode 100644 index 0000000000..f8134cdf96 --- /dev/null +++ b/src/app/request-copy/grant-deny-request-copy/grant-deny-request-copy.component.ts @@ -0,0 +1,50 @@ +import { Component, OnInit } from '@angular/core'; +import { TranslateService } from '@ngx-translate/core'; +import { EPersonDataService } from '../../core/eperson/eperson-data.service'; +import { Store } from '@ngrx/store'; +import { CoreState } from '../../core/core.reducers'; +import { ActivatedRoute, Router } from '@angular/router'; +import { FormBuilder } from '@angular/forms'; +import { NotificationsService } from '../../shared/notifications/notifications.service'; +import { EndUserAgreementService } from '../../core/end-user-agreement/end-user-agreement.service'; +import { map } from 'rxjs/operators'; +import { Registration } from '../../core/shared/registration.model'; +import { ItemRequest } from '../../core/shared/item-request.model'; +import { Observable } from 'rxjs/internal/Observable'; +import { getFirstCompletedRemoteData, redirectOn4xx } from '../../core/shared/operators'; +import { RemoteData } from '../../core/data/remote-data'; +import { AuthService } from '../../core/auth/auth.service'; + +@Component({ + selector: 'ds-grant-deny-request-copy', + styleUrls: ['./grant-deny-request-copy.component.scss'], + templateUrl: './grant-deny-request-copy.component.html' +}) +export class GrantDenyRequestCopyComponent implements OnInit { + private itemRequest$: Observable>; + + + constructor( + private translateService: TranslateService, + private ePersonDataService: EPersonDataService, + private store: Store, + private router: Router, + private route: ActivatedRoute, + private formBuilder: FormBuilder, + private notificationsService: NotificationsService, + private endUserAgreementService: EndUserAgreementService, + private authService: AuthService + ) { + + } + + ngOnInit(): void { + this.itemRequest$ = this.route.data.pipe( + map((data) => data.request as RemoteData), + getFirstCompletedRemoteData(), + redirectOn4xx(this.router, this.authService) + ); + + } + +} diff --git a/src/app/request-copy/request-copy-routing.module.ts b/src/app/request-copy/request-copy-routing.module.ts new file mode 100644 index 0000000000..734a661014 --- /dev/null +++ b/src/app/request-copy/request-copy-routing.module.ts @@ -0,0 +1,27 @@ +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { EndUserAgreementCookieGuard } from '../core/end-user-agreement/end-user-agreement-cookie.guard'; +import { RequestCopyResolver } from './request-copy.resolver'; +import { GrantDenyRequestCopyComponent } from './grant-deny-request-copy/grant-deny-request-copy.component'; + +@NgModule({ + imports: [ + RouterModule.forChild([ + { + path: ':token', + component: GrantDenyRequestCopyComponent, + resolve: {request: RequestCopyResolver}, + canActivate: [EndUserAgreementCookieGuard] + } + ]) + ], + providers: [ + RequestCopyResolver, + GrantDenyRequestCopyComponent + ] +}) +/** + * Module related to the navigation to components used to register a new user + */ +export class RegisterPageRoutingModule { +} diff --git a/src/app/request-copy/request-copy.module.ts b/src/app/request-copy/request-copy.module.ts new file mode 100644 index 0000000000..eef0ee4313 --- /dev/null +++ b/src/app/request-copy/request-copy.module.ts @@ -0,0 +1,22 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { SharedModule } from '../shared/shared.module'; +import { GrantDenyRequestCopyComponent } from './grant-deny-request-copy/grant-deny-request-copy.component'; + +@NgModule({ + imports: [ + CommonModule, + SharedModule, + ], + declarations: [ + GrantDenyRequestCopyComponent + ], + providers: [] +}) + +/** + * Module related to components used to register a new user + */ +export class RequestCopyModule { + +} diff --git a/src/app/request-copy/request-copy.resolver.ts b/src/app/request-copy/request-copy.resolver.ts new file mode 100644 index 0000000000..0086d51e57 --- /dev/null +++ b/src/app/request-copy/request-copy.resolver.ts @@ -0,0 +1,19 @@ +import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'; +import { RemoteData } from '../core/data/remote-data'; +import { ItemRequest } from '../core/shared/item-request.model'; +import { Observable } from 'rxjs/internal/Observable'; +import { ItemRequestDataService } from '../core/data/item-request-data.service'; + +export class RequestCopyResolver implements Resolve> { + + constructor( + private itemRequestDataService: ItemRequestDataService, + ) { + } + + resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable> | Promise> | RemoteData { + // TODO add method after knowing whether they will change the rest object to be compatible with normal dataservice. + return undefined; + } + +} \ No newline at end of file