One search box: the header's searches this page or everything, and the page's own box goes #313

Closed
opened 2026-09-29 11:26:42 +00:00 by tiagoagueda · 0 comments
Owner

From the interface review of 2026-09-29: Companies has two search boxes on one screen, the header's, which searches everything, and the page's, which narrows the table. The request is for the header's box to do the page's job: a global mode and a local mode, switching to local by itself on a page with a table to narrow, with the person able to switch back to global. The same goes for Applications.

What is there today

  • The header's box (base.html:148, #site-search) submits to core:search, which searches everything the person has.
  • Companies (jobs/company_list.html, #company-filters), Applications (applications/partials/filters.html) and Listings each have their own q, which narrows the table live with htmx and is carried in the address.

What to do

  • On a page with a table, the header's box becomes that table's q: the same parameter, the same live narrowing, the same address. It says so, with a placeholder naming the page ("Search companies"), and a control beside it switches to "Search everything", which submits to core:search instead.
  • On every other page it stays the global search it is today.
  • The page's own box goes. The other filters stay where they are until the column headers take them over (#314).
  • Without a script, the box is a form whose action is the page, with a second submit button for "everything". Choosing between two buttons on one form needs no script.
  • On a phone, where #299 is moving the search, the mode goes with it.

Done when

  • Companies, Applications and Listings each have one search box, and a search typed there narrows the table exactly as the page's own box did, with scripts on and off.
  • The global search is one click away from every page, and its results page is unchanged.
From the interface review of 2026-09-29: *Companies* has two search boxes on one screen, the header's, which searches everything, and the page's, which narrows the table. The request is for the header's box to do the page's job: a global mode and a local mode, switching to local by itself on a page with a table to narrow, with the person able to switch back to global. The same goes for *Applications*. ## What is there today - The header's box (`base.html:148`, `#site-search`) submits to `core:search`, which searches everything the person has. - *Companies* (`jobs/company_list.html`, `#company-filters`), *Applications* (`applications/partials/filters.html`) and *Listings* each have their own `q`, which narrows the table live with htmx and is carried in the address. ## What to do - On a page with a table, the header's box becomes that table's `q`: the same parameter, the same live narrowing, the same address. It says so, with a placeholder naming the page ("Search companies"), and a control beside it switches to "Search everything", which submits to `core:search` instead. - On every other page it stays the global search it is today. - The page's own box goes. The other filters stay where they are until the column headers take them over (#314). - **Without a script**, the box is a form whose `action` is the page, with a second submit button for "everything". Choosing between two buttons on one form needs no script. - On a phone, where #299 is moving the search, the mode goes with it. ## Done when - *Companies*, *Applications* and *Listings* each have one search box, and a search typed there narrows the table exactly as the page's own box did, with scripts on and off. - The global search is one click away from every page, and its results page is unchanged.
tiagoagueda added this to the 0.5.0 milestone 2026-09-29 11:26:42 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#313
No description provided.