Page MenuHomePhabricator

Toolbar search only matches title/filename/categories — broaden to full-text
Closed, ResolvedPublic

Description

Bug

The toolbar "Search your files…" input promises to search the user's files but only matches three fields:

  • title
  • filename
  • categories

It does not match against:

  • description
  • author
  • source
  • depicts labels (or QID)
  • Any custom-property values
  • EXIF metadata (camera, lens, date taken, …)

A user typing a word from a caption — the most natural search — silently returns no results. This was flagged as the search "not doing what the user expects".

Where

src/app.jsx:444-452, the applyFilters() body. Current predicate:

out = out.filter(i =>
  (i.title || "").toLowerCase().includes(q) ||
  (i.filename || "").toLowerCase().includes(q) ||
  (i.categories || []).some(c => c.toLowerCase().includes(q))
);

Expected

  • Extend predicate to also match description, author, source, depicts labels (case-insensitive substring).
  • Consider whitespace-separated terms ANDing (typing two words narrows, not widens).
  • Field-scoped syntax (e.g. cat:landmark) optional follow-up.

Reported by

Daanvr, 2026-05-08, during dead-UI review.

Event Timeline

Daanvr triaged this task as Medium priority.
Daanvr moved this task from To do to Doing on the Tool-upload-workbench board.

I just tested it but date does not work. lets use all the values form all the cels in the table. as they apear in the table.

Search now indexes every column's rendered text — covering dates ("Aug 15, 14:30"), sizes ("4.5 MB"), dimensions ("1,920×1,080"), status ("Stashed"/"Published"), EXIF (camera/lens/ISO/aperture/shutter/focal), depicts labels+QIDs, license, author, description, locationOfCreation label, and any custom-property values. Built by factoring a per-(col, item) string producer in src/table.jsx that mirrors the cell renderer, so the haystack stays exactly in sync with what's on screen.

Camera/object location cells render as a pin only — no visible text — so they're correctly excluded from the haystack (matching the lat/lng would not be "as it appears in the table").

Preview: https://upload-workbench.toolforge.org/mr-13/ (asset hash index-BE_86uSm.js)

Daanvr moved this task from Doing to Done on the Tool-upload-workbench board.

Released as v0.5.1 (MR !13 merged into main).