From 1a8320c4f780fd95442c79a381a3fb756ad94e25 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem Date: Fri, 6 Jan 2023 14:16:30 +0100 Subject: [PATCH] 98211: Added ModifyItemOverviewComponent & confirm action button to AdvancedWorkflowActionSelectReviewerComponent --- ...d-task-action-select-reviewer.component.ts | 5 +-- ...flow-action-select-reviewer.component.html | 17 +++++++- ...rkflow-action-select-reviewer.component.ts | 12 ++++++ .../advanced-workflow-action.component.html | 1 - .../advanced-workflow-action.component.scss | 0 .../advanced-workflow-action.component.ts | 43 ++++++++++++++++--- .../workflowitems-edit-page.module.ts | 2 - src/assets/i18n/en.json5 | 16 +++++++ 8 files changed, 82 insertions(+), 14 deletions(-) delete mode 100644 src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.html delete mode 100644 src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.scss diff --git a/src/app/shared/mydspace-actions/claimed-task/select-reviewer/advanced-claimed-task-action-select-reviewer.component.ts b/src/app/shared/mydspace-actions/claimed-task/select-reviewer/advanced-claimed-task-action-select-reviewer.component.ts index 6cb6c68816..fb45e911c5 100644 --- a/src/app/shared/mydspace-actions/claimed-task/select-reviewer/advanced-claimed-task-action-select-reviewer.component.ts +++ b/src/app/shared/mydspace-actions/claimed-task/select-reviewer/advanced-claimed-task-action-select-reviewer.component.ts @@ -10,11 +10,8 @@ import { SearchService } from '../../../../core/shared/search/search.service'; import { RequestService } from '../../../../core/data/request.service'; import { getAdvancedWorkflowRoute } from '../../../../workflowitems-edit-page/workflowitems-edit-page-routing-paths'; import { - ADVANCED_WORKFLOW_ACTION_SELECT_REVIEWER + ADVANCED_WORKFLOW_ACTION_SELECT_REVIEWER, WORKFLOW_ADVANCED_TASK_OPTION_SELECT_REVIEWER } from '../../../../workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component'; - -export const WORKFLOW_ADVANCED_TASK_OPTION_SELECT_REVIEWER = 'submit_select_reviewer'; - @rendersWorkflowTaskOption(WORKFLOW_ADVANCED_TASK_OPTION_SELECT_REVIEWER) @Component({ selector: 'ds-advanced-claimed-task-action-select-reviewer', diff --git a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.html b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.html index 4380e45594..64e5638de6 100644 --- a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.html +++ b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action-select-reviewer/advanced-workflow-action-select-reviewer.component.html @@ -1 +1,16 @@ -advancedInfo: {{ (workflowAction | async)?.advancedInfo | json }} +
+ advancedInfo: {{ (workflowAction$ | async)?.advancedInfo | json }} + + + + +
+ + +
+
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 8ba2850202..df867d5595 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 @@ -4,6 +4,7 @@ import { } from '../../../shared/mydspace-actions/claimed-task/switcher/claimed-task-actions-decorator'; import { AdvancedWorkflowActionComponent } from '../advanced-workflow-action/advanced-workflow-action.component'; +export const WORKFLOW_ADVANCED_TASK_OPTION_SELECT_REVIEWER = 'submit_select_reviewer'; export const ADVANCED_WORKFLOW_ACTION_SELECT_REVIEWER = 'selectrevieweraction'; @rendersAdvancedWorkflowTaskOption(ADVANCED_WORKFLOW_ACTION_SELECT_REVIEWER) @@ -13,4 +14,15 @@ export const ADVANCED_WORKFLOW_ACTION_SELECT_REVIEWER = 'selectrevieweraction'; styleUrls: ['./advanced-workflow-action-select-reviewer.component.scss'], }) export class AdvancedWorkflowActionSelectReviewerComponent extends AdvancedWorkflowActionComponent { + + getType(): string { + return ADVANCED_WORKFLOW_ACTION_SELECT_REVIEWER; + } + + createBody(): any { + return { + [WORKFLOW_ADVANCED_TASK_OPTION_SELECT_REVIEWER]: true, + }; + } + } diff --git a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.html b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.html deleted file mode 100644 index 4fbedb9f3e..0000000000 --- a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.html +++ /dev/null @@ -1 +0,0 @@ -

advanced-workflow-action works!

diff --git a/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.scss b/src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component.scss deleted file mode 100644 index e69de29bb2..0000000000 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 0554e8463f..bef619ce45 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 @@ -1,29 +1,60 @@ import { Component, OnInit } from '@angular/core'; import { WorkflowAction } from '../../../core/tasks/models/workflow-action-object.model'; import { WorkflowActionDataService } from '../../../core/data/workflow-action-data.service'; -import { ActivatedRoute } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; import { Observable } from 'rxjs'; +import { WorkflowItemActionPageComponent } from '../../workflow-item-action-page.component'; +import { WorkflowItemDataService } from '../../../core/submission/workflowitem-data.service'; +import { RouteService } from '../../../core/services/route.service'; +import { NotificationsService } from '../../../shared/notifications/notifications.service'; +import { TranslateService } from '@ngx-translate/core'; import { getFirstSucceededRemoteDataPayload } from '../../../core/shared/operators'; +import { ClaimedTaskDataService } from '../../../core/tasks/claimed-task-data.service'; +import { map } from 'rxjs/operators'; +import { ProcessTaskResponse } from '../../../core/tasks/models/process-task-response'; @Component({ selector: 'ds-advanced-workflow-action', - templateUrl: './advanced-workflow-action.component.html', - styleUrls: ['./advanced-workflow-action.component.scss'] + template: '', }) -export class AdvancedWorkflowActionComponent implements OnInit { +export abstract class AdvancedWorkflowActionComponent extends WorkflowItemActionPageComponent implements OnInit { - workflowAction: Observable; + workflowAction$: Observable; constructor( protected route: ActivatedRoute, + protected workflowItemService: WorkflowItemDataService, + protected router: Router, + protected routeService: RouteService, + protected notificationsService: NotificationsService, + protected translationService: TranslateService, protected workflowActionService: WorkflowActionDataService, + protected claimedTaskDataService: ClaimedTaskDataService, ) { + super(route, workflowItemService, router, routeService, notificationsService, translationService); } ngOnInit(): void { - this.workflowAction = this.workflowActionService.findById(this.route.snapshot.queryParams.workflow).pipe( + super.ngOnInit(); + this.workflowAction$ = this.workflowActionService.findById(this.route.snapshot.queryParams.workflow).pipe( getFirstSucceededRemoteDataPayload(), ); } + /** + * Submits the task with the given {@link createBody}. + * + * @param id + */ + sendRequest(id: string): Observable { + return this.claimedTaskDataService.submitTask(id, this.createBody()).pipe( + map((processTaskResponse: ProcessTaskResponse) => processTaskResponse.hasSucceeded), + ); + } + + /** + * The body that needs to be passed to the {@link ClaimedTaskDataService}.submitTask(). + */ + abstract createBody(): any; + } diff --git a/src/app/workflowitems-edit-page/workflowitems-edit-page.module.ts b/src/app/workflowitems-edit-page/workflowitems-edit-page.module.ts index 2e1ae4c820..b230ffe65c 100644 --- a/src/app/workflowitems-edit-page/workflowitems-edit-page.module.ts +++ b/src/app/workflowitems-edit-page/workflowitems-edit-page.module.ts @@ -18,7 +18,6 @@ import { AdvancedWorkflowActionPageComponent } from './advanced-workflow-action/ import { AdvancedClaimedTaskActionsDirective } from './advanced-workflow-action/advanced-workflow-actions-loader/advanced-claimed-task-actions.directive'; -import { AdvancedWorkflowActionComponent } from './advanced-workflow-action/advanced-workflow-action/advanced-workflow-action.component'; @NgModule({ imports: [ @@ -39,7 +38,6 @@ import { AdvancedWorkflowActionComponent } from './advanced-workflow-action/adva AdvancedWorkflowActionSelectReviewerComponent, AdvancedWorkflowActionPageComponent, AdvancedClaimedTaskActionsDirective, - AdvancedWorkflowActionComponent, ] }) /** diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 5f3ac8e069..b410a26ac1 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -4166,8 +4166,24 @@ "workflow-item.advanced.title": "Advanced workflow", + + "workflow-item.selectrevieweraction.notification.success.title": "Selected reviewer", + + "workflow-item.selectrevieweraction.notification.success.content": "The reviewer for this workflow item has been successfully selected", + + "workflow-item.selectrevieweraction.notification.error.title": "Something went wrong", + + "workflow-item.selectrevieweraction.notification.error.content": "Couldn't select the reviewer for this workflow item", + + "workflow-item.selectrevieweraction.title": "Select Reviewer", + "workflow-item.selectrevieweraction.header": "Select Reviewer", + "workflow-item.selectrevieweraction.button.cancel": "Cancel", + + "workflow-item.selectrevieweraction.button.confirm": "Confirm", + + "workflow-item.ratingrevieweraction.header": "Rating Reviewer",