docs: un-stub Edit Details + Search Author tabs on author detail page (bookshelf-eseay.27) #1374

Merged
zombor merged 2 commits from bd-bookshelf-eseay.27 into main 2026-08-06 19:54:24 +00:00
Owner

Summary

  • Replaces the two "coming soon" placeholders in docs/content/docs/your-library/authors-series-categories.md with accurate end-user descriptions
  • Edit Details tab: documents name/description/ASIN fields, per-field lock toggles, photo upload (file + from-URL), and the Save button
  • Search Author tab: documents the Audnexus search flow, candidate list, Preview, and Apply actions

Verification

  • Read templates/pages/author_show.html (Edit Details and Search Author panels) on current main (includes PR #1350) to verify all described fields and controls exist
  • Read static/js/controllers/author_search_controller.js to confirm Search Author queries Audnexus and supports Preview + Apply
  • No code changes; docs-only PR

Test plan

  • Hugo renders the page without errors
  • "coming soon" text no longer appears in the authored tabs section
  • Edit Details section matches the actual form fields in author_show.html
  • Search Author section accurately describes the Audnexus search flow

Closes bead bookshelf-eseay.27 on merge.

## Summary - Replaces the two \"coming soon\" placeholders in `docs/content/docs/your-library/authors-series-categories.md` with accurate end-user descriptions - **Edit Details tab**: documents name/description/ASIN fields, per-field lock toggles, photo upload (file + from-URL), and the Save button - **Search Author tab**: documents the Audnexus search flow, candidate list, Preview, and Apply actions ## Verification - Read `templates/pages/author_show.html` (Edit Details and Search Author panels) on current main (includes PR #1350) to verify all described fields and controls exist - Read `static/js/controllers/author_search_controller.js` to confirm Search Author queries Audnexus and supports Preview + Apply - No code changes; docs-only PR ## Test plan - [ ] Hugo renders the page without errors - [ ] "coming soon" text no longer appears in the authored tabs section - [ ] Edit Details section matches the actual form fields in author_show.html - [ ] Search Author section accurately describes the Audnexus search flow Closes bead bookshelf-eseay.27 on merge.
docs: un-stub Edit Details + Search Author tabs on author detail page (bookshelf-eseay.27)
All checks were successful
/ E2E API (pull_request) Successful in 1m20s
/ Test Race (pull_request) Successful in 1m58s
/ Hugo build (pull_request) Successful in 23s
/ JS Unit Tests (pull_request) Successful in 1m2s
/ Coverage (pull_request) Successful in 2m47s
/ Lint (pull_request) Successful in 3m23s
/ Integration (pull_request) Successful in 3m17s
/ E2E Browser (pull_request) Successful in 5m15s
363342d420
The author edit feature (bookshelf-0u50.1, PR #1350) is now on main.
Update authors-series-categories.md to replace the two "coming soon"
placeholders with accurate end-user descriptions of the Edit Details
and Search Author tabs.

Edit Details: documents the name/description/ASIN fields, per-field
lock toggles, photo upload (file + URL), and the Save button.

Search Author: documents the Audnexus search flow, the candidate list,
Preview, and Apply.

Closes bead bookshelf-eseay.27 on merge.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Author
Owner

Security Review — PR #1374 (bookshelf-eseay.27)

Scope confirmation: Single file changed — docs/content/docs/your-library/authors-series-categories.md. No Go source, SQL, templates, configuration, or test files are present in this diff. This is a pure documentation update.

Findings:

No security findings. Specific checks performed:

  • SSRF guidance (Set from URL feature): The doc describes the URL-based photo fetch as a plain user action ("paste the URL of a photo on the web") with no suggestion that internal, loopback, or private-network URLs are valid or expected targets. No example URLs, no localhost/192.168./10. patterns, no implication the feature is unrestricted. The framing is neutral and appropriate for an end-user doc describing a server-mediated fetch that is SSRF-guarded server-side. No unsafe guidance introduced.

  • Permission gating: The Tips section closes with an explicit statement: "The ⋮ button and merge checkboxes are only visible to users who have library management permissions." The Edit Details and Search Author tabs are described as user-facing actions on the author detail page with no claim that they are available to all users unconditionally. The Managing authors / series / categories sections consistently scope admin actions to "Users with library management permissions." No privilege-escalation implication.

  • Secrets / PII: None present. The ASIN field is documented as a metadata identifier, not a credential. No tokens, API keys, passwords, or personal data referenced.

  • No code smuggled: Confirmed via git diff --name-only — exactly one markdown file changed.

REVIEW VERDICT: 0 blocker, 0 major, 0 minor

**Security Review — PR #1374 (bookshelf-eseay.27)** **Scope confirmation:** Single file changed — `docs/content/docs/your-library/authors-series-categories.md`. No Go source, SQL, templates, configuration, or test files are present in this diff. This is a pure documentation update. **Findings:** No security findings. Specific checks performed: - **SSRF guidance (Set from URL feature):** The doc describes the URL-based photo fetch as a plain user action ("paste the URL of a photo on the web") with no suggestion that internal, loopback, or private-network URLs are valid or expected targets. No example URLs, no `localhost`/`192.168.`/`10.` patterns, no implication the feature is unrestricted. The framing is neutral and appropriate for an end-user doc describing a server-mediated fetch that is SSRF-guarded server-side. No unsafe guidance introduced. - **Permission gating:** The Tips section closes with an explicit statement: "The ⋮ button and merge checkboxes are only visible to users who have library management permissions." The Edit Details and Search Author tabs are described as user-facing actions on the author detail page with no claim that they are available to all users unconditionally. The Managing authors / series / categories sections consistently scope admin actions to "Users with library management permissions." No privilege-escalation implication. - **Secrets / PII:** None present. The ASIN field is documented as a metadata identifier, not a credential. No tokens, API keys, passwords, or personal data referenced. - **No code smuggled:** Confirmed via `git diff --name-only` — exactly one markdown file changed. REVIEW VERDICT: 0 blocker, 0 major, 0 minor
Author
Owner

Code / Accuracy Review — PR #1374 (bookshelf-eseay.27)

Reviewed against origin/main templates/pages/author_show.html and static/js/controllers/author_search_controller.js.


Search Author: live vs stub verdict

The earlier review (#1360, comment 16752) saw a <p class="empty-state">Search Author coming soon.</p> stub. That stub is gone on current main. The panel-search section on main contains a full data-controller="author-search" panel with a real search form, status target, results container, and author_search_controller.js is loaded in page_scripts. The feature is genuinely live — the doc is correct to describe it as working.


Accuracy cross-check

Edit Details tab (doc lines ~31–57)

Doc claim Template evidence
Name, Description, ASIN fields confirmed: all three metadata-field inputs present
Lock toggle per field confirmed: btn-lock beside each input, including photo
Upload photo (file) confirmed: author-edit-photo-form with type="file"
Set from URL confirmed: author-edit-photo-url-form with type="url"
Click Save for metadata changes confirmed: btn btn-primary submit button on the metadata form
Photo changes take effect immediately confirmed: photo forms submit independently via JS (uploadPhoto / fetchPhotoFromURL)
Photo has its own lock confirmed: separate btn-lock with data-field="photo"

All claims are accurate.

Search Author tab (doc lines ~59–69)

Doc claim Template / controller evidence
Queries Audnexus confirmed: controller POSTs to /search-author, 422 triggers "Audnexus is disabled" message
Requires Audnexus enabled in Settings → Metadata Providers confirmed: controller renders that exact message on 422
Pre-filled with author's current name confirmed: value="{{.Author.Name}}" on the input
Each candidate shows name and ASIN confirmed: _renderCandidates sets nameEl.textContent and asinEl.textContent = "ASIN: " + c.asin
Preview shows biography and photo confirmed: _renderPreviewExpand renders img (photo proxy) + bioEl.textContent = data.bio
Apply saves the candidate's data confirmed: apply() POSTs ASIN to /apply-author then window.location.reload()

All claims are accurate.


Findings

No inaccuracies, no over-claimed features, no stale stubs left in the doc, no source/route/internal references leaked into the end-user text.

[MINOR] docs/content/docs/your-library/authors-series-categories.md:66 — Preview description omits that it also shows genres
The controller's _renderPreviewExpand renders genre chips (data.genres) in addition to the photo and biography, but the doc only says "see the biography and photo that would be imported." The genres are a minor additional detail the user sees but the doc skips. Suggested fix: append ", biography, and other details" instead of just "biography and photo" — or leave as-is if genre display is considered secondary.


REVIEW VERDICT: 0 blocker, 0 major, 1 minor

## Code / Accuracy Review — PR #1374 (bookshelf-eseay.27) Reviewed against `origin/main` `templates/pages/author_show.html` and `static/js/controllers/author_search_controller.js`. --- ### Search Author: live vs stub verdict The earlier review (#1360, comment 16752) saw a `<p class="empty-state">Search Author coming soon.</p>` stub. That stub is **gone on current main**. The `panel-search` section on main contains a full `data-controller="author-search"` panel with a real search form, status target, results container, and `author_search_controller.js` is loaded in `page_scripts`. The feature is **genuinely live** — the doc is correct to describe it as working. --- ### Accuracy cross-check **Edit Details tab** (doc lines ~31–57) | Doc claim | Template evidence | |---|---| | Name, Description, ASIN fields | confirmed: all three `metadata-field` inputs present | | Lock toggle per field | confirmed: `btn-lock` beside each input, including photo | | Upload photo (file) | confirmed: `author-edit-photo-form` with `type="file"` | | Set from URL | confirmed: `author-edit-photo-url-form` with `type="url"` | | Click Save for metadata changes | confirmed: `btn btn-primary` submit button on the metadata form | | Photo changes take effect immediately | confirmed: photo forms submit independently via JS (`uploadPhoto` / `fetchPhotoFromURL`) | | Photo has its own lock | confirmed: separate `btn-lock` with `data-field="photo"` | All claims are accurate. **Search Author tab** (doc lines ~59–69) | Doc claim | Template / controller evidence | |---|---| | Queries Audnexus | confirmed: controller POSTs to `/search-author`, 422 triggers "Audnexus is disabled" message | | Requires Audnexus enabled in Settings → Metadata Providers | confirmed: controller renders that exact message on 422 | | Pre-filled with author's current name | confirmed: `value="{{.Author.Name}}"` on the input | | Each candidate shows name and ASIN | confirmed: `_renderCandidates` sets `nameEl.textContent` and `asinEl.textContent = "ASIN: " + c.asin` | | Preview shows biography and photo | confirmed: `_renderPreviewExpand` renders `img` (photo proxy) + `bioEl.textContent = data.bio` | | Apply saves the candidate's data | confirmed: `apply()` POSTs ASIN to `/apply-author` then `window.location.reload()` | All claims are accurate. --- ### Findings No inaccuracies, no over-claimed features, no stale stubs left in the doc, no source/route/internal references leaked into the end-user text. [MINOR] docs/content/docs/your-library/authors-series-categories.md:66 — Preview description omits that it also shows genres The controller's `_renderPreviewExpand` renders genre chips (`data.genres`) in addition to the photo and biography, but the doc only says "see the biography and photo that would be imported." The genres are a minor additional detail the user sees but the doc skips. Suggested fix: append ", biography, and other details" instead of just "biography and photo" — or leave as-is if genre display is considered secondary. --- REVIEW VERDICT: 0 blocker, 0 major, 1 minor
fix(docs): note Preview also shows genres (eseay.27 review)
All checks were successful
/ E2E API (pull_request) Successful in 1m26s
/ Test Race (pull_request) Successful in 2m1s
/ Hugo build (pull_request) Successful in 29s
/ JS Unit Tests (pull_request) Successful in 57s
/ Integration (pull_request) Successful in 2m25s
/ Coverage (pull_request) Successful in 2m29s
/ Lint (pull_request) Successful in 2m34s
/ E2E Browser (pull_request) Successful in 5m26s
0ad7c08b5b
The Search Author preview description previously said "see the biography
and photo that would be imported" but the preview actually shows genres
as well. Update to "biography, photo, and other details" to set correct
user expectations.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
zombor force-pushed bd-bookshelf-eseay.27 from 0ad7c08b5b
All checks were successful
/ E2E API (pull_request) Successful in 1m26s
/ Test Race (pull_request) Successful in 2m1s
/ Hugo build (pull_request) Successful in 29s
/ JS Unit Tests (pull_request) Successful in 57s
/ Integration (pull_request) Successful in 2m25s
/ Coverage (pull_request) Successful in 2m29s
/ Lint (pull_request) Successful in 2m34s
/ E2E Browser (pull_request) Successful in 5m26s
to bc88e97092
All checks were successful
/ Test Race (pull_request) Successful in 2m12s
/ Hugo build (pull_request) Successful in 42s
/ Coverage (pull_request) Successful in 2m37s
/ E2E API (pull_request) Successful in 1m51s
/ Lint (pull_request) Successful in 3m22s
/ JS Unit Tests (pull_request) Successful in 1m7s
/ Integration (pull_request) Successful in 3m9s
/ E2E Browser (pull_request) Successful in 5m23s
2026-08-06 19:46:07 +00:00
Compare
zombor merged commit 72803f8bec into main 2026-08-06 19:54:24 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
zombor/pergamum!1374
No description provided.