From d4c2bdf92d484a15e14e99683a65fc1283096b81 Mon Sep 17 00:00:00 2001 From: Eric Wagoner Date: Wed, 5 Aug 2026 19:56:42 -0400 Subject: [PATCH] Titles actions uncramp: wrong-match joins the corrections panel Four buttons in a nowrap cell clipped past the card edge. "wrong match" is a correction like "remove", so it moves into the edit panel beside it (the panel already carries the row's identity); the actions cell drops nowrap so its remaining buttons wrap right-aligned instead of clipping. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_016jXZFSTZQKzAC8fqpWSz9g --- src/bggpipe/static/app.css | 3 ++- src/bggpipe/templates/pages/help.html | 2 +- src/bggpipe/templates/pages/titles.html | 22 ++++++++++------------ 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/bggpipe/static/app.css b/src/bggpipe/static/app.css index bde9ce3..063fa60 100644 --- a/src/bggpipe/static/app.css +++ b/src/bggpipe/static/app.css @@ -322,7 +322,8 @@ button.danger { color: var(--stop-ink); border-color: var(--stop); background: # text-underline-offset: 2px; } .catalog a:hover { color: var(--accent-ink); } -.catalog td.actions { text-align: right; white-space: nowrap; } +.catalog td.actions { text-align: right; } +.catalog td.actions button { margin: .1rem 0 .1rem .3rem; white-space: nowrap; } .catalog td.actions button { font-size: .78rem; padding: .2rem .6rem; box-shadow: none; } .catalog td.actions button:hover { background: var(--board); } .catalog tr.editrow td { background: #fff; border-top: none; padding: .2rem .5rem .7rem; } diff --git a/src/bggpipe/templates/pages/help.html b/src/bggpipe/templates/pages/help.html index f57ada8..7e9efee 100644 --- a/src/bggpipe/templates/pages/help.html +++ b/src/bggpipe/templates/pages/help.html @@ -39,7 +39,7 @@

edit — fix a misread title or add cues you already know (publisher, edition, year, language). A corrected misspelling automatically merges with a correctly-read sighting of the same game from another photo. If the line already had a BGG match, saving re-queues it so resolve searches again with the corrected data.

split into copies — one line, several physical boxes? Splitting makes each photo its own copy, and each copy picks its own edition afterward. Appears on any line whose title was seen in more than one photo. Splitting one game never affects a same-named different edition.

pick edition — a matched game with no legible edition cues stays version-less by design (never guess) — but you know which printing your box is. This fetches the game's complete version list into a Review ballot; pick yours there.

-

wrong match — an auto-match landed on the wrong game (same-name impostors happen). This clears the match and returns the title to Review's unmatched queue, where re-search and manual-id live. Note BGG sometimes splits one game's lineage across entries — Wiz-War's early editions and its FFG remake are separate games — so a copy whose edition isn't on the ballot may belong to the sibling entry.

+

wrong match (inside the edit panel) — an auto-match landed on the wrong game (same-name impostors happen). This clears the match and returns the title to Review's unmatched queue, where re-search and manual-id live. Note BGG sometimes splits one game's lineage across entries — Wiz-War's early editions and its FFG remake are separate games — so a copy whose edition isn't on the ballot may belong to the sibling entry.

add a game (top of the Titles page) — a game no photo shows: an expansion stored inside a base box, a game away from the shelves. It joins the list like any read (BGG wants base game and expansion as separate collection entries, so boxes that hold both need this for the hidden half), and if a later photo shows it, the sighting merges instead of duplicating.

remove (inside the edit panel) — for lines that shouldn't exist at all: a book read as a game, box art misread as a title. The line and its matches are discarded and stay gone. This is different from reject on the Review page, which keeps the line visible as "no BGG match" — right for real games BGG doesn't know.

Undo: each decision is one record in data/title_edits.json, data/title_splits.json, or data/title_removals.json — delete the record and the next rebuild restores the old state.

diff --git a/src/bggpipe/templates/pages/titles.html b/src/bggpipe/templates/pages/titles.html index 90ee4d7..cd7f226 100644 --- a/src/bggpipe/templates/pages/titles.html +++ b/src/bggpipe/templates/pages/titles.html @@ -32,7 +32,7 @@ function editorRow(c) { return `
+ data-photos="${esc(c.photos.join(";"))}" data-rowix="${c.row_ix ?? ""}"> @@ -41,6 +41,9 @@ function editorRow(c) { + ${c.bgg_id && ["auto", "approved"].includes(c.status) + ? `` + : ""} saving re-queues this title for resolve with the corrected data @@ -86,12 +89,6 @@ function render() { title="one line, several boxes? make each photo its own copy"> split into copies` : ""} - ${c.bgg_id && ["auto", "approved"].includes(c.status) - ? `` - : ""} ${c.bgg_id && ["auto", "approved"].includes(c.status) && ["version_unknown", "version_error", ""].includes(c.version_status || "") ? `