Fix edit button for text-node targets
This commit is contained in:
@@ -137,7 +137,7 @@
|
||||
{% endif %}
|
||||
{% if can_change %}
|
||||
<button type="button"
|
||||
onclick="window.claimsOpenEdit('{{ claim.id }}')"
|
||||
data-open-edit="{{ claim.id }}"
|
||||
class="rounded-full border border-gray-300 px-3 py-1 text-xs font-semibold text-gray-700 transition hover:bg-gray-100">
|
||||
{% trans "Redigera" %}
|
||||
</button>
|
||||
@@ -437,7 +437,15 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
const emptyState = document.querySelector("[data-claim-empty]");
|
||||
const panels = Array.from(document.querySelectorAll("[data-edit-panel]"));
|
||||
|
||||
window.claimsOpenEdit = (id) => {
|
||||
const normalizeTarget = (target) => {
|
||||
let node = target;
|
||||
while (node && node.nodeType !== 1) {
|
||||
node = node.parentElement;
|
||||
}
|
||||
return node;
|
||||
};
|
||||
|
||||
const openPanel = (id) => {
|
||||
const panel = document.querySelector(`[data-edit-panel="${id}"]`);
|
||||
if (!panel) return;
|
||||
panel.classList.remove("hidden");
|
||||
@@ -452,7 +460,18 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
};
|
||||
|
||||
document.addEventListener("click", (event) => {
|
||||
const closeTrigger = event.target.closest("[data-close-edit]");
|
||||
const normalizedTarget = normalizeTarget(event.target);
|
||||
if (!normalizedTarget) {
|
||||
return;
|
||||
}
|
||||
const openTrigger = normalizedTarget.closest("[data-open-edit]");
|
||||
if (openTrigger) {
|
||||
event.preventDefault();
|
||||
openPanel(openTrigger.dataset.openEdit);
|
||||
return;
|
||||
}
|
||||
|
||||
const closeTrigger = normalizedTarget.closest("[data-close-edit]");
|
||||
if (closeTrigger) {
|
||||
const panel = closeTrigger.closest("[data-edit-panel]");
|
||||
if (panel) {
|
||||
|
||||
Reference in New Issue
Block a user