{% macro js_taint() %}
+var suppress_beforeunload = false;
+
function taint() {
// activate buttons "apply", "revert"
Array.from(document.getElementsByClassName('enable_on_change')).forEach((el) => {
el.disabled = false;
+ el.addEventListener('click', function(e) {
+ suppress_beforeunload = true;
+ });
});
// deactivate "disable_on_change" span contents
function recursive_span_disable(el) {
});
// try to catch user closing or reloading window
window.addEventListener('beforeunload', function(e) {
- e.preventDefault();
- e.returnValue = true; }
- );
+ if (!suppress_beforeunload) {
+ e.preventDefault();
+ e.returnValue = true;
+ }
+ });
// remove oninput handlers no longer needed (since we only ever go one way)
Array.from(document.querySelectorAll('*')
).filter(el => (el.oninput !== null)