From 4f994c36b083c4ee664fd2c0d916de3d1ecb0e97 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Sun, 27 Apr 2025 17:44:24 +0200 Subject: [PATCH] On edit, disable undesired links, buttons even in top bar. --- src/templates/_base.tmpl | 10 +++++++--- src/templates/_macros.tmpl | 28 +++++++++++++++------------- src/templates/edit_structured.tmpl | 8 +++++--- 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/src/templates/_base.tmpl b/src/templates/_base.tmpl index 49a7bc9..45fe9f8 100644 --- a/src/templates/_base.tmpl +++ b/src/templates/_base.tmpl @@ -34,7 +34,7 @@ table.alternating > tbody > tr:nth-child(even) { td { vertical-align: top; } -div.bad, td.bad, tr.bad, span.bad { +div.bad, td.bad, tr.bad, span.bad, input[type="submit"].bad { {{macros.css_bg_red()}} } {% block css %}{% endblock %} @@ -44,13 +44,17 @@ div.bad, td.bad, tr.bad, span.bad { diff --git a/src/templates/_macros.tmpl b/src/templates/_macros.tmpl index dd6fbf7..1586757 100644 --- a/src/templates/_macros.tmpl +++ b/src/templates/_macros.tmpl @@ -105,20 +105,22 @@ function taint() { Array.from(document.getElementsByClassName('enable_on_change')).forEach((el) => { el.disabled = false; }); - // deactivate "disable_on_change" links + // deactivate "disable_on_change" span contents Array.from(document.getElementsByClassName('disable_on_change')).forEach((el) => { - if (el.tagName == 'SPAN') { - let links_text = ''; - Array.from(el.childNodes).forEach((node) => { - links_text += node.textContent + ' '; - }); - el.innerHTML = ''; - const del = document.createElement('del'); - el.appendChild(del); - del.textContent = links_text; - } else if (el.type == 'button') { - el.disabled = true; - } + old_nodes = Array.from(el.childNodes); + el.innerHTML = ''; + old_nodes.forEach((node) => { + if (node.tagName == 'INPUT') { + node.disabled = true; + el.appendChild(node); + } else if (node.tagName == 'A') { + const del = document.createElement('del'); + del.textContent = node.textContent; + el.appendChild(del); + } else { + el.appendChild(node); + }; + }); }); // remove oninput handlers no longer needed (since we only ever go one way) Array.from(document.querySelectorAll('*') diff --git a/src/templates/edit_structured.tmpl b/src/templates/edit_structured.tmpl index ee16e08..ec677e4 100644 --- a/src/templates/edit_structured.tmpl +++ b/src/templates/edit_structured.tmpl @@ -254,14 +254,16 @@ window.onload = update_form; {% block content %} {{macros.edit_bar(block,'structured','raw')}} - - + + + | - + from to +
-- 2.30.2