Skip to content

Change Advanced Tool Search to a Tool Discovery View#20747

Merged
ahmedhamidawan merged 56 commits intogalaxyproject:devfrom
ahmedhamidawan:tool_discovery_view
Sep 30, 2025
Merged

Change Advanced Tool Search to a Tool Discovery View#20747
ahmedhamidawan merged 56 commits intogalaxyproject:devfrom
ahmedhamidawan:tool_discovery_view

Conversation

@ahmedhamidawan
Copy link
Copy Markdown
Member

@ahmedhamidawan ahmedhamidawan commented Aug 6, 2025

We've discussed the idea of moving the advanced tool search out of the tool panel, and into the "search results" view for a while. It makes sense because the advanced search, which searches via the backend, is decoupled from the client search which applies to the panel itself and is entirely client side.

Therefore, we've moved the filters to the center panel in the rich tools list view, and more work will be done on making this view the best place to find ideal tools for our users' analyses.

This implements part of the plans in #17286

tool_discovery_view_3.mp4
Initial Implementation...
tool_discovery_view_2.mp4

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
Copy link
Copy Markdown
Member Author

ahmedhamidawan commented Aug 22, 2025

Some action items, credit to @bgruening :

  • Instead of showing EDAM id, the badge should show the real underlying term - so a user understands
  • Remove Section from Section: XXX badge
  • Do not show "(Galaxy Version N.N.N)", maybe show this in a clickable popover
  • ^ Along with workflow compatibility badge (which can maybe also be entirely hidden from users?)
  • Remove owner badge (keep filter though). Maybe I can add that to that same popover with the above 2? 👀
  • Bring the Favorite Tool button front and center, needs to be the MAIN ACTION in this tool discovery view. Note: I did it by adding "Add to Favorites" text to it to make it bigger. Open to any more suggestions!
  • For not logged in users, hide disable the favorite tool button on tools as well as and remove the one next to filter field
  • Add a share tool button
  • Remove the PanelViewMenu from this view, and do not make section and EDAM dropdowns dependant on that. (This might mean we will enforce fetching the 2 EDAM views always
  • Remove All tools loaded from this view: I think I will make that a conditional in ScrollList and allow to show total count for all results when they're all loaded
  • Also, do not show currently loaded count (Loaded 80 out of 14974 tools); same thing, add that prop to ScrollList
  • Allow to open tool in another tab (via Ctrl-Click)
  • Nothing happens when you click run on a tool that has form_style !== "regular"
  • Try to sync search with route Will need to see if this is performant, given now every time the search value is changed, the tool helps are fetched again!
  • Add an "Explore Ontologies" view. Button on top right, breadcrumb heading, view that shows ontologies in GCard view, each clickable to apply filter.
  • Add easy way to "reset/clear" the section or ontology drop-down
  • Copy ontology ID to clipboard on badge click
  • Fix: The pop-over of "What are EDAM Ontologies?" has 100% width
  • Ontology view is very slow to load, maybe paginate it too

Some potentially hard to resolve or complex action items:

  • "Loaded 100 out of 14788 tools" this is wrong ... we should not count versions. Users probably don't care here in this view about versions. A tool - the latest version is what counts - IMHO.
    • There is an interesting question that we should discuss: Is the search, searching all tools with all versions, or only the latest? I would be in favor of just the latest version - to cut improve performance. - @bgruening

Follow-up action items:

  • MAJOR: Use an entirely new backend search framwork other than Whoosh? It just doesn't seem to return well ordered results.
  • Allow multiple ontology filtering
  • Currently, if there is a #favorites filter, no other filter applies. Make it possible to filter within favorite toolset.
  • Make favorite tools sortable (update time etc filtering, but also manual reordering)? This view could allow users to easily reorder their favorite tools as they prefer, so next time they want to quick-run a tool via the panel, they have their preferred/most-used tools at the top?
  • Add a github like search with datalist-esque key:value recommendations
  • Add a "Recently Used Tools" view
  • Highlight interactive tools in this view more: "can the card border maybe have different colors for interactive tools and data_sources (the workflow incompatible tools)?" - @bgruening

Point for discussion

  • Should we use the GCards (implemented in the workflow, history, invocation scroll lists) as opposed to the current ToolCard headers used here?

Resolved! 🎊: We are going with the GCards

@ahmedhamidawan ahmedhamidawan force-pushed the tool_discovery_view branch 6 times, most recently from 9c91bba to 5db9bca Compare August 29, 2025 16:49
@ahmedhamidawan ahmedhamidawan linked an issue Sep 3, 2025 that may be closed by this pull request
@ahmedhamidawan ahmedhamidawan marked this pull request as ready for review September 23, 2025 22:21
@github-actions github-actions Bot added this to the 25.1 milestone Sep 23, 2025
@ahmedhamidawan ahmedhamidawan force-pushed the tool_discovery_view branch 2 times, most recently from 0a36ff9 to f295353 Compare September 24, 2025 21:04
@ahmedhamidawan ahmedhamidawan added the highlight Included in user-facing release notes at the top label Sep 25, 2025
@bgruening
Copy link
Copy Markdown
Member

This is an awesome improvement, thanks a lot @ahmedhamidawan. It works nicely in my testing.

@ahmedhamidawan
Copy link
Copy Markdown
Member Author

ahmedhamidawan commented Sep 29, 2025

Thank you @bgruening ! Just checking out these tests locally, should be unrelated but double checking still...

Update: Ran locally, should be fine. The GridList jest and other integration failures should be unrelated to the changes here

We've discussed the idea of moving the advanced tool search out of the tool panel, and into the "search results" view for a while. It makes sense because the advanced search, which searches via the backend, is decoupled from the client search that applies to the panel itself and is entirely client side.

Therefore, we've moved the filters to the center panel in the rich tools list view, and more work will be done on making this view the best place to find ideal tools for our users' analyses.

This implements part of the plans in galaxyproject#17286
remove `panel-header-button-toolbox` class
Will need to see if this is performant, given now every time the search value is changed, the tool helps are fetched again!
I've used the `favoriteToolAction` ref from the comoposable so we do not have to add any additional imports to the card component.
It would really help if there is a place where we regulate this (IUC?).
…ding

This was because there's a delay between the tools list initializing the `toolsUptoOffset` ref to the first `FETCH_LIMIT` tools in `props.tools`.
With that, they would appear as they do in the panel views, except, Operations first and then Topics. This doesn't seem useful at all for this discovery view.
Removes unneeded parameters from functions, improves typing and definitions of variables in appropriate places.

The `searchToolsByKeys` function has been separated and a `searchObjectsByKeys` function has been added which is now very reusable anywhere!
@ahmedhamidawan ahmedhamidawan merged commit f0e9549 into galaxyproject:dev Sep 30, 2025
52 of 58 checks passed
jmchilton added a commit to jmchilton/galaxy that referenced this pull request Oct 14, 2025
jmchilton added a commit to jmchilton/galaxy that referenced this pull request Oct 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/UI-UX highlight Included in user-facing release notes at the top kind/enhancement kind/feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Tool Search reactivity bug

2 participants