8000 feat(web): filter dropdowns on every board by kvaps · Pull Request #297 · aenix-io/aeman · GitHub
[go: up one dir, main page]

Skip to content

feat(web): filter dropdowns on every board - #297

Merged
kvaps merged 18 commits into
mainfrom
feat/filter-dropdowns
Nov 6, 2026
Merged

kvaps merged 18 commits into
mainfrom
feat/filter-dropdowns

Conversation

@kvaps
@kvaps kvaps commented Nov 6, 2026
Copy link
Copy Markdown
Member

Every board now filters through one dropdown component instead of team chips, and the roster dialogs live inside it.

  • Roadmap, Team, Backlog: Team dropdown with "No team" as a regular option (picking real teams now excludes cards with no team) and "Manage teams" inside. Customer dropdown with "Manage customers" inside. The separate Customers button on the Roadmap is gone.
  • Team and Backlog filter by customer on the server (customer selector on the day views, also in MCP list_cards), mirrored on the client. A card created while one customer is selected is born with it.
  • Me: Team dropdown only, no Manage entries. When the filter hides some of the day's cards, a yellow "N more tasks" button appears next to it and clears the filter.
  • Project board: Project dropdown with "Manage projects" inside.
  • Roadmap: the Owner column shows a card's inherited team in grey when it has none of its own, and the columns can be resized by dragging their header edges (double-click resets, widths are remembered).
  • A team selection of "No team" alone is sent as team=,; before, it went out as an empty value, which some views read as every team.

kvaps added 18 commits November 6, 2026 21:22
The no-team group is now a team in the Roadmap's Team filter: the
empty member of the set, as on every other board, so choosing real
teams leaves no-team work out and No team keeps what has no effective
team. The team, backlog, all and me views take the Roadmap's customer
selector, matched against effective customers, so the Team board, the
Backlog and the Me board can filter by customer in the listing and
the watch.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
The Roadmap's filter dropdown becomes the boards' shared one: it can
carry the roster's Manage entry at the bottom, and the Team filter
offers No team as a team. The Roadmap's separate Customers button is
gone; teams and customers are managed from their filters, through
dialogs the app now owns. The day boards' team set writes the no-team
group alone as "," and carries the Team board's and the Backlog's
customer selection to the server.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
The Team board and the Backlog trade their chip rows for the boards'
filter dropdown: a Team filter with No team among the teams and
Manage teams at its foot, and a Customer filter with Manage
customers. The customer choice is shared with the Me board, narrows
the listing and the watch on the server and what the board holds on
the client, by effective customers. The teams dialog moves out of the
Team board into the app, so every board's Team filter opens the same
one.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
The Me board trades its chip row and team-focus eye for the boards'
filter dropdown, Team and Customer, with no Manage entry. A chosen
team or customer now hides the viewer's other cards, and while the
filters hide any of the day's cards a yellow button beside them says
how many, counted over what the day would draw unfiltered, and
clears them. The dimmed team avatar that marked cards outside the
chips goes with the eye.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
The Project board trades its chip row and its manage link for the
boards' filter dropdown: Project, with No project where columns with
no project exist, and Manage projects at its foot.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
The Owner column showed only a card's own team and owner, so a team
set on a goal did not appear down the tree although every card below
counts under it. A card with no team of its own now shows the team it
takes from above, greyed, its tooltip naming the card it comes from.
A task somebody holds and a plan item's own owner are shown as they
are, and the picker still sets the card's own value.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
Every boundary of the Roadmap's header is a handle: a drag sizes the
column on its left, the last one being the split between the table
and the timeline, a double-click puts it back, and the arrow keys
step a focused handle. Each column keeps a floor. The widths are
remembered per viewer and reach the rows as CSS variables, so a drag
repaints the grid without re-rendering the rows.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
The filter dropdown replaced them on every board.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
A card created on the Team board, the Backlog or the Me board while
the Customer filter was on was born for no customer and vanished the
moment it was made. With one customer chosen it is now born for that
customer; with several, or on the Me board with a team picked outside
the Team filter, the board keeps the cards it made shown until the
filter changes.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
The Me list and the Team grid narrowed by customer keep a task's
subtasks and its linked review, a past day's record gives back only
what the filter keeps, an ancestor's customers changing reaches the
Me board as a MODIFIED frame, and a customer-filtered watch sees a
card enter and leave while sparing its author.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
On view=team an empty team is the no-team group's grid; on backlog,
me, all and roadmap it is no team filter. Say so in the MCP
list_cards description, the OpenAPI parameter and api.md, with the
comma encoding of the no-team group alone.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
The column handle listened on the window for the whole drag, took any
mouse button, and left its listeners behind if the board went away
mid-drag. It now captures the pointer on the handle, answers the
primary button alone, puts the width back when the drag is cancelled,
and states its ceiling as aria-valuemax.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
The Me board keeps the Team dropdown alone, with no Manage entry, and
the yellow button now counts what the team filter hides. A customer
chosen on the Team board or the Backlog no longer hides anything on
the Me board.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
The Me board has no Customer filter any more; the effective customers
an ancestor's change re-sends matter to the Team board and the
Backlog, so the test watches theirs.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
The dropdown said aria-haspopup="menu" but held a list of labelled
checkboxes. Its options are now menuitemcheckbox buttons in a menu,
Escape closes any dropdown and gives the focus back to its trigger,
a long choice is cut with an ellipsis and named in full in the
title, and the boards' toolbars wrap instead of scrolling sideways.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
The team chips are gone; their styles went with them. The toolbar's
eye-shaped toggles keep theirs.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
Comments still spoke of team chips, a single-select team filter and
the Me board's team-focus eye.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
The "N more tasks" button counted the rows the Team filter hid but
not the subtasks: neither those under a hidden row nor a shown row's
subtask of another team. It now counts what the board would draw
unfiltered, rows and nested subtasks alike.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
@kvaps
kvaps merged commit 439fb73 into main Nov 6, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0