Skip to content

feat(annotations): filterable annotation summary with CSV and PDF report (#383) - #769

Closed
oscar981-op wants to merge 1 commit into
OpenAEC-Foundation:mainfrom
oscar981-op:feat/annotation-summary-383
Closed

oscar981-op wants to merge 1 commit into
OpenAEC-Foundation:mainfrom
oscar981-op:feat/annotation-summary-383

Conversation

@oscar981-op

Copy link
Copy Markdown
Contributor

Fixes #383.

Builds on the existing comments panel (grouping and sorting, status filter, click to navigate, XFDF, CSV export).

Added

  • Filter bar: a funnel button in the panel toolbar, also under Show > Filters. It filters by author, type, page range and date range across all pages, and combines with the existing status filter. "Clear Filters" resets them all.
  • Shared filter and sort logic in js/annotations/opmerkingen-overzicht.js. The list, the CSV and the PDF use the same order.
  • Bulk status: "Set Status of Selected" and "Set Status of All Listed". One undo step, records who set the status and when, and skips locked comments.
  • CSV with all fields: 19 columns (added ID, created/modified, status set by and date, reply count and text, layer, x/y/w/h). The existing escaping and formula-injection protection are kept.
  • PDF summary: "Summarize Comments..." is enabled. It writes an A4 report of the listed comments. Each entry has number, page, type, author, date, status, subject, text and replies, plus a crop of its location with a red dashed frame. Footer page numbers. Builder: js/annotations/opmerkingen-rapport.js.
  • 29 new strings in all 40 locales. Removed the unused summarizeComingSoon and csvDate.

Tests

New and extended tests:

  • filters by author and status across pages, page and date ranges
  • sorting and bulk status
  • crop geometry and CSV escaping
  • the report: the generated PDF is parsed and checked for one entry per comment, page numbers, page breaks and embedded crops

Unit suite: 5279 passed, 0 failed.

Not yet checked in the running app / known limits

  • How the filter bar looks, the date pickers in the webview, the bulk status submenus and undo.
  • Crops on pages the user has rotated may be off.
  • The report uses Helvetica, with Noto Sans TC as fallback. Characters missing from both print as "?", and there is no right-to-left shaping.
  • "N annotations" and "No annotations found" in the panel are still English (unchanged).

🤖 Generated with Claude Code

…ort (OpenAEC-Foundation#383)

- Comments panel: filter bar for author, type, page range and date range
  (across all pages, alongside the existing status filter), clear-filters
  action, and bulk status change for the selection or all listed comments
  in one undo step.
- Sorting/grouping logic moved into a pure module shared by list and exports.
- CSV export now carries all fields: id, created/modified dates, status
  set by/at, reply count and reply text, layer and bounds.
- "Summarize Comments" builds a PDF report of the listed comments: page
  number, type, author, date, status, text, replies and a crop of the
  comment's location with a marker frame.
- Translations for all locales; unit tests for filtering, sorting, bulk
  status, crop geometry, CSV and the PDF report builder.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@DutchSailor

Copy link
Copy Markdown
Collaborator

Thank you, @oscar981-op! This change is included in release 2026.44.1 through the release PR #841, as one squashed commit with you as the author, so this PR is closed rather than merged.

philip-tam pushed a commit to philip-tam/open-pdf-studio that referenced this pull request Nov 1, 2026
…ort (OpenAEC-Foundation#769)

The comments panel gets a filter bar for author, type, page range and date
range, alongside the existing status filter, plus a clear-filters action
and a bulk status change for the selection or all listed comments in one
undo step. Sorting and grouping move into a pure module shared by the list
and the exports. The CSV export now carries all fields (ids, dates, status
history, replies, layer and bounds), and "Summarize Comments" builds a PDF
report of the listed comments with a crop of each comment's location.

Fixes OpenAEC-Foundation#383

Review: included as is; no changes were needed on top. Note that the CSV
column set has changed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Annotation summary: filterable list and exportable report

2 participants