From bd152dc0748a7a65a861ba043e8ac3cbf01a362d Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem Date: Thu, 2 Feb 2023 17:12:56 +0100 Subject: [PATCH 1/6] 99053: Fixed previous page not always returning the correct value - Fixed previousPage not correctly redirecting to urls with queryParams - Fixed previousPage returning to wrong page because of ReviewersListComponent --- ...vanced-workflow-action-select-reviewer.component.ts | 9 +++++++++ .../workflow-item-action-page.component.ts | 10 ++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.ts b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.ts index 68e67ee95e..e1eada0c48 100644 --- a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.ts +++ b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.ts @@ -19,6 +19,7 @@ import { NotificationsService } from '../../../shared/notifications/notification import { TranslateService } from '@ngx-translate/core'; import { WorkflowActionDataService } from '../../../core/data/workflow-action-data.service'; import { ClaimedTaskDataService } from '../../../core/tasks/claimed-task-data.service'; +import { ReviewersListComponent } from './reviewers-list/reviewers-list.component'; export const ADVANCED_WORKFLOW_TASK_OPTION_SELECT_REVIEWER = 'submit_select_reviewer'; export const ADVANCED_WORKFLOW_ACTION_SELECT_REVIEWER = 'selectrevieweraction'; @@ -130,4 +131,12 @@ export class AdvancedWorkflowActionSelectReviewerComponent extends AdvancedWorkf }; } + /** + * Hardcoded the previous page url because the {@link ReviewersListComponent} changes the previous route when + * switching between the different pages + */ + previousPage(): void { + void this.router.navigate(['/mydspace'], { queryParams: { configuration: 'workflow' } }); + } + } diff --git a/src/app/workflowitems-edit-page/workflow-item-action-page.component.ts b/src/app/workflowitems-edit-page/workflow-item-action-page.component.ts index 7f09f3a3d2..f1740c27a4 100644 --- a/src/app/workflowitems-edit-page/workflow-item-action-page.component.ts +++ b/src/app/workflowitems-edit-page/workflow-item-action-page.component.ts @@ -4,7 +4,7 @@ import { map, switchMap, take } from 'rxjs/operators'; import { TranslateService } from '@ngx-translate/core'; import { WorkflowItem } from '../core/submission/models/workflowitem.model'; import { Item } from '../core/shared/item.model'; -import { ActivatedRoute, Data, Router } from '@angular/router'; +import { ActivatedRoute, Data, Router, Params } from '@angular/router'; import { WorkflowItemDataService } from '../core/submission/workflowitem-data.service'; import { RouteService } from '../core/services/route.service'; import { NotificationsService } from '../shared/notifications/notifications.service'; @@ -72,7 +72,13 @@ export abstract class WorkflowItemActionPageComponent implements OnInit { if (isEmpty(url)) { url = '/mydspace'; } - this.router.navigateByUrl(url); + const params: Params = {}; + if (url.split('?').length > 1) { + for (const param of url.split('?')[1].split('&')) { + params[param.split('=')[0]] = param.split('=')[1]; + } + } + void this.router.navigate([url.split('?')[0]], { queryParams: params }); } ); } From 581afbbbb6eac8d88f7a6769bab9a3bc580b411f Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem Date: Thu, 2 Feb 2023 17:13:56 +0100 Subject: [PATCH 2/6] 99053: Hide return to pool button for second step of SelectSingleReviewer --- .../claimed-task/claimed-task-actions.component.html | 5 ----- .../claimed-task/claimed-task-actions.component.ts | 6 ------ 2 files changed, 11 deletions(-) diff --git a/src/app/shared/mydspace-actions/claimed-task/claimed-task-actions.component.html b/src/app/shared/mydspace-actions/claimed-task/claimed-task-actions.component.html index 7454a80873..7dbb4454c3 100644 --- a/src/app/shared/mydspace-actions/claimed-task/claimed-task-actions.component.html +++ b/src/app/shared/mydspace-actions/claimed-task/claimed-task-actions.component.html @@ -13,10 +13,5 @@ {{"submission.workflow.generic.view" | translate}} - - - diff --git a/src/app/shared/mydspace-actions/claimed-task/claimed-task-actions.component.ts b/src/app/shared/mydspace-actions/claimed-task/claimed-task-actions.component.ts index 65ddd76bc4..8f4d109ba1 100644 --- a/src/app/shared/mydspace-actions/claimed-task/claimed-task-actions.component.ts +++ b/src/app/shared/mydspace-actions/claimed-task/claimed-task-actions.component.ts @@ -44,12 +44,6 @@ export class ClaimedTaskActionsComponent extends MyDSpaceActionsComponent>; - /** - * The option used to render the "return to pool" component - * Every claimed task contains this option - */ - public returnToPoolOption = WORKFLOW_TASK_OPTION_RETURN_TO_POOL; - /** * Initialize instance variables * From 34e970827e362d6eb0cbb4e07ad55e45742169c9 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem Date: Mon, 6 Feb 2023 18:20:39 +0100 Subject: [PATCH 3/6] 99053: Invalidate cache by default when performing the WorkflowItemActionPageComponent action --- src/app/shared/testing/request-service.stub.ts | 12 ++++++++++++ ...advanced-workflow-action-rating.component.spec.ts | 3 +++ ...workflow-action-select-reviewer.component.spec.ts | 3 +++ ...nced-workflow-action-select-reviewer.component.ts | 4 +++- .../advanced-workflow-action.component.spec.ts | 3 +++ .../advanced-workflow-action.component.ts | 4 +++- .../workflow-item-action-page.component.spec.ts | 9 +++++++-- .../workflow-item-action-page.component.ts | 11 +++++++---- .../workflow-item-delete.component.ts | 3 +-- .../workflow-item-send-back.component.ts | 3 +-- 10 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 src/app/shared/testing/request-service.stub.ts diff --git a/src/app/shared/testing/request-service.stub.ts b/src/app/shared/testing/request-service.stub.ts new file mode 100644 index 0000000000..9add8898df --- /dev/null +++ b/src/app/shared/testing/request-service.stub.ts @@ -0,0 +1,12 @@ +import { Observable, of as observableOf } from 'rxjs'; + +/** + * Stub service for {@link RequestService}. + */ +export class RequestServiceStub { + + removeByHrefSubstring(_href: string): Observable { + return observableOf(true); + } + +} diff --git a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-rating/advanced-workflow-action-rating.component.spec.ts b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-rating/advanced-workflow-action-rating.component.spec.ts index 4abbe1a0c1..c6a7dc2c07 100644 --- a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-rating/advanced-workflow-action-rating.component.spec.ts +++ b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-rating/advanced-workflow-action-rating.component.spec.ts @@ -26,6 +26,8 @@ import { Item } from '../../../core/shared/item.model'; import { NO_ERRORS_SCHEMA } from '@angular/core'; import { ProcessTaskResponse } from '../../../core/tasks/models/process-task-response'; import { RatingAdvancedWorkflowInfo } from '../../../core/tasks/models/rating-advanced-workflow-info.model'; +import { RequestService } from '../../../core/data/request.service'; +import { RequestServiceStub } from '../../../shared/testing/request-service.stub'; const claimedTaskId = '2'; const workflowId = '1'; @@ -80,6 +82,7 @@ describe('AdvancedWorkflowActionRatingComponent', () => { { provide: Router, useValue: new RouterStub() }, { provide: WorkflowActionDataService, useValue: workflowActionDataService }, { provide: WorkflowItemDataService, useValue: workflowItemDataService }, + { provide: RequestService, useClass: RequestServiceStub }, ], schemas: [NO_ERRORS_SCHEMA], }).compileComponents(); diff --git a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.spec.ts b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.spec.ts index 855bde79a7..2884dbcc8e 100644 --- a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.spec.ts +++ b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.spec.ts @@ -23,6 +23,8 @@ import { Item } from '../../../core/shared/item.model'; import { EPersonMock, EPersonMock2 } from '../../../shared/testing/eperson.mock'; import { ProcessTaskResponse } from '../../../core/tasks/models/process-task-response'; import { NO_ERRORS_SCHEMA } from '@angular/core'; +import { RequestService } from '../../../core/data/request.service'; +import { RequestServiceStub } from '../../../shared/testing/request-service.stub'; const claimedTaskId = '2'; const workflowId = '1'; @@ -73,6 +75,7 @@ describe('AdvancedWorkflowActionSelectReviewerComponent', () => { { provide: RouteService, useValue: routeServiceStub }, { provide: WorkflowActionDataService, useValue: workflowActionDataService }, { provide: WorkflowItemDataService, useValue: workflowItemDataService }, + { provide: RequestService, useClass: RequestServiceStub }, ], schemas: [NO_ERRORS_SCHEMA], }).compileComponents(); diff --git a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.ts b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.ts index e1eada0c48..b9f90e1736 100644 --- a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.ts +++ b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.ts @@ -20,6 +20,7 @@ import { TranslateService } from '@ngx-translate/core'; import { WorkflowActionDataService } from '../../../core/data/workflow-action-data.service'; import { ClaimedTaskDataService } from '../../../core/tasks/claimed-task-data.service'; import { ReviewersListComponent } from './reviewers-list/reviewers-list.component'; +import { RequestService } from 'src/app/core/data/request.service'; export const ADVANCED_WORKFLOW_TASK_OPTION_SELECT_REVIEWER = 'submit_select_reviewer'; export const ADVANCED_WORKFLOW_ACTION_SELECT_REVIEWER = 'selectrevieweraction'; @@ -60,8 +61,9 @@ export class AdvancedWorkflowActionSelectReviewerComponent extends AdvancedWorkf protected translationService: TranslateService, protected workflowActionService: WorkflowActionDataService, protected claimedTaskDataService: ClaimedTaskDataService, + protected requestService: RequestService, ) { - super(route, workflowItemService, router, routeService, notificationsService, translationService, workflowActionService, claimedTaskDataService); + super(route, workflowItemService, router, routeService, notificationsService, translationService, workflowActionService, claimedTaskDataService, requestService); } ngOnDestroy(): void { diff --git a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.spec.ts b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.spec.ts index f0c6882617..f57adcb05f 100644 --- a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.spec.ts +++ b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.spec.ts @@ -18,6 +18,8 @@ import { TranslateModule } from '@ngx-translate/core'; import { WorkflowActionDataServiceStub } from '../../../shared/testing/workflow-action-data-service.stub'; import { ProcessTaskResponse } from '../../../core/tasks/models/process-task-response'; import { WorkflowItemDataServiceStub } from '../../../shared/testing/workflow-item-data-service.stub'; +import { RequestService } from '../../../core/data/request.service'; +import { RequestServiceStub } from '../../../shared/testing/request-service.stub'; const workflowId = '1'; @@ -65,6 +67,7 @@ describe('AdvancedWorkflowActionComponent', () => { { provide: RouteService, useValue: routeServiceStub }, { provide: WorkflowActionDataService, useValue: workflowActionDataService }, { provide: WorkflowItemDataService, useValue: workflowItemDataService }, + { provide: RequestService, useClass: RequestServiceStub }, ], }).compileComponents(); }); diff --git a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.ts b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.ts index 982e5f8eac..61bc60cdbd 100644 --- a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.ts +++ b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.ts @@ -12,6 +12,7 @@ import { getFirstSucceededRemoteDataPayload } from '../../../core/shared/operato import { ClaimedTaskDataService } from '../../../core/tasks/claimed-task-data.service'; import { map } from 'rxjs/operators'; import { ProcessTaskResponse } from '../../../core/tasks/models/process-task-response'; +import { RequestService } from '../../../core/data/request.service'; /** * Abstract component for rendering an advanced claimed task's workflow page @@ -36,8 +37,9 @@ export abstract class AdvancedWorkflowActionComponent extends WorkflowItemAction protected translationService: TranslateService, protected workflowActionService: WorkflowActionDataService, protected claimedTaskDataService: ClaimedTaskDataService, + protected requestService: RequestService, ) { - super(route, workflowItemService, router, routeService, notificationsService, translationService); + super(route, workflowItemService, router, routeService, notificationsService, translationService, requestService); } ngOnInit(): void { diff --git a/src/app/workflowitems-edit-page/workflow-item-action-page.component.spec.ts b/src/app/workflowitems-edit-page/workflow-item-action-page.component.spec.ts index c7b9858836..11f88788dc 100644 --- a/src/app/workflowitems-edit-page/workflow-item-action-page.component.spec.ts +++ b/src/app/workflowitems-edit-page/workflow-item-action-page.component.spec.ts @@ -16,6 +16,8 @@ import { TranslateLoaderMock } from '../shared/mocks/translate-loader.mock'; import { ActivatedRouteStub } from '../shared/testing/active-router.stub'; import { RouterStub } from '../shared/testing/router.stub'; import { NotificationsServiceStub } from '../shared/testing/notifications-service.stub'; +import { RequestService } from '../core/data/request.service'; +import { RequestServiceStub } from '../shared/testing/request-service.stub'; const type = 'testType'; describe('WorkflowItemActionPageComponent', () => { @@ -52,6 +54,7 @@ describe('WorkflowItemActionPageComponent', () => { { provide: RouteService, useValue: {} }, { provide: NotificationsService, useClass: NotificationsServiceStub }, { provide: WorkflowItemDataService, useValue: wfiService }, + { provide: RequestService, useClass: RequestServiceStub }, ], schemas: [NO_ERRORS_SCHEMA] }) @@ -110,8 +113,10 @@ class TestComponent extends WorkflowItemActionPageComponent { protected router: Router, protected routeService: RouteService, protected notificationsService: NotificationsService, - protected translationService: TranslateService) { - super(route, workflowItemService, router, routeService, notificationsService, translationService); + protected translationService: TranslateService, + protected requestService: RequestService, + ) { + super(route, workflowItemService, router, routeService, notificationsService, translationService, requestService); } getType(): string { diff --git a/src/app/workflowitems-edit-page/workflow-item-action-page.component.ts b/src/app/workflowitems-edit-page/workflow-item-action-page.component.ts index f1740c27a4..0f6a222d85 100644 --- a/src/app/workflowitems-edit-page/workflow-item-action-page.component.ts +++ b/src/app/workflowitems-edit-page/workflow-item-action-page.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { Observable } from 'rxjs'; +import { Observable, forkJoin } from 'rxjs'; import { map, switchMap, take } from 'rxjs/operators'; import { TranslateService } from '@ngx-translate/core'; import { WorkflowItem } from '../core/submission/models/workflowitem.model'; @@ -11,6 +11,7 @@ import { NotificationsService } from '../shared/notifications/notifications.serv import { RemoteData } from '../core/data/remote-data'; import { getAllSucceededRemoteData, getRemoteDataPayload } from '../core/shared/operators'; import { isEmpty } from '../shared/empty.util'; +import { RequestService } from '../core/data/request.service'; /** * Abstract component representing a page to perform an action on a workflow item @@ -29,7 +30,9 @@ export abstract class WorkflowItemActionPageComponent implements OnInit { protected router: Router, protected routeService: RouteService, protected notificationsService: NotificationsService, - protected translationService: TranslateService) { + protected translationService: TranslateService, + protected requestService: RequestService, + ) { } /** @@ -45,9 +48,9 @@ export abstract class WorkflowItemActionPageComponent implements OnInit { * Performs the action and shows a notification based on the outcome of the action */ performAction() { - this.wfi$.pipe( + forkJoin([this.wfi$, this.requestService.removeByHrefSubstring('/discover')]).pipe( take(1), - switchMap((wfi: WorkflowItem) => this.sendRequest(wfi.id)) + switchMap(([wfi]) => this.sendRequest(wfi.id)) ).subscribe((successful: boolean) => { if (successful) { const title = this.translationService.get('workflow-item.' + this.type + '.notification.success.title'); diff --git a/src/app/workflowitems-edit-page/workflow-item-delete/workflow-item-delete.component.ts b/src/app/workflowitems-edit-page/workflow-item-delete/workflow-item-delete.component.ts index 451469b5e4..faa2bf543a 100644 --- a/src/app/workflowitems-edit-page/workflow-item-delete/workflow-item-delete.component.ts +++ b/src/app/workflowitems-edit-page/workflow-item-delete/workflow-item-delete.component.ts @@ -27,7 +27,7 @@ export class WorkflowItemDeleteComponent extends WorkflowItemActionPageComponent protected notificationsService: NotificationsService, protected translationService: TranslateService, protected requestService: RequestService) { - super(route, workflowItemService, router, routeService, notificationsService, translationService); + super(route, workflowItemService, router, routeService, notificationsService, translationService, requestService); } /** @@ -42,7 +42,6 @@ export class WorkflowItemDeleteComponent extends WorkflowItemActionPageComponent * @param id The id of the WorkflowItem */ sendRequest(id: string): Observable { - this.requestService.removeByHrefSubstring('/discover'); return this.workflowItemService.delete(id).pipe( getFirstCompletedRemoteData(), map((response: RemoteData) => response.hasSucceeded) diff --git a/src/app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component.ts b/src/app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component.ts index 002e5dcc9a..432b417f43 100644 --- a/src/app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component.ts +++ b/src/app/workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component.ts @@ -23,7 +23,7 @@ export class WorkflowItemSendBackComponent extends WorkflowItemActionPageCompone protected notificationsService: NotificationsService, protected translationService: TranslateService, protected requestService: RequestService) { - super(route, workflowItemService, router, routeService, notificationsService, translationService); + super(route, workflowItemService, router, routeService, notificationsService, translationService, requestService); } /** @@ -38,7 +38,6 @@ export class WorkflowItemSendBackComponent extends WorkflowItemActionPageCompone * @param id The id of the WorkflowItem */ sendRequest(id: string): Observable { - this.requestService.removeByHrefSubstring('/discover'); return this.workflowItemService.sendBack(id); } } From 615c74288efa93b37335045809646a075dd2ecc7 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem Date: Mon, 6 Feb 2023 19:01:45 +0100 Subject: [PATCH 4/6] 99053: Added DeclinedTask search result banner --- .../my-dspace-page/my-dspace-search.module.ts | 2 + ...med-task-actions-decline-task.component.ts | 16 +++ ...aimed-declined-task-search-result.model.ts | 2 +- ...-declined-task-task-search-result.model.ts | 8 ++ .../my-dspace-item-status-type.ts | 1 + ...-search-result-list-element.component.html | 2 +- ...arch-result-list-element.component.spec.ts | 6 +- ...-search-result-list-element.component.html | 2 +- ...rch-result-list-element.component.spec.ts} | 6 +- ...-search-result-list-element.component.html | 10 ++ ...arch-result-list-element.component.spec.ts | 106 ++++++++++++++++++ ...sk-search-result-list-element.component.ts | 66 +++++++++++ src/assets/i18n/en.json5 | 6 + 13 files changed, 228 insertions(+), 5 deletions(-) create mode 100644 src/app/shared/object-collection/shared/claimed-declined-task-task-search-result.model.ts rename src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/{claimed-declided-search-result-list-element.component.spec.ts => claimed-declined-search-result-list-element.component.spec.ts} (96%) create mode 100644 src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.html create mode 100644 src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.spec.ts create mode 100644 src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component.ts diff --git a/src/app/my-dspace-page/my-dspace-search.module.ts b/src/app/my-dspace-page/my-dspace-search.module.ts index 67a4f0818e..97138ab8db 100644 --- a/src/app/my-dspace-page/my-dspace-search.module.ts +++ b/src/app/my-dspace-page/my-dspace-search.module.ts @@ -16,6 +16,7 @@ import { WorkflowItemSearchResultListElementComponent } from '../shared/object-l import { PoolSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/pool-search-result/pool-search-result-detail-element.component'; import { ClaimedApprovedSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component'; import { ClaimedDeclinedSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-search-result/claimed-declined-search-result-list-element.component'; +import { ClaimedDeclinedTaskSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-declined-task-search-result/claimed-declined-task-search-result-list-element.component'; const ENTRY_COMPONENTS = [ // put only entry components that use custom decorator @@ -24,6 +25,7 @@ const ENTRY_COMPONENTS = [ ClaimedSearchResultListElementComponent, ClaimedApprovedSearchResultListElementComponent, ClaimedDeclinedSearchResultListElementComponent, + ClaimedDeclinedTaskSearchResultListElementComponent, PoolSearchResultListElementComponent, ItemSearchResultDetailElementComponent, WorkspaceItemSearchResultDetailElementComponent, diff --git a/src/app/shared/mydspace-actions/claimed-task/decline-task/claimed-task-actions-decline-task.component.ts b/src/app/shared/mydspace-actions/claimed-task/decline-task/claimed-task-actions-decline-task.component.ts index ab867d62d6..5afbde7d7d 100644 --- a/src/app/shared/mydspace-actions/claimed-task/decline-task/claimed-task-actions-decline-task.component.ts +++ b/src/app/shared/mydspace-actions/claimed-task/decline-task/claimed-task-actions-decline-task.component.ts @@ -6,6 +6,12 @@ import { NotificationsService } from '../../../notifications/notifications.servi import { TranslateService } from '@ngx-translate/core'; import { SearchService } from '../../../../core/shared/search/search.service'; import { RequestService } from '../../../../core/data/request.service'; +import { DSpaceObject } from '../../../../core/shared/dspace-object.model'; +import { + ClaimedDeclinedTaskTaskSearchResult +} from '../../../object-collection/shared/claimed-declined-task-task-search-result.model'; +import { Observable, of as observableOf } from 'rxjs'; +import { RemoteData } from 'src/app/core/data/remote-data'; export const WORKFLOW_TASK_OPTION_DECLINE_TASK = 'submit_decline_task'; @@ -31,4 +37,14 @@ export class ClaimedTaskActionsDeclineTaskComponent extends ClaimedTaskActionsAb super(injector, router, notificationsService, translate, searchService, requestService); } + reloadObjectExecution(): Observable | DSpaceObject> { + return observableOf(this.object); + } + + convertReloadedObject(dso: DSpaceObject): DSpaceObject { + return Object.assign(new ClaimedDeclinedTaskTaskSearchResult(), dso, { + indexableObject: dso + }); + } + } diff --git a/src/app/shared/object-collection/shared/claimed-declined-task-search-result.model.ts b/src/app/shared/object-collection/shared/claimed-declined-task-search-result.model.ts index eaf63bf6dd..0afb79a274 100644 --- a/src/app/shared/object-collection/shared/claimed-declined-task-search-result.model.ts +++ b/src/app/shared/object-collection/shared/claimed-declined-task-search-result.model.ts @@ -2,7 +2,7 @@ import { ClaimedTask } from '../../../core/tasks/models/claimed-task-object.mode import { SearchResult } from '../../search/models/search-result.model'; /** - * Represents a search result object of a Declined ClaimedTask object + * Represents a search result object of a Declined/Rejected ClaimedTask object (sent back to the submitter) */ export class ClaimedDeclinedTaskSearchResult extends SearchResult { } diff --git a/src/app/shared/object-collection/shared/claimed-declined-task-task-search-result.model.ts b/src/app/shared/object-collection/shared/claimed-declined-task-task-search-result.model.ts new file mode 100644 index 0000000000..dffb3c1313 --- /dev/null +++ b/src/app/shared/object-collection/shared/claimed-declined-task-task-search-result.model.ts @@ -0,0 +1,8 @@ +import { ClaimedTask } from '../../../core/tasks/models/claimed-task-object.model'; +import { SearchResult } from '../../search/models/search-result.model'; + +/** + * Represents a search result object of a Declined ClaimedTask object (sent back to the Review Managers) + */ +export class ClaimedDeclinedTaskTaskSearchResult extends SearchResult { +} diff --git a/src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status-type.ts b/src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status-type.ts index 5cf4d91b20..ec101f1ee7 100644 --- a/src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status-type.ts +++ b/src/app/shared/object-collection/shared/mydspace-item-status/my-dspace-item-status-type.ts @@ -6,4 +6,5 @@ export enum MyDspaceItemStatusType { ARCHIVED = 'mydspace.status.archived', DECLINED = 'mydspace.status.declined', APPROVED = 'mydspace.status.approved', + DECLINED_TASk = 'mydspace.status.declined-task', } diff --git a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.html b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.html index 8ebcdbd69a..97ea34cef0 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.html +++ b/src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-approved-search-result/claimed-approved-search-result-list-element.component.html @@ -1,6 +1,6 @@