From 02c2d123db48d0221fcc5ebc531ed7fb1dae5433 Mon Sep 17 00:00:00 2001 From: WrinklyNinja Date: Wed, 21 May 2014 09:32:53 +0100 Subject: [PATCH] Fixed closing of settings dialog. Button event handling is getting pretty messy, as expected. --- resources/report/js/script.js | 26 +++++++++++++++++--------- resources/report/report.html | 6 +++--- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/resources/report/js/script.js b/resources/report/js/script.js index 880b5f9b..f7e1cb90 100644 --- a/resources/report/js/script.js +++ b/resources/report/js/script.js @@ -155,12 +155,14 @@ function togglePlugins(evt) { document.getElementById('hiddenPluginNo').textContent = hiddenNo; } function hideDialog(evt) { - hideElement(document.getElementById('overlay')); var target = document.getElementById(evt.target.getAttribute('data-dialog')); hideElement(target); if (target.id == 'modalDialog') { document.body.removeChild(target); } + overlay.setAttribute('data-dialog', ''); + overlay.removeEventListener('click', hideDialog, false); + hideElement(document.getElementById('overlay')); } function showMessageDialog(title, text) { var content = document.getElementById('messageDialog').content; @@ -312,6 +314,13 @@ function showEditor(sectionId) { /* Finally, show editor. */ section.classList.toggle('flip'); } +function closeSettings(evt) { + if (evt.target.className.indexOf('accept') != -1) { + + } + hideElement(evt.target.parentElement.parentElement); + hideElement(document.getElementById('overlay')); +} function processButtonClick(evt) { var overlay = document.getElementById('overlay'); var action = evt.currentTarget.getAttribute('data-action'); @@ -319,14 +328,9 @@ function processButtonClick(evt) { var target = document.getElementById(evt.currentTarget.getAttribute('data-target')); if (isVisible(target)) { hideElement(target); - if (target.getAttribute('data-overlay')) { - overlay.setAttribute('data-dialog', ''); - hideElement(overlay); - } else { - var replace = target.getAttribute('data-replace'); - if (replace) { - showElement(document.getElementById(replace)); - } + var replace = target.getAttribute('data-replace'); + if (replace) { + showElement(document.getElementById(replace)); } } else { showElement(target); @@ -334,6 +338,8 @@ function processButtonClick(evt) { overlay.setAttribute('data-dialog', target.id); overlay.addEventListener('click', hideDialog, false); showElement(overlay); + } else if (target.id == 'settings') { + showElement(overlay); } else { var replace = target.getAttribute('data-replace'); if (replace) { @@ -356,6 +362,8 @@ function processButtonClick(evt) { clearAllMetadata(); } else if (action == 'show-editor') { showEditor(evt.target.getAttribute('data-target')); + } else if (action == 'close-settings') { + closeSettings(evt); } } function toggleInputRO(evt) { diff --git a/resources/report/report.html b/resources/report/report.html index f36011ca..5e46c499 100644 --- a/resources/report/report.html +++ b/resources/report/report.html @@ -275,7 +275,7 @@ along with LOOT. If not, see <http://www.gnu.org/licenses/>. -