Skip to content

[Feature] Cross-entity search from dashboard quick search and hold list add-item #64

@andrewyager

Description

@andrewyager

Description

The dashboard quick search bar and hold list add-item search currently only search Asset records. Users expect these to also surface Locations, Categories, and Hold Lists when the query matches — providing a unified "search everything" experience.

With the recent consolidation of all asset search callers onto build_asset_search (FTS + ranking), the asset search path is solid. But the quick search and hold list resolution don't reach beyond the Asset model.

Use Case

  • A user types a location name into the dashboard search bar expecting to navigate there — gets no results.
  • A user searching for a category by name in the dashboard expects to see assets in that category or a link to the category itself.
  • Hold list add-item search could benefit from matching location-scoped assets or surfacing category context to help users find the right item faster.

Proposed Approach

  1. Dashboard quick search (asset_search autocomplete): Return grouped results — Assets (existing), Locations, Categories — each as a labelled section in the dropdown. FTS for assets (already done), icontains for locations/categories (small tables, FTS unnecessary).
  2. Hold list add-item: The resolve_asset_from_input fallback (step 3e) already searches assets broadly. Consider whether location/category context should narrow results or just improve disambiguation messaging.
  3. Build a lightweight search_locations / search_categories helper alongside build_asset_search to keep the pattern consistent.

Spec Consideration

  • Would extend the application into new territory

S2.6.1 covers asset text search only. Cross-entity search from the dashboard/hold list is new scope that would need a spec addition (likely a new S2.6.5 or extension to S2.6.1).

Additional Context

Related work: Group 1–2 of the search consolidation (build_asset_search FTS service + caller migration) is complete. This issue builds on that foundation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions