| 72d60f2d | 15-Jun-2026 |
tracker-user <82045103+tracker-user@users.noreply.github.com> |
Add clear-resolved to admin overview; make orphaned annotations read-only
Admin panel now shows a Resolved column alongside Normal and Orphaned, with per-page and wiki-wide "clear resolved" actions
Add clear-resolved to admin overview; make orphaned annotations read-only
Admin panel now shows a Resolved column alongside Normal and Orphaned, with per-page and wiki-wide "clear resolved" actions mirroring the existing orphan clears. The counts deliberately overlap: a resolved annotation is counted in both its anchoring facet (Normal or Orphaned) and the Resolved column, so each clear button removes exactly what its label says.
helper::pageCounts() gains the resolved key; clearResolvedAll() mirrors clearOrphanedAll(). In the front-end, orphaned annotation threads are now read-only — Resolve/Reopen and Edit are suppressed, leaving only Delete.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
show more ...
|
| 9fd890c3 | 15-Jun-2026 |
tracker-user <82045103+tracker-user@users.noreply.github.com> |
Add admin overview of annotated pages with clear-orphaned actions
Adds admin.php (Admin -> Annotations): a wiki-wide table of annotated pages with Normal/Orphaned counts, per-column filter, sortable
Add admin overview of annotated pages with clear-orphaned actions
Adds admin.php (Admin -> Annotations): a wiki-wide table of annotated pages with Normal/Orphaned counts, per-column filter, sortable headers, numbered pager (entries_per_page config), and per-page and wiki-wide clear-orphaned POST actions guarded by checkSecurityToken and auth_isadmin.
Refactors the orphan rule into helper::quoteMissing() shared by findOrphaned() and the new pageCounts(); adds getAnnotatedPages() / searchAnnotations() / clearOrphanedAll() to the helper. Extends HelperTest with four new coverage cases. All four locales (en, de, ru, ja) carry the new admin strings.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
show more ...
|
| 86c7806d | 03-Jun-2026 |
tracker-user <82045103+tracker-user@users.noreply.github.com> |
Add config, selection guards, annotation overlap detection, and glow button
- Config: color_open / color_resolved (hex, drives CSS vars); embed_max_bytes, context_length, body_cap move from consta
Add config, selection guards, annotation overlap detection, and glow button
- Config: color_open / color_resolved (hex, drives CSS vars); embed_max_bytes, context_length, body_cap move from constants to conf/default + metadata. action.php injects --ann-open-rgb / --ann-resolved-rgb as CSS custom props; style.css escapes every rgba(var(…)) with LESS ~"…" so lesserphp doesn't bake them to #000000 at compile time. - Selection guards: Annotate button suppressed inside .ann-* UI, #dw__toc, .docInfo, .secedit; the old endpoint-only isInsideHighlight is replaced by selectionHitsHighlight (range.intersectsNode over all highlight spans) so a selection overrunning an existing annotation on either side opens it instead of offering a new overlapping one. - Glow: static amber box-shadow on .ann-tooltip .ann-btn (no animation). - Removed email line from plugin.info.txt; updated GeneralTest accordingly. - context_length fed to JS via JSINFO.annotations.contextLen so capture and PHP trimming stay in sync. - conf/ + lang/*/settings.php + README/DESIGN updated.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
show more ...
|
| da56206c | 02-Jun-2026 |
tracker-user <82045103+tracker-user@users.noreply.github.com> |
Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are
Fix highlight off-by-one, localise the UI, add tests
Anchoring (the core bug): - Replace buildNormToRaw with normalizeWithMap so the normalised search string and the normalised->raw index map are built in one pass and share the same trimming. DokuWiki indents its content markup, so the collected text starts with a whitespace text node; the old untrimmed map shifted every highlight by a character. Verified on the live wiki: a quote now re-anchors exactly, including across element boundaries. - Locate all matches first, then wrap last-to-first, so wrapping (which splits text nodes) never disturbs a not-yet-wrapped offset. - Fix a pre-existing orphan double-count: renderAll passed an orphan total into updateCounter, which then recounted it from the _orphaned flags.
Localisation: - Move front-end strings to $lang['js'] (exposed as LANG.plugins.annotations) and read them via t()/fmt() with English fallbacks. - Add de, ru and ja translations alongside en.
Conventions / cleanup: - action.php: read request data via $INPUT; pass the CSRF token straight to checkSecurityToken($token) instead of poking $_POST/$_REQUEST; unify admin detection on auth_isadmin(). - helper.php: write annotation files with JSON_UNESCAPED_UNICODE | _SLASHES. - Drop the dead ann-highlight-orphaned constant; set panel data-status so the resolved accent in style.css applies.
Tests: - Add _test/GeneralTest.php (manifest + conf invariant) and _test/HelperTest.php (permission rules, CRUD, input cleaning, findOrphaned). 15 tests pass.
Docs: sync DESIGN.md and README.md; bump plugin.info.txt date.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
show more ...
|
| 43d2073c | 23-May-2026 |
tracker-user <82045103+tracker-user@users.noreply.github.com> |
Initial annotations plugin
Word- and sentence-level annotations for DokuWiki pages: text-quote anchoring, threaded replies, open/resolved status, gutter markers, client- and server-side orphan detec
Initial annotations plugin
Word- and sentence-level annotations for DokuWiki pages: text-quote anchoring, threaded replies, open/resolved status, gutter markers, client- and server-side orphan detection, a per-user on/off toggle, and admin per-page bulk-clear. Annotations are stored out-of-band in a per-page JSON file, so the wiki changelog is never touched.
Built with Claude Opus 4.7 and Sonnet 4.6.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
show more ...
|