mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
CST-5253] Finished functionalities
This commit is contained in:
@@ -70,6 +70,12 @@ export function getWorkflowItemModuleRoute() {
|
|||||||
return `/${WORKFLOW_ITEM_MODULE_PATH}`;
|
return `/${WORKFLOW_ITEM_MODULE_PATH}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const WORKSPACE_ITEM_MODULE_PATH = 'workspaceitems';
|
||||||
|
|
||||||
|
export function getWorkspaceItemModuleRoute() {
|
||||||
|
return `/${WORKSPACE_ITEM_MODULE_PATH}`;
|
||||||
|
}
|
||||||
|
|
||||||
export function getDSORoute(dso: DSpaceObject): string {
|
export function getDSORoute(dso: DSpaceObject): string {
|
||||||
if (hasValue(dso)) {
|
if (hasValue(dso)) {
|
||||||
switch ((dso as any).type) {
|
switch ((dso as any).type) {
|
||||||
|
@@ -0,0 +1,43 @@
|
|||||||
|
import { DSpaceObject } from './../../shared/dspace-object.model';
|
||||||
|
import { followLink } from './../../../shared/utils/follow-link-config.model';
|
||||||
|
import { ChildHALResource } from './../../shared/child-hal-resource.model';
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';
|
||||||
|
import { Observable } from 'rxjs';
|
||||||
|
import { Store } from '@ngrx/store';
|
||||||
|
import { switchMap } from 'rxjs/operators';
|
||||||
|
import { DataService } from '../../data/data.service';
|
||||||
|
import { RemoteData } from '../../data/remote-data';
|
||||||
|
import { getFirstCompletedRemoteData } from '../../shared/operators';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class represents a resolver that requests a specific item before the route is activated
|
||||||
|
*/
|
||||||
|
@Injectable()
|
||||||
|
export class SubmissionObjectResolver<T> implements Resolve<RemoteData<T>> {
|
||||||
|
constructor(
|
||||||
|
protected dataService: DataService<any>,
|
||||||
|
protected store: Store<any>
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method for resolving an item based on the parameters in the current route
|
||||||
|
* @param {ActivatedRouteSnapshot} route The current ActivatedRouteSnapshot
|
||||||
|
* @param {RouterStateSnapshot} state The current RouterStateSnapshot
|
||||||
|
* @returns Observable<<RemoteData<Item>> Emits the found item based on the parameters in the current route,
|
||||||
|
* or an error if something went wrong
|
||||||
|
*/
|
||||||
|
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<RemoteData<T>> {
|
||||||
|
const itemRD$ = this.dataService.findById(route.params.id,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
followLink('item'),
|
||||||
|
).pipe(
|
||||||
|
getFirstCompletedRemoteData(),
|
||||||
|
switchMap((wfiRD: RemoteData<any>) => wfiRD.payload.item as Observable<RemoteData<T>>),
|
||||||
|
getFirstCompletedRemoteData()
|
||||||
|
);
|
||||||
|
return itemRD$;
|
||||||
|
}
|
||||||
|
}
|
@@ -1,22 +1,18 @@
|
|||||||
<ng-container *ngVar="(actionRD$ | async)?.payload as workflowAction">
|
<ng-container *ngVar="(actionRD$ | async)?.payload as workflowAction">
|
||||||
<div class="mt-1 mb-3 space-children-mr">
|
<div class="mt-1 mb-3 space-children-mr">
|
||||||
<ds-claimed-task-actions-loader *ngFor="let option of workflowAction?.options"
|
<ds-claimed-task-actions-loader *ngFor="let option of workflowAction?.options" [option]="option" [object]="object"
|
||||||
[option]="option"
|
(processCompleted)="this.processCompleted.emit($event)">
|
||||||
[object]="object"
|
|
||||||
(processCompleted)="this.processCompleted.emit($event)">
|
|
||||||
</ds-claimed-task-actions-loader>
|
</ds-claimed-task-actions-loader>
|
||||||
|
|
||||||
<ng-container *ngIf="hasViewAction(workflowAction)">
|
<!-- <ng-container *ngIf="hasViewAction(workflowAction)"> -->
|
||||||
<button class="btn btn-primary workflow-view"
|
<button class="btn btn-primary workflow-view" ngbTooltip="{{'submission.workflow.generic.view-help' | translate}}"
|
||||||
ngbTooltip="{{'submission.workflow.generic.view-help' | translate}}"
|
[routerLink]="[getWorkflowItemViewRoute((workflowitem$ | async))]">
|
||||||
[routerLink]="[getWorkflowItemViewRoute((workflowitem$ | async))]">
|
<i class="fa fa-info-circle"></i> {{"submission.workflow.generic.view" | translate}}
|
||||||
<i class="fa fa-info-circle"></i> {{"submission.workflow.generic.view" | translate}}
|
</button>
|
||||||
</button>
|
<!-- </ng-container> -->
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<ds-claimed-task-actions-loader [option]="returnToPoolOption"
|
<ds-claimed-task-actions-loader [option]="returnToPoolOption" [object]="object"
|
||||||
[object]="object"
|
(processCompleted)="this.processCompleted.emit($event)">
|
||||||
(processCompleted)="this.processCompleted.emit($event)">
|
|
||||||
</ds-claimed-task-actions-loader>
|
</ds-claimed-task-actions-loader>
|
||||||
</div>
|
</div>
|
||||||
</ng-container>
|
</ng-container>
|
@@ -1,8 +1,13 @@
|
|||||||
<button type="button"
|
<button type="button" class="btn btn-info mt-1 mb-3"
|
||||||
class="btn btn-info mt-1 mb-3"
|
ngbTooltip="{{'submission.workflow.tasks.pool.claim_help' | translate}}" [disabled]="(processing$ | async)"
|
||||||
ngbTooltip="{{'submission.workflow.tasks.pool.claim_help' | translate}}"
|
(click)="claim()">
|
||||||
[disabled]="(processing$ | async)"
|
<span *ngIf="(processing$ | async)"><i class='fas fa-circle-notch fa-spin'></i>
|
||||||
(click)="claim()">
|
{{'submission.workflow.tasks.generic.processing' | translate}}</span>
|
||||||
<span *ngIf="(processing$ | async)"><i class='fas fa-circle-notch fa-spin'></i> {{'submission.workflow.tasks.generic.processing' | translate}}</span>
|
<span *ngIf="!(processing$ | async)"><i class="fas fa-hand-paper"></i> {{'submission.workflow.tasks.pool.claim' |
|
||||||
<span *ngIf="!(processing$ | async)"><i class="fas fa-hand-paper"></i> {{'submission.workflow.tasks.pool.claim' | translate}}</span>
|
translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
|
<button class="btn btn-primary workflow-view ml-1 mt-1 mb-3"
|
||||||
|
ngbTooltip="{{'submission.workflow.generic.view-help' | translate}}"
|
||||||
|
[routerLink]="[getWorkflowItemViewRoute((workflowitem$ | async))]">
|
||||||
|
<i class="fa fa-info-circle"></i> {{"submission.workflow.generic.view" | translate}}
|
||||||
|
</button>
|
@@ -2,7 +2,7 @@ import { Component, Injector, Input, OnDestroy } from '@angular/core';
|
|||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
|
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import {filter, map, switchMap, take} from 'rxjs/operators';
|
import { filter, map, switchMap, take } from 'rxjs/operators';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|
||||||
import { WorkflowItem } from '../../../core/submission/models/workflowitem.model';
|
import { WorkflowItem } from '../../../core/submission/models/workflowitem.model';
|
||||||
@@ -19,6 +19,7 @@ import { Item } from '../../../core/shared/item.model';
|
|||||||
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
|
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
|
||||||
import { MyDSpaceReloadableActionsComponent } from '../mydspace-reloadable-actions';
|
import { MyDSpaceReloadableActionsComponent } from '../mydspace-reloadable-actions';
|
||||||
import { ProcessTaskResponse } from '../../../core/tasks/models/process-task-response';
|
import { ProcessTaskResponse } from '../../../core/tasks/models/process-task-response';
|
||||||
|
import { getWorkflowItemViewRoute } from '../../../workflowitems-edit-page/workflowitems-edit-page-routing-paths';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This component represents mydspace actions related to PoolTask object.
|
* This component represents mydspace actions related to PoolTask object.
|
||||||
@@ -58,12 +59,12 @@ export class PoolTaskActionsComponent extends MyDSpaceReloadableActionsComponent
|
|||||||
* @param {RequestService} requestService
|
* @param {RequestService} requestService
|
||||||
*/
|
*/
|
||||||
constructor(protected injector: Injector,
|
constructor(protected injector: Injector,
|
||||||
protected router: Router,
|
protected router: Router,
|
||||||
protected notificationsService: NotificationsService,
|
protected notificationsService: NotificationsService,
|
||||||
protected claimedTaskService: ClaimedTaskDataService,
|
protected claimedTaskService: ClaimedTaskDataService,
|
||||||
protected translate: TranslateService,
|
protected translate: TranslateService,
|
||||||
protected searchService: SearchService,
|
protected searchService: SearchService,
|
||||||
protected requestService: RequestService) {
|
protected requestService: RequestService) {
|
||||||
super(PoolTask.type, injector, router, notificationsService, translate, searchService, requestService);
|
super(PoolTask.type, injector, router, notificationsService, translate, searchService, requestService);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,7 +92,7 @@ export class PoolTaskActionsComponent extends MyDSpaceReloadableActionsComponent
|
|||||||
return this.objectDataService.getPoolTaskEndpointById(this.object.id)
|
return this.objectDataService.getPoolTaskEndpointById(this.object.id)
|
||||||
.pipe(switchMap((poolTaskHref) => {
|
.pipe(switchMap((poolTaskHref) => {
|
||||||
return this.claimedTaskService.claimTask(this.object.id, poolTaskHref);
|
return this.claimedTaskService.claimTask(this.object.id, poolTaskHref);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
reloadObjectExecution(): Observable<RemoteData<DSpaceObject> | DSpaceObject> {
|
reloadObjectExecution(): Observable<RemoteData<DSpaceObject> | DSpaceObject> {
|
||||||
@@ -107,12 +108,19 @@ export class PoolTaskActionsComponent extends MyDSpaceReloadableActionsComponent
|
|||||||
switchMap((workflowItem: WorkflowItem) => workflowItem.item.pipe(getFirstSucceededRemoteDataPayload())
|
switchMap((workflowItem: WorkflowItem) => workflowItem.item.pipe(getFirstSucceededRemoteDataPayload())
|
||||||
))
|
))
|
||||||
.subscribe((item: Item) => {
|
.subscribe((item: Item) => {
|
||||||
this.itemUuid = item.uuid;
|
this.itemUuid = item.uuid;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy() {
|
ngOnDestroy() {
|
||||||
this.subs.forEach((sub) => sub.unsubscribe());
|
this.subs.forEach((sub) => sub.unsubscribe());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the workflowitem view route.
|
||||||
|
*/
|
||||||
|
getWorkflowItemViewRoute(workflowitem: WorkflowItem): string {
|
||||||
|
return getWorkflowItemViewRoute(workflowitem?.id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,22 +1,28 @@
|
|||||||
<div class="space-children-mr">
|
<div class="space-children-mr">
|
||||||
<a class="btn btn-primary mt-1 mb-3"
|
|
||||||
id="{{'edit_' + object.id}}"
|
<button class="btn btn-primary workflow-view mt-1 mb-3"
|
||||||
ngbTooltip="{{'submission.workflow.generic.edit-help' | translate}}"
|
ngbTooltip="{{'submission.workspace.generic.view-help' | translate}}"
|
||||||
[routerLink]="['/workspaceitems/' + object.id + '/edit']"
|
[routerLink]="[getWorkspaceItemViewRoute(object)]">
|
||||||
role="button">
|
<i class="fa fa-info-circle"></i> {{"submission.workspace.generic.view" | translate}}
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<a class="btn btn-primary mt-1 mb-3" id="{{'edit_' + object.id}}"
|
||||||
|
ngbTooltip="{{'submission.workflow.generic.edit-help' | translate}}"
|
||||||
|
[routerLink]="['/workspaceitems/' + object.id + '/edit']" role="button">
|
||||||
<i class="fa fa-edit"></i> {{'submission.workflow.generic.edit' | translate}}
|
<i class="fa fa-edit"></i> {{'submission.workflow.generic.edit' | translate}}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<button type="button"
|
<button type="button" id="{{'delete_' + object.id}}" class="btn btn-danger mt-1 mb-3"
|
||||||
id="{{'delete_' + object.id}}"
|
ngbTooltip="{{'submission.workflow.generic.delete-help' | translate}}"
|
||||||
class="btn btn-danger mt-1 mb-3"
|
(click)="$event.preventDefault();confirmDiscard(content)">
|
||||||
ngbTooltip="{{'submission.workflow.generic.delete-help' | translate}}"
|
<span *ngIf="(processingDelete$ | async)"><i class='fas fa-circle-notch fa-spin'></i>
|
||||||
(click)="$event.preventDefault();confirmDiscard(content)">
|
{{'submission.workflow.tasks.generic.processing' | translate}}</span>
|
||||||
<span *ngIf="(processingDelete$ | async)"><i class='fas fa-circle-notch fa-spin'></i> {{'submission.workflow.tasks.generic.processing' | translate}}</span>
|
<span *ngIf="!(processingDelete$ | async)"><i class="fa fa-trash"></i> {{'submission.workflow.generic.delete' |
|
||||||
<span *ngIf="!(processingDelete$ | async)"><i class="fa fa-trash"></i> {{'submission.workflow.generic.delete' | translate}}</span>
|
translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<ng-template #content let-c="close" let-d="dismiss">
|
<ng-template #content let-c="close" let-d="dismiss">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title text-danger">{{'submission.general.discard.confirm.title' | translate}}</h4>
|
<h4 class="modal-title text-danger">{{'submission.general.discard.confirm.title' | translate}}</h4>
|
||||||
@@ -28,7 +34,9 @@
|
|||||||
<p>{{'submission.general.discard.confirm.info' | translate}}</p>
|
<p>{{'submission.general.discard.confirm.info' | translate}}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" id="delete_cancel" class="btn btn-secondary" (click)="c('cancel')">{{'submission.general.discard.confirm.cancel' | translate}}</button>
|
<button type="button" id="delete_cancel" class="btn btn-secondary"
|
||||||
<button type="button" id="delete_confirm"class="btn btn-danger" (click)="c('ok')">{{'submission.general.discard.confirm.submit' | translate}}</button>
|
(click)="c('cancel')">{{'submission.general.discard.confirm.cancel' | translate}}</button>
|
||||||
|
<button type="button" id="delete_confirm" class="btn btn-danger"
|
||||||
|
(click)="c('ok')">{{'submission.general.discard.confirm.submit' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
@@ -14,6 +14,7 @@ import { SearchService } from '../../../core/shared/search/search.service';
|
|||||||
import { getFirstCompletedRemoteData } from '../../../core/shared/operators';
|
import { getFirstCompletedRemoteData } from '../../../core/shared/operators';
|
||||||
import { RemoteData } from '../../../core/data/remote-data';
|
import { RemoteData } from '../../../core/data/remote-data';
|
||||||
import { NoContent } from '../../../core/shared/NoContent.model';
|
import { NoContent } from '../../../core/shared/NoContent.model';
|
||||||
|
import { getWorkspaceItemViewRoute } from '../../../workspaceitems-edit-page/workspaceitems-edit-page-routing-paths';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This component represents actions related to WorkspaceItem object.
|
* This component represents actions related to WorkspaceItem object.
|
||||||
@@ -48,12 +49,12 @@ export class WorkspaceitemActionsComponent extends MyDSpaceActionsComponent<Work
|
|||||||
* @param {RequestService} requestService
|
* @param {RequestService} requestService
|
||||||
*/
|
*/
|
||||||
constructor(protected injector: Injector,
|
constructor(protected injector: Injector,
|
||||||
protected router: Router,
|
protected router: Router,
|
||||||
protected modalService: NgbModal,
|
protected modalService: NgbModal,
|
||||||
protected notificationsService: NotificationsService,
|
protected notificationsService: NotificationsService,
|
||||||
protected translate: TranslateService,
|
protected translate: TranslateService,
|
||||||
protected searchService: SearchService,
|
protected searchService: SearchService,
|
||||||
protected requestService: RequestService) {
|
protected requestService: RequestService) {
|
||||||
super(WorkspaceItem.type, injector, router, notificationsService, translate, searchService, requestService);
|
super(WorkspaceItem.type, injector, router, notificationsService, translate, searchService, requestService);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,4 +86,11 @@ export class WorkspaceitemActionsComponent extends MyDSpaceActionsComponent<Work
|
|||||||
this.object = object;
|
this.object = object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the workflowitem view route.
|
||||||
|
*/
|
||||||
|
getWorkspaceItemViewRoute(workspaceItem: WorkspaceItem): string {
|
||||||
|
return getWorkspaceItemViewRoute(workspaceItem?.id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,43 +1,21 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';
|
import { Resolve } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
|
||||||
import { RemoteData } from '../core/data/remote-data';
|
import { RemoteData } from '../core/data/remote-data';
|
||||||
import { Item } from '../core/shared/item.model';
|
import { Item } from '../core/shared/item.model';
|
||||||
import { followLink } from '../shared/utils/follow-link-config.model';
|
|
||||||
import { getFirstCompletedRemoteData } from '../core/shared/operators';
|
|
||||||
import { Store } from '@ngrx/store';
|
import { Store } from '@ngrx/store';
|
||||||
import { WorkflowItemDataService } from '../core/submission/workflowitem-data.service';
|
import { WorkflowItemDataService } from '../core/submission/workflowitem-data.service';
|
||||||
import { WorkflowItem } from '../core/submission/models/workflowitem.model';
|
import { SubmissionObjectResolver } from '../core/submission/resolver/submission-object.resolver';
|
||||||
import { switchMap } from 'rxjs/operators';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class represents a resolver that requests a specific item before the route is activated
|
* This class represents a resolver that requests a specific item before the route is activated
|
||||||
*/
|
*/
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ItemFromWorkflowResolver implements Resolve<RemoteData<Item>> {
|
export class ItemFromWorkflowResolver extends SubmissionObjectResolver<Item> implements Resolve<RemoteData<Item>> {
|
||||||
constructor(
|
constructor(
|
||||||
private workflowItemService: WorkflowItemDataService,
|
private workflowItemService: WorkflowItemDataService,
|
||||||
protected store: Store<any>
|
protected store: Store<any>
|
||||||
) {
|
) {
|
||||||
|
super(workflowItemService, store);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Method for resolving an item based on the parameters in the current route
|
|
||||||
* @param {ActivatedRouteSnapshot} route The current ActivatedRouteSnapshot
|
|
||||||
* @param {RouterStateSnapshot} state The current RouterStateSnapshot
|
|
||||||
* @returns Observable<<RemoteData<Item>> Emits the found item based on the parameters in the current route,
|
|
||||||
* or an error if something went wrong
|
|
||||||
*/
|
|
||||||
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<RemoteData<Item>> {
|
|
||||||
const itemRD$ = this.workflowItemService.findById(route.params.id,
|
|
||||||
true,
|
|
||||||
false,
|
|
||||||
followLink('item'),
|
|
||||||
).pipe(
|
|
||||||
getFirstCompletedRemoteData(),
|
|
||||||
switchMap((wfiRD: RemoteData<WorkflowItem>) => wfiRD.payload.item as Observable<RemoteData<Item>>),
|
|
||||||
getFirstCompletedRemoteData()
|
|
||||||
);
|
|
||||||
return itemRD$;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,21 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { Resolve } from '@angular/router';
|
||||||
|
import { RemoteData } from '../core/data/remote-data';
|
||||||
|
import { Item } from '../core/shared/item.model';
|
||||||
|
import { Store } from '@ngrx/store';
|
||||||
|
import { SubmissionObjectResolver } from '../core/submission/resolver/submission-object.resolver';
|
||||||
|
import { WorkspaceitemDataService } from '../core/submission/workspaceitem-data.service';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class represents a resolver that requests a specific item before the route is activated
|
||||||
|
*/
|
||||||
|
@Injectable()
|
||||||
|
export class ItemFromWorkspaceResolver extends SubmissionObjectResolver<Item> implements Resolve<RemoteData<Item>> {
|
||||||
|
constructor(
|
||||||
|
private workspaceItemService: WorkspaceitemDataService,
|
||||||
|
protected store: Store<any>
|
||||||
|
) {
|
||||||
|
super(workspaceItemService, store);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -0,0 +1,8 @@
|
|||||||
|
import { getWorkspaceItemModuleRoute } from '../app-routing-paths';
|
||||||
|
import { URLCombiner } from '../core/url-combiner/url-combiner';
|
||||||
|
|
||||||
|
export function getWorkspaceItemViewRoute(wfiId: string) {
|
||||||
|
return new URLCombiner(getWorkspaceItemModuleRoute(), wfiId, WORKSPACE_ITEM_VIEW_PATH).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
export const WORKSPACE_ITEM_VIEW_PATH = 'view';
|
@@ -4,6 +4,8 @@ import { RouterModule } from '@angular/router';
|
|||||||
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
||||||
import { ThemedSubmissionEditComponent } from '../submission/edit/themed-submission-edit.component';
|
import { ThemedSubmissionEditComponent } from '../submission/edit/themed-submission-edit.component';
|
||||||
import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
|
import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
|
||||||
|
import { ThemedFullItemPageComponent } from '../item-page/full/themed-full-item-page.component';
|
||||||
|
import { ItemFromWorkspaceResolver } from './item-from-workspace.resolver';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -17,7 +19,17 @@ import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.reso
|
|||||||
breadcrumb: I18nBreadcrumbResolver
|
breadcrumb: I18nBreadcrumbResolver
|
||||||
},
|
},
|
||||||
data: { title: 'submission.edit.title', breadcrumbKey: 'submission.edit' }
|
data: { title: 'submission.edit.title', breadcrumbKey: 'submission.edit' }
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
canActivate: [AuthenticatedGuard],
|
||||||
|
path: ':id/view',
|
||||||
|
component: ThemedFullItemPageComponent,
|
||||||
|
resolve: {
|
||||||
|
dso: ItemFromWorkspaceResolver,
|
||||||
|
breadcrumb: I18nBreadcrumbResolver
|
||||||
|
},
|
||||||
|
data: { title: 'workspace-item.view.title', breadcrumbKey: 'workspace-item.view' }
|
||||||
|
},
|
||||||
])
|
])
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
@@ -3,6 +3,7 @@ import { NgModule } from '@angular/core';
|
|||||||
import { SharedModule } from '../shared/shared.module';
|
import { SharedModule } from '../shared/shared.module';
|
||||||
import { WorkspaceitemsEditPageRoutingModule } from './workspaceitems-edit-page-routing.module';
|
import { WorkspaceitemsEditPageRoutingModule } from './workspaceitems-edit-page-routing.module';
|
||||||
import { SubmissionModule } from '../submission/submission.module';
|
import { SubmissionModule } from '../submission/submission.module';
|
||||||
|
import { ItemFromWorkspaceResolver } from './item-from-workspace.resolver';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -11,7 +12,8 @@ import { SubmissionModule } from '../submission/submission.module';
|
|||||||
SharedModule,
|
SharedModule,
|
||||||
SubmissionModule,
|
SubmissionModule,
|
||||||
],
|
],
|
||||||
declarations: []
|
declarations: [],
|
||||||
|
providers: [ItemFromWorkspaceResolver]
|
||||||
})
|
})
|
||||||
/**
|
/**
|
||||||
* This module handles all modules that need to access the workspaceitems edit page.
|
* This module handles all modules that need to access the workspaceitems edit page.
|
||||||
|
@@ -4054,6 +4054,10 @@
|
|||||||
"submission.workflow.tasks.pool.show-detail": "Show detail",
|
"submission.workflow.tasks.pool.show-detail": "Show detail",
|
||||||
|
|
||||||
|
|
||||||
|
"submission.workspace.generic.view": "View",
|
||||||
|
|
||||||
|
"submission.workspace.generic.view-help": "Select this option to view the item's metadata.",
|
||||||
|
|
||||||
|
|
||||||
"thumbnail.default.alt": "Thumbnail Image",
|
"thumbnail.default.alt": "Thumbnail Image",
|
||||||
|
|
||||||
@@ -4160,6 +4164,9 @@
|
|||||||
|
|
||||||
"workflow-item.view.breadcrumbs": "Workflow View",
|
"workflow-item.view.breadcrumbs": "Workflow View",
|
||||||
|
|
||||||
|
"workspace-item.view.breadcrumbs": "Workspace View",
|
||||||
|
|
||||||
|
"workspace-item.view.title": "Workspace View",
|
||||||
|
|
||||||
"idle-modal.header": "Session will expire soon",
|
"idle-modal.header": "Session will expire soon",
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user