Switch to event delegation for edit button (robuster) + btn-outline-secondary

This commit is contained in:
Erik Thiele
2026-07-10 16:34:16 +02:00
parent f8b7a94845
commit f1c36f3c99
2 changed files with 37 additions and 25 deletions

View File

@@ -174,11 +174,13 @@
<!-- Bearbeiten (nur URLs) -->
{% if file.type == "url" %}
<button type="button"
class="btn btn-ghost-secondary btn-sm edit-url-btn"
class="btn btn-outline-secondary btn-sm edit-url-btn"
title="URL bearbeiten"
data-name="{{ file.name | e }}"
data-zoom="{{ file.zoom | default(1.0) }}"
onclick="editPlaylistItem('{{ current_site }}', 'priority', this.dataset.name, this.dataset.zoom)">
data-site="{{ current_site }}"
data-screen="priority"
data-oldname="{{ file.name | e }}">
Edit
</button>
{% endif %}
@@ -296,6 +298,20 @@ document.addEventListener("DOMContentLoaded", function () {
return new bootstrap.Tooltip(tooltipTriggerEl);
});
/* ─── Edit-URL-Button: Modal öffnen (Event-Delegation) ─── */
document.addEventListener("click", function (e) {
var btn = e.target.closest(".edit-url-btn");
if (!btn) return;
e.preventDefault();
editState.site = btn.dataset.site;
editState.screen = btn.dataset.screen;
editState.oldName = btn.dataset.oldname;
document.getElementById("edit-url-input").value = btn.dataset.oldname;
document.getElementById("edit-zoom-input").value = btn.dataset.zoom;
document.getElementById("edit-url-error").style.display = "none";
new bootstrap.Modal(document.getElementById("edit-url-modal")).show();
});
/* ─── Edit-URL-Modal: Speichern-Button ─── */
document.getElementById("edit-url-save").addEventListener("click", function () {
const newUrl = document.getElementById("edit-url-input").value.trim();
@@ -335,18 +351,8 @@ document.addEventListener("DOMContentLoaded", function () {
});
/* ─── Global: editState + editPlaylistItem ─── */
/* ─── Global: editState ─── */
var editState = { site: "", screen: "", oldName: "" };
function editPlaylistItem(site, screen, oldName, zoom) {
editState.site = site;
editState.screen = screen;
editState.oldName = oldName;
document.getElementById("edit-url-input").value = oldName;
document.getElementById("edit-zoom-input").value = zoom;
document.getElementById("edit-url-error").style.display = "none";
new bootstrap.Modal(document.getElementById("edit-url-modal")).show();
}
</script>
<!-- Modal: URL bearbeiten -->