Fix edit button for text-node targets
This commit is contained in:
@@ -137,7 +137,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% if can_change %}
|
{% if can_change %}
|
||||||
<button type="button"
|
<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">
|
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" %}
|
{% trans "Redigera" %}
|
||||||
</button>
|
</button>
|
||||||
@@ -437,7 +437,15 @@ document.addEventListener("DOMContentLoaded", () => {
|
|||||||
const emptyState = document.querySelector("[data-claim-empty]");
|
const emptyState = document.querySelector("[data-claim-empty]");
|
||||||
const panels = Array.from(document.querySelectorAll("[data-edit-panel]"));
|
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}"]`);
|
const panel = document.querySelector(`[data-edit-panel="${id}"]`);
|
||||||
if (!panel) return;
|
if (!panel) return;
|
||||||
panel.classList.remove("hidden");
|
panel.classList.remove("hidden");
|
||||||
@@ -452,7 +460,18 @@ document.addEventListener("DOMContentLoaded", () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
document.addEventListener("click", (event) => {
|
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) {
|
if (closeTrigger) {
|
||||||
const panel = closeTrigger.closest("[data-edit-panel]");
|
const panel = closeTrigger.closest("[data-edit-panel]");
|
||||||
if (panel) {
|
if (panel) {
|
||||||
|
|||||||
Reference in New Issue
Block a user