Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a Task Manager drawer #1938

Closed
sjd78 opened this issue Jun 5, 2024 · 2 comments · Fixed by #1955
Closed

Create a Task Manager drawer #1938

sjd78 opened this issue Jun 5, 2024 · 2 comments · Fixed by #1955
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature. priority/normal Higher priority than priority/minor. Nice to have. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Milestone

Comments

@sjd78
Copy link
Member

sjd78 commented Jun 5, 2024

Summary

With the addition of automatic language discovery, and task management (enhancements RFE, UI issue), the UI can be enhanced to provide a global Task Manager Drawer that is similar to the form and function of a PatternFly notification drawer. This enhancement will allow for easy access to a high level list of tasks as a notification drawer that does not hide the content of the page.

Enhancement references:

Requirements

Base requirements:

  • Implement a Task Manager drawer following the notification drawer component style and anchored to the UI's masthead
  • The notification badge on the masthead should show a count of tasks that are pending or active
  • Clicking on the notification badge will open the Task Manager drawer
  • Within the drawer, the tasks to be displayed should be grouped by kind (e.g. language discovery or analysis)

Task Manager drawer contents:

  • Design follows the base notification drawer design guidelines
  • Each task to display will follow a notification style in layout and function
  • Display the full set of currently pending/scheduled and running/in-flight tasks
  • Tasks should be in order they're created (Note: verify the sort order)
  • Allow actions on the tasks via a kebab menu

Task entries in the drawer should show a compact view including:

  • Icon for the task's state:
    • if the task is scheduled (PatternFly icon: PendingIcon)
    • if the task is running (PatternFly icon: InProgressIcon)
  • Task id
  • Task kind
  • Task's application's name
  • Task priority (the raw numeric value is ok, or use buckets of some definition like Low=0, Normal=10, High>10)

Task actions available on the task's kebab menu:

HUB enhancements that may be needed

See konveyor/tackle2-hub#641 for the new /tasks/report/queue endpoint to utilize for:

  • sourcing notification badge counts

See konveyor/tackle2-hub#640 to fetch task details:

Screen shots and mockups

Current State

Currently, the only way to see if an analysis task is running is to look at the application table's analysis column:
screenshot-192 168 39 66-2024 06 04-23_29_06

Future State

UI with the notification badge active, and the drawer closed:
Application Inventory LANDING PAGE with badge

UI with the notificaiton badge active and the drawer open:
Task Manager Drawer (1)

Other mockups for details of the drawer's function may be included as they become available

@konveyor-ci-bot
Copy link

This issue is currently awaiting triage.
If contributors determine this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.
The triage/accepted label can be added by org members.

@konveyor-ci-bot konveyor-ci-bot bot added needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. needs-kind Indicates an issue or PR lacks a `kind/foo` label and requires one. needs-priority Indicates an issue or PR lacks a `priority/foo` label and requires one. labels Jun 5, 2024
@github-project-automation github-project-automation bot moved this to 🆕 New in Planning Jun 5, 2024
@sjd78 sjd78 added kind/feature Categorizes issue or PR as related to a new feature. priority/normal Higher priority than priority/minor. Nice to have. and removed needs-kind Indicates an issue or PR lacks a `kind/foo` label and requires one. needs-priority Indicates an issue or PR lacks a `priority/foo` label and requires one. labels Jun 5, 2024
@sjd78 sjd78 added this to the v0.5.0 milestone Jun 5, 2024
@sjd78
Copy link
Member Author

sjd78 commented Jun 5, 2024

@dymurray, @JustinXHale, @rromannissen, @jortel, @mansam -- for your consideration

@sjd78 sjd78 moved this from 🆕 New to 🔖 Ready in Planning Jun 5, 2024
@sjd78 sjd78 added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Jun 6, 2024
@sjd78 sjd78 self-assigned this Jun 10, 2024
@sjd78 sjd78 moved this from 🔖 Ready to 🏗 In progress in Planning Jun 11, 2024
sjd78 added a commit to sjd78/tackle2-ui that referenced this issue Jun 12, 2024
Resolves: konveyor#1938

Add a queued tasks count badge plus and item drawer.

  - Use the standard `NotificationDrawer` attached to
    the `Page` layout to render the task manager item
    drawer.

  - Add a `TaskManagerContext` to control the count indicator
    and visibility of the drawer.  This is a top level context
    so the task manager is available on all pages.

__Still Needs__:
  - Query for hitting the queued count endpoint
  - Query for pulling queued task details at a set page size (pull just
    enough so the user needs to scroll to see more)
  - Task rows in the notification drawer
  - Individual task actions
  - Infinite scroll on the task list (or at least a load more link/icon,
    maybe a visual indicator that more can be fetched on scroll or click)

Related changes:
  - Update the `HeaderApp` to handle visibility of masthead
    toolbar items at the `ToolbarGroup` level.

  - Rename `SSOMenu` to `SsoToolbarItem`.

Signed-off-by: Scott J Dickerson <[email protected]>
sjd78 added a commit to sjd78/tackle2-ui that referenced this issue Jun 13, 2024
Resolves: konveyor#1938

Add a queued tasks count badge plus and item drawer.

  - Use the standard `NotificationDrawer` attached to
    the `Page` layout to render the task manager item
    drawer.

  - Add a `TaskManagerContext` to control the count indicator
    and visibility of the drawer.  This is a top level context
    so the task manager is available on all pages.

__Still Needs__:
  - Query for hitting the queued count endpoint
  - Query for pulling queued task details at a set page size (pull just
    enough so the user needs to scroll to see more)
  - Task rows in the notification drawer
  - Individual task actions
  - Infinite scroll on the task list (or at least a load more link/icon,
    maybe a visual indicator that more can be fetched on scroll or click)

Related changes:
  - Update the `HeaderApp` to handle visibility of masthead
    toolbar items at the `ToolbarGroup` level.

  - Rename `SSOMenu` to `SsoToolbarItem`.

Signed-off-by: Scott J Dickerson <[email protected]>
sjd78 added a commit to sjd78/tackle2-ui that referenced this issue Jun 14, 2024
Resolves: konveyor#1938

Add a queued tasks count badge plus and item drawer.

  - Use the standard `NotificationDrawer` attached to
    the `Page` layout to render the task manager item
    drawer.

  - Add a `TaskManagerContext` to control the count indicator
    and visibility of the drawer.  This is a top level context
    so the task manager is available on all pages.

  - Add `TaskQueue` and query for the notification badge

__Still Needs__:
  - Task rows in the notification drawer
  - Infinite scroll on the task list (or at least a load more link/icon,
    maybe a visual indicator that more can be fetched on scroll or click)
  - Individual task actions

Related changes:
  - Update the `HeaderApp` to handle visibility of masthead
    toolbar items at the `ToolbarGroup` level.

  - Rename `SSOMenu` to `SsoToolbarItem`.

Signed-off-by: Scott J Dickerson <[email protected]>
sjd78 added a commit to sjd78/tackle2-ui that referenced this issue Jun 15, 2024
Resolves: konveyor#1938

Add a queued tasks count badge plus and item drawer.

  - Use the standard `NotificationDrawer` attached to
    the `Page` layout to render the task manager item
    drawer.

  - Add a `TaskManagerContext` to control the count indicator
    and visibility of the drawer.  This is a top level context
    so the task manager is available on all pages.

  - Add `TaskQueue` and query for the notification badge

__Still Needs__:
  - Task rows in the notification drawer
  - Infinite scroll on the task list (or at least a load more link/icon,
    maybe a visual indicator that more can be fetched on scroll or click)
  - Individual task actions

Related changes:
  - Update the `HeaderApp` to handle visibility of masthead
    toolbar items at the `ToolbarGroup` level.

  - Rename `SSOMenu` to `SsoToolbarItem`.

Signed-off-by: Scott J Dickerson <[email protected]>
sjd78 added a commit to sjd78/tackle2-ui that referenced this issue Jun 17, 2024
Resolves: konveyor#1938

Add a queued tasks count badge plus and item drawer.

  - Use the standard `NotificationDrawer` attached to
    the `Page` layout to render the task manager item
    drawer.

  - Add a `TaskManagerContext` to control the count indicator
    and visibility of the drawer.  This is a top level context
    so the task manager is available on all pages.

  - Add `TaskQueue` and query for the notification badge

__Still Needs__:
  - Task rows in the notification drawer
  - Infinite scroll on the task list (or at least a load more link/icon,
    maybe a visual indicator that more can be fetched on scroll or click)
  - Individual task actions

Related changes:
  - Update the `HeaderApp` to handle visibility of masthead
    toolbar items at the `ToolbarGroup` level.

  - Rename `SSOMenu` to `SsoToolbarItem`.

Signed-off-by: Scott J Dickerson <[email protected]>
sjd78 added a commit to sjd78/tackle2-ui that referenced this issue Jun 19, 2024
Resolves: konveyor#1938

Add a queued tasks count badge plus and item drawer.

  - Use the standard `NotificationDrawer` attached to
    the `Page` layout to render the task manager item
    drawer.

  - Add a `TaskManagerContext` to control the count indicator
    and visibility of the drawer.  This is a top level context
    so the task manager is available on all pages.

  - Add `TaskQueue` and query for the notification badge

__Still Needs__:
  - Task rows in the notification drawer
  - Infinite scroll on the task list (or at least a load more link/icon,
    maybe a visual indicator that more can be fetched on scroll or click)
  - Individual task actions

Related changes:
  - Update the `HeaderApp` to handle visibility of masthead
    toolbar items at the `ToolbarGroup` level.

  - Rename `SSOMenu` to `SsoToolbarItem`.

Signed-off-by: Scott J Dickerson <[email protected]>
sjd78 added a commit to sjd78/tackle2-ui that referenced this issue Jun 20, 2024
Resolves: konveyor#1938

Add a queued tasks count badge plus and item drawer.

  - Use the standard `NotificationDrawer` attached to
    the `Page` layout to render the task manager item
    drawer.

  - Add a `TaskManagerContext` to control the count indicator
    and visibility of the drawer.  This is a top level context
    so the task manager is available on all pages.

  - Add `TaskQueue` and query for the notification badge

__Still Needs__:
  - Task rows in the notification drawer
  - Infinite scroll on the task list (or at least a load more link/icon,
    maybe a visual indicator that more can be fetched on scroll or click)
  - Individual task actions

Related changes:
  - Update the `HeaderApp` to handle visibility of masthead
    toolbar items at the `ToolbarGroup` level.

  - Rename `SSOMenu` to `SsoToolbarItem`.

Signed-off-by: Scott J Dickerson <[email protected]>
@sjd78 sjd78 closed this as completed in 5b2352d Jun 20, 2024
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in Planning Jun 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. priority/normal Higher priority than priority/minor. Nice to have. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

1 participant