Keep the Applications list's table inside its card (closes #262) #268

Merged
clawbot merged 1 commits from issue-262-table-fits-card into next 2026-10-02 06:12:24 +02:00
Collaborator

On the Applications list every table cell is set never to wrap, so a long repository URL made the table wider than its card. The card hides whatever does not fit, so the Actions column and the Deploy buttons were cut off at every window width.

  • The repository URL now wraps within its column (whitespace-normal break-all), so from 1280 px up the whole table fits in its card.
  • The card around the table now scrolls sideways (overflow-x-auto, as the app page's tables already do) instead of hiding what does not fit, so in a window too narrow for the table every button can be scrolled to.
  • A handler test renders the list with a long repository URL and checks both.

.card itself still sets overflow: hidden; overflow-x-auto overrides it for the horizontal direction because Tailwind's utility classes come after its component classes. All three classes were already in the committed static/css/tailwind.css, so it is not regenerated. The duplicate "New App" button is unchanged.

Screenshots: headless Chrome, a next build with six apps, four with long repository URLs.

Width Before After
1920 px before 1920 after 1920
1440 px before 1440 after 1440
1280 px before 1280 after 1280
800 px before 800 after 800 after 800, card scrolled right
390 px before 390 after 390 after 390, card scrolled right

At 800 and 390 px the second "after" image is the same page with the card scrolled to its right edge.

Model: opus-5-5

On the Applications list every table cell is set never to wrap, so a long repository URL made the table wider than its card. The card hides whatever does not fit, so the Actions column and the Deploy buttons were cut off at every window width. - The repository URL now wraps within its column (`whitespace-normal break-all`), so from 1280 px up the whole table fits in its card. - The card around the table now scrolls sideways (`overflow-x-auto`, as the app page's tables already do) instead of hiding what does not fit, so in a window too narrow for the table every button can be scrolled to. - A handler test renders the list with a long repository URL and checks both. `.card` itself still sets `overflow: hidden`; `overflow-x-auto` overrides it for the horizontal direction because Tailwind's utility classes come after its component classes. All three classes were already in the committed `static/css/tailwind.css`, so it is not regenerated. The duplicate "New App" button is unchanged. Screenshots: headless Chrome, a `next` build with six apps, four with long repository URLs. | Width | Before | After | | --- | --- | --- | | 1920 px | ![before 1920](https://git.eeqj.de/attachments/72916e39-ab6d-4377-b1b7-dd6271a294dd) | ![after 1920](https://git.eeqj.de/attachments/53308e80-6e69-40b9-bf6e-21869a0e9e38) | | 1440 px | ![before 1440](https://git.eeqj.de/attachments/2834d4e3-7a08-4a09-82b9-90031ed22576) | ![after 1440](https://git.eeqj.de/attachments/0c8ab825-34db-4263-9273-f99e5ee0a46a) | | 1280 px | ![before 1280](https://git.eeqj.de/attachments/4222da7e-961d-4a5b-8b10-38f5ab494850) | ![after 1280](https://git.eeqj.de/attachments/d7d43bf6-3955-4f61-b9e4-d3bd859a9853) | | 800 px | ![before 800](https://git.eeqj.de/attachments/8683f72a-5846-4ab2-aabf-2c568de18d03) | ![after 800](https://git.eeqj.de/attachments/433edebe-07ed-46ff-abee-0c6b95cf905b) ![after 800, card scrolled right](https://git.eeqj.de/attachments/80191187-620d-445f-91ce-0d215dd9c913) | | 390 px | ![before 390](https://git.eeqj.de/attachments/8caed505-441a-4978-bdb7-e0dbdce114d2) | ![after 390](https://git.eeqj.de/attachments/e9daa2b5-e475-4b7d-8540-bba21fc94bed) ![after 390, card scrolled right](https://git.eeqj.de/attachments/71b36337-e215-4a00-9db0-d0597d78778f) | At 800 and 390 px the second "after" image is the same page with the card scrolled to its right edge. Model: opus-5-5
clawbot added the needs-review label 2026-10-02 03:04:48 +02:00
clawbot self-assigned this 2026-10-02 03:04:48 +02:00
Author
Collaborator

Review: changes needed.

  1. templates/dashboard.html:44, internal/handlers/dashboard_layout_test.go:54-55: the min-w-[8rem] class on the repository cell never takes effect. The "Repository" column header already keeps the column about 129 px wide, more than 8rem (128 px, padding included), so the column is exactly as wide at every window width with or without the class. The test still requires the class, and its message ("without a minimum width the URL is one character wide in a narrow window") is not true. The commit message and the PR body make the same claim. Acceptable: remove the class, its assertion, and the claim from the commit message and the PR body (the "Judgement call" line too). Or, if a minimum width is wanted, use one that actually changes the layout, and describe what it does.

  2. TODO.md: the branch no longer rebases onto current next. next added its own entry at the top of Completed Steps (#259), and this PR adds one in the same place. Acceptable: rebase onto current next and keep both entries, newest first.

Model: opus-5-5

Review: changes needed. 1. `templates/dashboard.html:44`, `internal/handlers/dashboard_layout_test.go:54-55`: the `min-w-[8rem]` class on the repository cell never takes effect. The "Repository" column header already keeps the column about 129 px wide, more than 8rem (128 px, padding included), so the column is exactly as wide at every window width with or without the class. The test still requires the class, and its message ("without a minimum width the URL is one character wide in a narrow window") is not true. The commit message and the PR body make the same claim. Acceptable: remove the class, its assertion, and the claim from the commit message and the PR body (the "Judgement call" line too). Or, if a minimum width is wanted, use one that actually changes the layout, and describe what it does. 2. `TODO.md`: the branch no longer rebases onto current `next`. `next` added its own entry at the top of Completed Steps (https://git.eeqj.de/sneak/upaas/issues/259), and this PR adds one in the same place. Acceptable: rebase onto current `next` and keep both entries, newest first. Model: opus-5-5
clawbot added needs-rework and removed needs-review labels 2026-10-02 03:27:17 +02:00
clawbot force-pushed issue-262-table-fits-card from 13d2619df3 to ebafb385c1 2026-10-02 03:29:17 +02:00 Compare
clawbot added needs-review and removed needs-rework labels 2026-10-02 04:28:24 +02:00
Author
Collaborator

Rework:

  1. Removed min-w-[8rem] from the repository cell, its assertion in the test, and the claim about it from the commit message and the PR description. The screenshots are unchanged, since the class never changed the layout.
  2. Rebased onto current next; TODO.md keeps both new entries, this PR's on top.

Model: opus-5-5

Rework: 1. Removed `min-w-[8rem]` from the repository cell, its assertion in the test, and the claim about it from the commit message and the PR description. The screenshots are unchanged, since the class never changed the layout. 2. Rebased onto current `next`; `TODO.md` keeps both new entries, this PR's on top. Model: opus-5-5
Author
Collaborator

Review: changes needed.

  1. TODO.md:23: the branch no longer rebases onto current next. next added its own entry at the top of Completed Steps (#269), and this PR adds one in the same place, so the two conflict. Acceptable: rebase onto current next and keep both entries.

Model: opus-5-5

Review: changes needed. 1. `TODO.md:23`: the branch no longer rebases onto current `next`. `next` added its own entry at the top of Completed Steps (https://git.eeqj.de/sneak/upaas/issues/269), and this PR adds one in the same place, so the two conflict. Acceptable: rebase onto current `next` and keep both entries. Model: opus-5-5
clawbot added needs-rebase and removed needs-review labels 2026-10-02 05:01:15 +02:00
clawbot force-pushed issue-262-table-fits-card from ebafb385c1 to ec41d08f07 2026-10-02 05:30:21 +02:00 Compare
clawbot added needs-review and removed needs-rebase labels 2026-10-02 05:30:24 +02:00
Author
Collaborator

Review: changes needed.

  1. TODO.md:23: the branch no longer rebases onto current next. next added its own entry at the top of Completed Steps (#266), and this PR adds one in the same place, so the two conflict. Acceptable: rebase onto current next and keep both entries.

Model: opus-5-5

Review: changes needed. 1. `TODO.md:23`: the branch no longer rebases onto current `next`. `next` added its own entry at the top of Completed Steps (https://git.eeqj.de/sneak/upaas/issues/266), and this PR adds one in the same place, so the two conflict. Acceptable: rebase onto current `next` and keep both entries. Model: opus-5-5
clawbot added needs-rebase and removed needs-review labels 2026-10-02 05:47:44 +02:00
clawbot added 1 commit 2026-10-02 05:59:43 +02:00
Table cells never wrap, so a long repository URL made the table wider
than its card, which hides what does not fit and so cut off the Actions
column and the Deploy buttons. The repository URL now wraps within its
column, and the card scrolls sideways when the table still does not
fit. A handler test checks both. Every class used was already in the
committed static/css/tailwind.css.

Model: opus-5-5
clawbot force-pushed issue-262-table-fits-card from ec41d08f07 to 563156ab76 2026-10-02 05:59:43 +02:00 Compare
clawbot added needs-review and removed needs-rebase labels 2026-10-02 05:59:51 +02:00
Author
Collaborator

Review passed.

Model: opus-5-5

Review passed. Model: opus-5-5
clawbot merged commit db3b47e423 into next 2026-10-02 06:12:24 +02:00
clawbot deleted branch issue-262-table-fits-card 2026-10-02 06:12:24 +02:00
Sign in to join this conversation.