Skip to content

fix: board index and list 500 on a Tabler-only ux_icon host - #66

Merged
HecFranco merged 3 commits into
mainfrom
fix/2.0.2-index-icon
Nov 7, 2026
Merged

HecFranco merged 3 commits into
mainfrom
fix/2.0.2-index-icon

Conversation

@HecFranco

Copy link
Copy Markdown
Contributor

Patch for 2.0.2. Audit status: pending short delta.

Bug

On a host with nowo_ui_kit.icon_set: ux_icon that imports Tabler only, the board index answers 500: Icon "bi:plus" not found. The list page does the same with bi:chevron-up, which was not in the original report. The demo does not use ux_icon, so nothing caught either.

Fix

  • New board: tabler:plus under ux_icon, plus on other sets, and no icon when the host maps action_icons.create, so the kit draws the host's icon.
  • Why the icon was not simply removed: in _action.html.twig, a toolbar action draws its kind's icon only when action_icons maps the kind. With no map and no icon it is text only, so the plus would disappear on default hosts. Forcing icon_text is no answer either: the kit's ux_icon default for create is bi:plus-lg, the same 500.
  • Filter fold: tabler:chevron-up and tabler:chevron-down under ux_icon, unless the host maps those kinds.
  • Rector: the ClickUp checklist parent check reads the id from the item, taken from db9cd2e with its test and fixture, because rector process removes the cast and brings back the all-digit id bug. TaskBoardSyncService takes rector's non-static failure(), which the dry-run gate needs.

Behaviour for hosts

  • Webfont host with no map: output unchanged.
  • ux_icon host: import tabler:plus, tabler:chevron-up and tabler:chevron-down, or map the kinds.
  • Host with action_icons.create: New board now shows that icon, not the bundle's plus.

Test

UxIconHostTest renders the 2.0.0 pages with a ux_icon stub that throws on any name not prefixed tabler:. Four of its five tests fail without the fix. It also checks a mapped host and both webfont hosts.

Not covered by the fix: a host that sets board.default_columns[].icon to a bare name (the option is not validated) still gets bi:<name> under ux_icon.

New board passed the bare name `plus`, which the kit prefixes with `bi:` under
ux_icon. The list's filter fold passed the kinds chevron_up and chevron_down, whose
ux_icon default is Bootstrap. Both now ask for Tabler there.

Removing the icon alone would lose the plus: a toolbar action draws its kind's icon
only when action_icons maps the kind. A host that maps create or the chevrons keeps
its own icon, and webfont output does not change.

The new functional test renders the pages with a ux_icon that throws on any name
not prefixed tabler:.
rector process removes the (string) cast on the array key as useless, which brings
back the all-digit id bug of 2.0.1. The check reads the id from the item, as in
db9cd2e, with its test and fixture. TaskBoardSyncService takes rector's non-static
failure(), which the rector dry-run gate needs.
@HecFranco
HecFranco merged commit a0a9c00 into main Nov 7, 2026
17 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