Skip to content

fix(web): name the last name author sort and offer it where it was missing (#2805) - #3116

Merged
vavallee merged 4 commits into
vavallee:mainfrom
francisrath:fix/2805-author-sort-names
Oct 11, 2026
Merged

vavallee merged 4 commits into
vavallee:mainfrom
francisrath:fix/2805-author-sort-names

Conversation

@francisrath

Copy link
Copy Markdown
Contributor

Summary

The Authors list already sorts by last name by default, but its menu said only "A–Z" next to "First name A–Z", so it read as if last name ordering were missing. This names it, and offers last name ordering in the two places that didn't have it, as proposed in #2805.

Closes #2805.

What changes

Where Change
Authors sort menu authors.sortAZ/ZA read "Last name A–Z / Z–A". Strings only; the sort is unchanged (sort_key, sort_name, where sort_name is "Last, First")
Merge authors dialog Sorted by sortName, falling back to authorName for a row without one, with authorName as the tiebreaker, so it matches the page it opens from
Books grid sort menu Adds Author A–Z / Z–A (author-az / author-za), which the server already accepted and only the table header reached

Translations are in a separate commit: the last name, first name and author sort labels in de, es, fr, nl, id, tl and ko. The first name pair was English-only in those locales, so their menus mixed languages. German, Spanish, French and Dutch are standard terms; Indonesian, Tagalog and Korean would benefit from a native reader. The nb and sv strings will be posted on #2994.

Checklist

  • Every commit carries a Signed-off-by that matches its author (git commit -s)
  • Changelog fragment added as changelog.d/2805-author-sort-names.md
  • Tests added or updated
  • No new dependency

Test plan

  • cd web && npm run typecheck && npm test (1859 passed), eslint clean on the changed files
  • Merge dialog test: authors listed by last name, a row without a sort name falls back to its display name
  • Books page test: choosing Author Z–A in the grid sort menu requests sort=author-za
  • All locale files parse; the i18n tests pass

🤖 Generated with Claude Code

francisrath and others added 2 commits October 8, 2026 12:08
…ssing (vavallee#2805)

The Authors list's default sort is by sort_name, which every path stores
as "Last, First", but its menu entries read only "A–Z" next to "First name
A–Z", as if last name ordering were missing. They now say Last name.

The merge authors picker sorted by display name, so it reordered the list
it was opened from; it now sorts by sortName, falling back to the display
name for a row without one. The Books grid sort menu gains Author A–Z and
Z–A, which the server already accepted and only the table header reached.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Francis Rath <fr@ncis.no>
The last name and first name sort labels on the Authors list and the new
Author sort on the Books grid, in German, Spanish, French, Dutch,
Indonesian, Tagalog and Korean. The first name pair was English only in
these locales, so their menus mixed languages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Francis Rath <fr@ncis.no>
@github-actions github-actions Bot added the bindery-notified Discord notification already sent for this PR label Oct 8, 2026
@codecov

codecov Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

vavallee added a commit that referenced this pull request Oct 8, 2026
Adds the series.merge strings from #3057 to both locales. The keys from
#3090 and #3116 wait until those land in en.json.

Translations by francisrath.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016fJcCVbNnKsmj2MAAMwWj9
Signed-off-by: vavallee <vavallee@protonmail.com>

@vavallee vavallee left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, this is a tidy fix and the issue writeup made it easy to check. Both new tests fail on main and pass here, and since useListParams already accepted the author sorts, a shared link with sort=author-za now shows the right option too. One tiny thing: the changelog fragment uses en dashes in the A to Z labels; could you write those out as "A to Z" and "Z to A"? Optionally, "Nom de famille" might read clearer than "Nom" in French. Happy to merge after that.

The changelog fragment spells out "A to Z" and "Z to A" instead of en
dashes, French reads "Nom de famille" rather than the bare "Nom", and
the merge picker test adds two rows with the same sort name, so the
display name tiebreaker is exercised.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Francis Rath <fr@ncis.no>
@francisrath

Copy link
Copy Markdown
Contributor Author

Thanks! Done in 98efb395: "A to Z" / "Z to A" in the changelog, "Nom de famille" in French, and a test case with two authors sharing a sort name so the tiebreaker is covered (that was Codecov's two partials).

…t-names

Signed-off-by: Francis Rath <fr@ncis.no>
@vavallee
vavallee merged commit bcc8e42 into vavallee:main Oct 11, 2026
41 checks passed
vavallee added a commit that referenced this pull request Oct 12, 2026
Provider lists in the README, the roadmap Delivered and Next up sections,
the In Library meaning for partly owned dual format books, ratings, the
Authors list have / total count and the author page sort and filters, the
series field in the book edit table, the availableBookCount and rating
fields, the rating sort values and the primary provider values in the API
reference, and the one time dedup key recompute on first boot.

Documents #3125, #3095, #3088, #3134, #3090, #3127, #3150, #3158, #3116,
#2915 and #2994. No new environment variables, dependencies or breaking
behaviour shipped, so DEPLOYMENT.md env tables, THIRD_PARTY_LICENSES.md and
docs/upgrade-v1.md are unchanged.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016fJcCVbNnKsmj2MAAMwWj9
Signed-off-by: vavallee <vavallee@protonmail.com>
vavallee added a commit that referenced this pull request Oct 12, 2026
Provider lists in the README, the roadmap Delivered and Next up sections,
the In Library meaning for partly owned dual format books, ratings, the
Authors list have / total count and the author page sort and filters, the
series field in the book edit table, the availableBookCount and rating
fields, the rating sort values and the primary provider values in the API
reference, and the one time dedup key recompute on first boot.

Documents #3125, #3095, #3088, #3134, #3090, #3127, #3150, #3158, #3116,
#2915 and #2994. No new environment variables, dependencies or breaking
behaviour shipped, so DEPLOYMENT.md env tables, THIRD_PARTY_LICENSES.md and
docs/upgrade-v1.md are unchanged.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016fJcCVbNnKsmj2MAAMwWj9
Signed-off-by: vavallee <vavallee@protonmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bindery-notified Discord notification already sent for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Name the Authors last name sort for what it is, and offer it where it is missing

2 participants