From 759ea70169530c22ba8801b6fd6afc364f1b019c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martynas=20Jusevi=C4=8Dius?= Date: Sun, 2 Aug 2026 19:24:29 +0200 Subject: [PATCH 1/6] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 72e2eb852..d1910cdc2 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ com.atomgraph linkeddatahub - 5.7.0 + 5.7.1-SNAPSHOT ${packaging.type} AtomGraph LinkedDataHub @@ -46,7 +46,7 @@ https://github.com/AtomGraph/LinkedDataHub scm:git:git://github.com/AtomGraph/LinkedDataHub.git scm:git:git@github.com:AtomGraph/LinkedDataHub.git - linkeddatahub-5.7.0 + linkeddatahub-5.5.4 From 896288c8d7f940d78212d4a0eccd3848b7fbd6c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martynas=20Jusevi=C4=8Dius?= Date: Wed, 5 Aug 2026 15:27:00 +0200 Subject: [PATCH 2/6] Rebuild annotation overlay on demand (sync rdfa-editor/overlay.xsl) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vendored from RDFa-Editor: rdfae:show-overlay now rebuilds the overlay via rdfae:init-overlay when it is absent. Fixes the SaxonJS cardinality crash on the second right-click annotation after the first dialog was dismissed — LDH styles the overlay as a Bootstrap .modal, so its generic modal teardown (close button / Escape) deletes the render-once singleton from the DOM. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../atomgraph/linkeddatahub/xsl/rdfa-editor/overlay.xsl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/rdfa-editor/overlay.xsl b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/rdfa-editor/overlay.xsl index 534b80f7a..cd076d873 100644 --- a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/rdfa-editor/overlay.xsl +++ b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/rdfa-editor/overlay.xsl @@ -257,6 +257,13 @@ version="3.0"> + + + + + From afe1db4c317355c9297b7f5b34ce5d4ddd291f83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martynas=20Jusevi=C4=8Dius?= Date: Wed, 5 Aug 2026 20:16:41 +0200 Subject: [PATCH 3/6] RDFa editor: dismiss overlay on teardown, caret at clicked word - ldh:form-horizontal-submit-success calls rdfae:hide-overlay so the annotation overlay does not linger once the editor reverts to read-only. - Click-to-edit now places the caret at the clicked word: block.xsl captures a structural anchor at click (content-block index + character offset within it, via a Range), and ldh:focus-editable re-resolves it against the editor DOM (ldh:text-position walks the block's non-chrome text to that offset). Pixel/ coordinate approaches were unreliable because the read and edit views are separate DOMs that re-render and shift; the structural anchor is immune to that. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../xsl/bootstrap/2.3.2/client/block.xsl | 11 +++ .../xsl/bootstrap/2.3.2/client/form.xsl | 72 +++++++++++++++++-- 2 files changed, 76 insertions(+), 7 deletions(-) diff --git a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl index 1f0383fa2..016173e3a 100644 --- a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl +++ b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl @@ -44,6 +44,7 @@ xmlns:srx="&srx;" xmlns:spin="&spin;" xmlns:dct="&dct;" xmlns:bs2="http://graphity.org/xsl/bootstrap/2.3.2" +xmlns:rdfae="https://w3id.org/atomgraph/rdfa-editor#" extension-element-prefixes="ixsl" exclude-result-prefixes="#all" > @@ -341,9 +342,19 @@ exclude-result-prefixes="#all" + + + + + + + + diff --git a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/form.xsl b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/form.xsl index 52fa98404..f4319ad3e 100644 --- a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/form.xsl +++ b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/form.xsl @@ -150,9 +150,9 @@ WHERE - - - + + + @@ -164,9 +164,64 @@ WHERE - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1254,10 +1309,13 @@ WHERE + + - + From 78a5359234dac2efc2891cfb705b0cde4263d04f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martynas=20Jusevi=C4=8Dius?= Date: Thu, 6 Aug 2026 10:43:15 +0200 Subject: [PATCH 4/6] RDFa editor: fix block drag handle visibility and drop inside LinkedDataHub The editor's inline drag handle (rdfae:inject-chrome) carried class="drag-handle", which collided with bootstrap.css's `.row-fluid.block .drag-handle { display: none }` and hid every handle rendered in an edited ldh:XHTML block. Override inject-chrome LDH-side (edit.xsl untouched) to stamp an editor-specific `rdfa-editor-drag-handle` class and re-match the two drag gestures; reserve the handle gutter with padding-left on .rdfa-editor-content (the host requirement the editor documents). LDH's own document-block drag-and-drop handlers matched every element inside .rdfa-editor-content (the editor renders in a .content-body > .block) and, having higher import precedence than the imported edit.xsl, shadowed the editor's own block DnD - killing its drop marks and reorder. Exclude the editor subtree from the four handlers (ondragover/enter/leave/drop) so those events fall through to the editor. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../atomgraph/linkeddatahub/css/bootstrap.css | 4 ++ .../xsl/bootstrap/2.3.2/client/block.xsl | 50 +++++++++++++++++-- 2 files changed, 49 insertions(+), 5 deletions(-) diff --git a/src/main/webapp/static/com/atomgraph/linkeddatahub/css/bootstrap.css b/src/main/webapp/static/com/atomgraph/linkeddatahub/css/bootstrap.css index a2a07d9e1..4321cd554 100644 --- a/src/main/webapp/static/com/atomgraph/linkeddatahub/css/bootstrap.css +++ b/src/main/webapp/static/com/atomgraph/linkeddatahub/css/bootstrap.css @@ -231,3 +231,7 @@ circle { cursor: move; } .edit-dialog .rdfa-editor-ui .action-buttons { margin-top: 10px; } .edit-dialog .rdfa-editor-ui .checkbox-label { display: inline-flex; gap: 6px; align-items: center; font-weight: 400; margin-top: 8px; } .editor-bar:not(:has(#edit-toolbar)), body:not(:has(.rdfa-editor-content)) .editor-bar, body:not(:has(.rdfa-editor-content)) #rdfa-editor-breadcrumb { display: none; } +/* Host-page gutter for the block drag handles (rendered at left:-1.5em, outside each block's box). + The editor documents this as a host requirement (padding-left >= 2.5em); LDH must reserve it since + the .rdfa-editor-content div is generated bare by the XMLLiteral form control. */ +.rdfa-editor-content { padding-left: 2.5em; } diff --git a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl index 016173e3a..de0ce0d4c 100644 --- a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl +++ b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl @@ -373,6 +373,41 @@ exclude-result-prefixes="#all" + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -485,9 +520,14 @@ exclude-result-prefixes="#all" - + + - + @@ -506,7 +546,7 @@ exclude-result-prefixes="#all" - + @@ -523,7 +563,7 @@ exclude-result-prefixes="#all" - + @@ -546,7 +586,7 @@ exclude-result-prefixes="#all" - + From b832fba3cab3f588190c79dd5d1c0c61a24734dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martynas=20Jusevi=C4=8Dius?= Date: Thu, 6 Aug 2026 11:37:58 +0200 Subject: [PATCH 5/6] RDFa editor: fix 412 on exit-canvas save (drop duplicate onclick autosave) Exiting the editor canvas fired two identical PATCHes for one gesture: onfocusout (mousedown) saved successfully with 204 and rotated the graph ETag, then the onclick-outside handler (mouseup, ~75ms later) resubmitted with the now-stale If-Match and got 412. If-Match was working correctly - it caught a self-inflicted double-write. The canvas holds focus throughout editing (toolbar/breadcrumb/find chrome all preventDefault on mousedown to keep it), so focusout reliably fires on any exit click and already carries the save. Remove the redundant onclick-outside template; onfocusout is now the single exit/save trigger. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../xsl/bootstrap/2.3.2/client/block.xsl | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl index de0ce0d4c..acf32d258 100644 --- a/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl +++ b/src/main/webapp/static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/client/block.xsl @@ -324,19 +324,11 @@ exclude-result-prefixes="#all" - - - - - - - - - - - - - + From b85448ca9d0775297c590c66449de7f8f04a2ca1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martynas=20Jusevi=C4=8Dius?= Date: Thu, 6 Aug 2026 11:57:38 +0200 Subject: [PATCH 6/6] Add CHANGELOG entry for 5.7.1 Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cbf6cb53a..c5ed2dae2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [5.7.1] - 2026-08-06 +### Changed +- RDFa editor: annotation overlay rebuilt on demand (`rdfa-editor/overlay.xsl`) + +### Fixed +- RDFa editor: exit-canvas save fired a duplicate PATCH that 412'd on a stale `If-Match`; `onfocusout` is now the sole save trigger +- RDFa editor: block drag-handle visibility (bootstrap.css collision) and dropping blocks inside a LinkedDataHub document +- RDFa editor: annotation overlay dismissed on teardown; caret lands at the clicked word + ## [5.7.0] - 2026-08-02 ### Changed - WYMEditor replaced with the RDFa editor for `rdf:XMLLiteral` editing (#336)