Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
f237acb
fix(admin): keep the lookup's source post URL through a repeat lookup…
sparkyfen Sep 15, 2026
22cad82
fix(admin): defer the edit page's lookup prefill too, announce emptie…
sparkyfen Sep 15, 2026
920a337
fix(admin): clear stale lookup fields on a no-match result, and put t…
sparkyfen Sep 15, 2026
ca45906
fix(admin): report every field a parent move leaves blank, and tidy t…
sparkyfen Sep 16, 2026
337600e
fix(admin): one announcement per parent move, spoken only where the p…
sparkyfen Sep 16, 2026
595a81d
fix(admin): one mapping from lookup status to sentence, shared by the…
sparkyfen Sep 16, 2026
3d3b703
fix(admin): a cleared flag always means an empty field, even across a…
sparkyfen Sep 16, 2026
db2ce23
fix(admin): the pending cleared record dies with the request it waite…
sparkyfen Sep 16, 2026
7779213
fix(admin): a cleared claim yields to what the operator typed, and th…
sparkyfen Sep 16, 2026
d842583
test(admin): pin the three parent-move announcements whole in both ca…
sparkyfen Sep 16, 2026
320f6e6
fix(admin): the status line reads history for what was filled and the…
sparkyfen Sep 16, 2026
7a3f59f
fix(admin): the typed-in latch is recomputed against each result on t…
sparkyfen Sep 16, 2026
7531f95
fix(admin): the searching state shows what a parent move emptied, and…
sparkyfen Sep 16, 2026
1208e74
fix(admin): a parent move onto a searching tile is spoken once (SONA-…
sparkyfen Sep 16, 2026
8c745f8
fix(admin): the searching state speaks only for a move that landed on…
sparkyfen Sep 16, 2026
1fb817b
fix(admin): a new lookup on the parent tile always drops the last res…
sparkyfen Sep 16, 2026
7817382
test(admin): match panel comments without exponential backtracking (S…
sparkyfen Sep 16, 2026
1f418ea
test(e2e): judge the pill row's one-line rule by measured fit, not by…
sparkyfen Sep 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 13 additions & 3 deletions messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -1980,9 +1980,16 @@
"admin_lookup_status_date_only": "Sona filled the commissioned date from the {site} post and left the source post URL as it was. You can change the date before you save.",
"admin_lookup_status_clash": "Sona filled the commissioned date from the {site} post and left the source post URL empty, because that post is already the source of {title}. You can change the date before you save.",
"admin_lookup_status_clash_kept": "Sona filled the commissioned date from the {site} post and left your source post URL as it was, because that post is already the source of {title}. You can change the date before you save.",
"admin_lookup_status_clash_emptied": "Sona cleared the source post URL the last lookup filled, because the {site} post Sona found is already the source of {title}. You can type one in before you save.",
"admin_lookup_status_clash_date_url_emptied": "Sona filled the commissioned date from the {site} post and cleared the source post URL the last lookup filled, because the post Sona just found is already the source of {title}. You can change the date before you save.",
"admin_lookup_status_url_kept": "Sona filled the source post URL from the {site} post. You can change it before you save.",
"admin_lookup_status_date_kept": "Sona filled the commissioned date from the {site} post. You can change it before you save.",
"admin_lookup_status_kept": "Sona filled the commissioned date from the {site} post and left your source post URL as it was.",
"admin_lookup_status_kept": "Sona filled the commissioned date from the {site} post and left your source post URL as it was. You can change the date before you save.",
"admin_lookup_status_url_and_date_emptied": "Sona filled the source post URL from the {site} post and cleared the commissioned date the last lookup filled, because that post has no date. You can change the URL before you save.",
"admin_lookup_status_date_and_url_emptied": "Sona filled the commissioned date from the {site} post and cleared the source post URL the last lookup filled, because the result Sona found has no link to put there. You can change the date before you save.",
"admin_lookup_status_both_emptied": "Sona cleared the source post URL and commissioned date the last lookup filled, because this lookup filled neither one. You can fill them in before you save.",
"admin_lookup_status_url_emptied": "Sona cleared the source post URL the last lookup filled, because this lookup filled nothing in its place. You can type one in before you save.",
"admin_lookup_status_date_emptied": "Sona cleared the commissioned date the last lookup filled, because this lookup filled no date in its place. You can set one before you save.",
"admin_lookup_status_artist_hint": "Sets the artist to {name}.",
"admin_lookup_status_seed_both": "Sona filled the new artist's name and {site} link. They're a guess until you check them, and you're the one publishing them.",
"admin_lookup_status_seed_name": "Sona filled the new artist's name. It's a guess until you check it, and you're the one publishing it.",
Expand Down Expand Up @@ -2032,8 +2039,11 @@
"admin_lookup_announce_new_form": "Switched to the new artist form. Add the artist by hand.",
"admin_lookup_announce_form_already_open": "The new artist form is already open.",
"admin_lookup_announce_seed_kept": "The new artist's fields already have values, so Sona left them alone.",
"admin_lookup_announce_searching_cleared": "Sona cleared the fields the last lookup filled.",
"admin_lookup_announce_searching_cleared": "Sona cleared the new artist details the last lookup filled.",
"admin_lookup_announce_shared_refilled": "Sona filled the shared fields from the parent image's result.",
"admin_lookup_announce_shared_refilled_source": "Sona filled the source post URL from the parent image's result.",
"admin_lookup_announce_shared_refilled_date": "Sona filled the commissioned date from the parent image's result."
"admin_lookup_announce_shared_refilled_date": "Sona filled the commissioned date from the parent image's result.",
"admin_lookup_announce_shared_cleared": "Sona cleared the source post URL and commissioned date the last lookup filled.",
"admin_lookup_announce_shared_cleared_source": "Sona cleared the source post URL the last lookup filled.",
"admin_lookup_announce_shared_cleared_date": "Sona cleared the commissioned date the last lookup filled."
}
16 changes: 13 additions & 3 deletions messages/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -1579,9 +1579,16 @@
"admin_lookup_status_date_only": "{site}の投稿から制作依頼日を入力しました。投稿元URLはそのままにしています。保存前に日付を変更できます。",
"admin_lookup_status_clash": "{site}の投稿から制作依頼日を入力しました。見つかった投稿はすでに「{title}」の投稿元になっているため、投稿元URLは空のままにしています。保存前に日付を変更できます。",
"admin_lookup_status_clash_kept": "{site}の投稿から制作依頼日を入力しました。見つかった投稿はすでに「{title}」の投稿元になっているため、入力済みの投稿元URLはそのままにしています。保存前に日付を変更できます。",
"admin_lookup_status_clash_emptied": "見つかった{site}の投稿はすでに「{title}」の投稿元になっているため、前回の検索で入力した投稿元URLは消去しました。保存前に入力できます。",
"admin_lookup_status_clash_date_url_emptied": "{site}の投稿から制作依頼日を入力しました。見つかった投稿はすでに「{title}」の投稿元になっているため、前回の検索で入力した投稿元URLは消去しました。保存前に日付を変更できます。",
"admin_lookup_status_url_kept": "{site}の投稿から投稿元URLを入力しました。保存前に変更できます。",
"admin_lookup_status_date_kept": "{site}の投稿から制作依頼日を入力しました。保存前に変更できます。",
"admin_lookup_status_kept": "{site}の投稿から制作依頼日を入力しました。入力済みの投稿元URLはそのままにしています。",
"admin_lookup_status_kept": "{site}の投稿から制作依頼日を入力しました。入力済みの投稿元URLはそのままにしています。保存前に日付を変更できます。",
"admin_lookup_status_url_and_date_emptied": "{site}の投稿から投稿元URLを入力しました。その投稿には日付がないため、前回の検索で入力した制作依頼日は消去しました。保存前にURLを変更できます。",
"admin_lookup_status_date_and_url_emptied": "{site}の投稿から制作依頼日を入力しました。見つかった検索結果には入れられるリンクがないため、前回の検索で入力した投稿元URLは消去しました。保存前に日付を変更できます。",
"admin_lookup_status_both_emptied": "今回の検索はどちらの項目も入力しなかったため、前回の検索で入力した投稿元URLと制作依頼日は消去しました。保存前にどちらも入力できます。",
"admin_lookup_status_url_emptied": "今回の検索は代わりの値を入力しなかったため、前回の検索で入力した投稿元URLは消去しました。保存前に入力できます。",
"admin_lookup_status_date_emptied": "今回の検索は代わりの日付を入力しなかったため、前回の検索で入力した制作依頼日は消去しました。保存前に入力できます。",
"admin_lookup_status_artist_hint": "アーティストに{name}を設定します。",
"admin_lookup_status_seed_both": "新しいアーティストの名前と{site}のリンクを入力しました。確認するまでは推測にすぎず、公開するのはあなたです。",
"admin_lookup_status_seed_name": "新しいアーティストの名前を入力しました。確認するまでは推測にすぎず、公開するのはあなたです。",
Expand Down Expand Up @@ -1631,8 +1638,11 @@
"admin_lookup_announce_new_form": "新しいアーティストのフォームに切り替えました。アーティストを手で入力してください。",
"admin_lookup_announce_form_already_open": "新しいアーティストのフォームはすでに開いています。",
"admin_lookup_announce_seed_kept": "新しいアーティストの各項目にはすでに値が入っているため、そのままにしました。",
"admin_lookup_announce_searching_cleared": "前回の検索で入力した項目は消去しました。",
"admin_lookup_announce_searching_cleared": "前回の検索で入力した新しいアーティストの情報は消去しました。",
"admin_lookup_announce_shared_refilled": "親画像の検索結果から共有項目を入力しました。",
"admin_lookup_announce_shared_refilled_source": "親画像の検索結果から投稿元URLを入力しました。",
"admin_lookup_announce_shared_refilled_date": "親画像の検索結果から制作依頼日を入力しました。"
"admin_lookup_announce_shared_refilled_date": "親画像の検索結果から制作依頼日を入力しました。",
"admin_lookup_announce_shared_cleared": "前回の検索で入力した投稿元URLと制作依頼日は消去しました。",
"admin_lookup_announce_shared_cleared_source": "前回の検索で入力した投稿元URLは消去しました。",
"admin_lookup_announce_shared_cleared_date": "前回の検索で入力した制作依頼日は消去しました。"
}
67 changes: 64 additions & 3 deletions src/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -552,13 +552,74 @@ select.input {
flex-wrap: wrap;
}

@media (max-width: 640px) {
/* Wrapped onto its own line, the note lines up under the label text rather
than under the checkbox. */
/* Where this row breaks is the COLUMN's business, not the window's: the edit
form's column is 219px wide in an 800px window, so a viewport query left the
whole middle of the range wrapping to the checkbox's edge. */
@container admin-form not (min-width: 560px) {
/* Wrapped onto its own line, each of these lines up under the label text
rather than under the checkbox. CSS cannot ask whether an item wrapped, so
the indent goes by column width alone, as the note has always done. */
.tag-check-row .tag-rating-note,
.tag-check-row .rating-tag,
.tag-check-row .btn {
margin-left: 24px;
}

/* Stacked rather than wrapped, which is what the mocks draw. Wrapping put the
24px indent on items that had not wrapped, so an inline row carried 32px
gaps; stacking makes the indent true of every item that has it. */
.tag-check-row {
flex-direction: column;
align-items: flex-start;
}
}

/* The lookup's rating pill (SONA-156) — both admin forms and the upload tiles
hold the same one. A fixed radius, not the pill token: wrapped to three lines
the token clamps to half the box height and the end caps' arc lands inside the
text's own inset. */
.rating-tag {
font-family: var(--font-primary);
font-size: 11px;
color: var(--muted-foreground);
border: 1px solid var(--border);
border-radius: 12px;
padding: 1px 8px;
/* The text grows with the number of sites, so the pill wraps inside whatever
holds it rather than pushing the document into a sideways scroll. */
white-space: normal;
overflow-wrap: break-word;
max-width: 100%;
}

/* With room for all four, the two rating items give up the difference instead
of pushing "Mark it NSFW" onto a second row: flex breaks a line on content
size, so a zero basis takes them out of that decision and the floor keeps a
narrow column from shrinking them to a character per line. */
@container admin-form (min-width: 560px) {
.tag-check-row .rating-tag,
.tag-check-row .tag-rating-note {
flex: 1 1 0;
min-width: 14ch;
max-width: max-content;
}

/* Three gaps at 8px against an 8px shortfall: the edit form's row wants 608px
in a 600px column, and 4px buys back the 12px that keeps all four on one
line. The wider gap stays wherever the row has room for it. */
.tag-check-row {
gap: 4px;
}

/* The 4px above is the gap BETWEEN the two rating items, which report the
same kind of thing and belong together. The action after them is a
different kind of thing, so it takes some of that separation back. 4px, not
the 8px the row would read better with: the edit form's column has about
6px of slack at 1280, and 8px spent here wrapped "entail.dev." onto a
second line — which is the shortfall the narrower gap was paying off. */
.tag-check-row .btn {
margin-left: 4px;
}
}

/* The pill that opens a lookup — the outline capsule the "Add New Artist"
Expand Down
Loading
Loading