Project

General

Profile

Task #621

Create LongRunningTask detail page

Added by Peter Šourek 4 months ago. Updated about 2 months ago.

Status:
In Progress
Priority:
Normal
Assignee:
Category:
Frontend
Target version:
-
Start date:
08/10/2017
Due date:
% Done:

0%


Description

There is currently only limited info displayed in pop up detail of long running task. Aim of this ticket is to create detail page for long running tasks, which would show user processed entities with some additional info about them. Here is a list of functional requirements:

  • Add dry-run button (may require backend implementation)
  • Show all processed entities along with some basic info about them (use EntityInfo component)
  • Show status of each processed entitzy (take inspiration from provisioning queue)
  • Allow filtering on these entities (by status, id...)
  • Allow column sorting of these entities
  • Show same info also for currently running tasks (update detail dynamicaly?)

Other part of this ticket is to create page that shows list of processed items for stateful long running task (which LRT uses to determine which entities it should process and which were already processed) and enable Create, Read and Delete operations on these items. Reason for this is to allow administrators to re-run task for entities that were already processed by that task. Functional requirements for this are as follows:

  • Show all processed items in a table
  • Allow filtering and sorting
  • Allow Create(?), Read and Delete Operations on these items

Also it would be nice to modify current long running task detail to

  • show time when it was executed (now it is only creation)
  • show exact time it took to execute the task

Subtasks

Task #644: Dry RunIn ProgressMarek Klement

Task #645: Refactoring of IdmProcessedTaskItemNewMarek Klement

Task #696: Agenda of Task ItemsNewPeter Šourek

History

#2 Updated by Peter Šourek 4 months ago

  • Description updated (diff)

#3 Updated by Radek Tomiška 3 months ago

  • Assignee changed from Radek Tomiška to Marek Klement

I read the requirements / wishes above and it looks ok. I think the both parts solves the same thing => LRT detail with items (IdmProcessedTaskItem) and operations on them. I want to see technical design before implementation starts (entities will change, new contents will be added, rest, use cases and their technical design, etc.). We can split ticket, it will be easier:
- add start date (i think implementation started already ...)
- add LRT detail on new page instead modal with items table
- how to show some dynamic information about LRT

Note: Entity IdmProcessedTaskItem should be refactored deeply - use entity (entityType + entityIdentifier) instead dto as column, rename table to keep LRT and items together ...

#4 Updated by Marek Klement 3 months ago

  • Status changed from New to Needs feedback
  • Assignee changed from Marek Klement to Radek Tomiška

This is my technical design:
Make taskStarted
backend
1. Add to classes IdmLongRunningTask and IdmLongRunningTaskDto DateTime taskStarted, which indicates when the task was started.
2. In class AbstractLongRunningTaskExecutor add to function start() timestamp to taskStarted = DateTime.now;
3. Add new column to database with this timestamp (V1_00_027__long-running-task-started.sql)

Make new page LRTDetail
frontend
1. Make LongRunningTaskDetail in Content-Scheduler
2. a) Make basic info about LRT in the header of the page.
- created, started, task duration, instance, processed, task type, parameters, description, result
- this info will be similar to popover face which is already implemented in current version of IDM
b) Filter will be hovered default. Same as other filters.
- type filter, text filter, date filter, state filter
c) Table with LRTItems – entities
- entity type, state, entity name, created, modified

3.    In LRTTable.js make instead of popover face a link to another page (to detail)
- will be similar to users page
- in URL will use ID of LRT
4. I will get all needed information about LRT from LRT id and show it in header
backend
5. Make a new controller in scheduler rest.impl *- LongRunningTaskItemController to provide service to frontend
6. I will get all needed information about LRTItem from ItemService and show it in table

#5 Updated by Radek Tomiška 3 months ago

  • Status changed from Needs feedback to In Progress
  • Assignee changed from Radek Tomiška to Marek Klement

I think, its ok. Other use cases (active operations ...) could be added after detail will be created .)

#6 Updated by Vít Švanda about 2 months ago

  • Target version deleted (Diamond (7.4.0))

Also available in: Atom PDF