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

Add History Multiview activity+panel, add "Show Recent" mode to multiview #17251

Merged
merged 19 commits into from
Feb 22, 2024

Conversation

ahmedhamidawan
Copy link
Member

@ahmedhamidawan ahmedhamidawan commented Jan 9, 2024

Added a History Multiview activity and side panel, which can be used to select histories in Multiview.

This also adds the option of showing 4 latest histories in History multi view, instead of always tracking pinned histories. Once the user decides to track pinned histories, we do so, until the user "resets" it to recent histories mode.

Also organized the multiple histories in Multiview to show up evenly, with the HistoryDetails taking up a fixed space at the top.

Fixes #17143
Closes #16001 (every item when mounted, is loaded here)

Screen.Recording.2024-01-16.at.6.31.27.PM.mov

A singular Histories activity and panel?

This also opens up the potential of a singular Histories activity+side panel which - instead of changing route to the histories list (as the histories activity currently does) - toggles out a Histories side panel, and this panel contains:

  1. A searchable History list (similar to the one in this Multiview panel) used to select the current history for the HistoryPanel (and other AdditionalOptions) by default
  2. A button group used to either:
    • Open Histories list in center panel (side panel remains the same)
    • or, Open Multiview in center panel; then the History scroll list in side panel changes into the version from the Multiview panel, used to select histories for Multiview

Idea for #17284 ?

How to test the changes?

(Select all options that apply)

  • I've included appropriate automated tests.
  • This is a refactoring of components with existing test coverage.
  • Instructions for manual testing are as follows:
    1. [add testing steps and prerequisites here if you didn't write automated tests covering all your changes]

License

  • I agree to license these and all my past contributions to the core galaxy codebase under the MIT license.

@ahmedhamidawan ahmedhamidawan marked this pull request as ready for review January 16, 2024 13:29
@github-actions github-actions bot added this to the 24.0 milestone Jan 16, 2024
@ahmedhamidawan ahmedhamidawan changed the title Show recent histories in Multiview instead of always tracking pinned histories Add History Multiview activity+panel, add "Show Recent" mode to multiview Jan 16, 2024
@ahmedhamidawan ahmedhamidawan force-pushed the multiview_recent_histories branch 3 times, most recently from 6dcfa52 to f08139b Compare February 1, 2024 00:55
@mvdbeek
Copy link
Member

mvdbeek commented Feb 13, 2024

This is a huge improvement, I like it a lot. I am skeptical that merging this with the regular histories activity will be an improvement ?

@ahmedhamidawan
Copy link
Member Author

ahmedhamidawan commented Feb 13, 2024

A separate Histories activity side panel

histories_activity_panel_separate.mp4

This is separate from the History Multiview activity panel, and it can be used to quick operations on histories (like setting current, opening in center panel etc) and clicking on the Histories activity will not change user's route. To see all Histories in the center grid, the user can click on All histories in the footer (just like in the NotificationsPanel).

This can be tested here:
https://github.com/ahmedhamidawan/galaxy/tree/histories_side_panel

@ahmedhamidawan
Copy link
Member Author

A Singular Histories activity and side panel

singular_histories_activity.mp4

This is an example of a singular Histories activity and side panel (removes the multiview activity). It is a consolidation of the Histories and History Multiview side panel, and by default, it has the Histories side panel (from the example above). At the bottom, it has a button group which allows routing to either the Histories grid list or the multiview. When on the multiview route, the side panel switches to the multiview selector version, and on any other route it has the default, current history selector version.

This can be tested here:
https://github.com/ahmedhamidawan/galaxy/tree/singular_histories_side_panel

@ahmedhamidawan ahmedhamidawan force-pushed the multiview_recent_histories branch 2 times, most recently from 879c218 to 0445647 Compare February 14, 2024 17:38
@ahmedhamidawan
Copy link
Member Author

Split Activity Buttons (panel and route both in one activity)

split_activity_button.mp4

This way the user can quickly open the History Grid or open the Histories panel

Implemented on top of https://github.com/ahmedhamidawan/galaxy/tree/histories_side_panel

@ahmedhamidawan ahmedhamidawan force-pushed the multiview_recent_histories branch 3 times, most recently from ba45b09 to 9d28591 Compare February 19, 2024 17:25
This adds the option of showing 4 latest histories in Multiview,
instead of always tracking pinned histories. Once the user decides
to track pinned histories, we do so, until the user "resets" it to
recent histories mode.

Also organized the multiple histories in Multiview to show up evenly,
with the `HistoryDetails` taking up a fixed space at the top.
Refactored `SelectorModal` to use the new history scroll list in it.
Also, prevented `Upload` activity in activity bar from toggling out the current sidepanel.
ahmedhamidawan and others added 14 commits February 20, 2024 12:13
If no pinned histories, we are in "show recent mode" and the new history will be appended to the beginning of the view.
Alter the way the `ActivityBar` treats "panel activities";
i.e.: activities that have a sideBar associated,
so that if the sidebar is active but the current route isn't `activity.to`, then keep sidebar active and
just change route.

Also, if `activity.to` is current route, always keep activity's `is-active` prop = true regardless of sidebar for the activity being active or not.
This adds an upper div to the `.history-picker` which can be clicked to create and pin a new history.
Also added `keydown` events for tab accessibility
Adjust classes to make all activity panels look uniform
This caused a jest to fail because we tried to access the `filtered` computed array before it was even initialized.
Also, use imported icons instead of string icons for `FontAwesomeIcon`s
@ahmedhamidawan
Copy link
Member Author

Failing Toolshed tests seem unrelated...

Copy link
Member

@itisAliRH itisAliRH left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, thanks! @ahmedhamidawan

Copy link
Contributor

@davelopez davelopez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! Cool stuff!

@jdavcs jdavcs merged commit 03c1f91 into galaxyproject:dev Feb 22, 2024
29 of 30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
5 participants