From 5889a56fce6eeb38b344d26ed3f0de9941bf9ef8 Mon Sep 17 00:00:00 2001 From: Jonas Rittershofer Date: Mon, 23 Nov 2020 11:48:37 +0100 Subject: [PATCH] Don't enable verify, if selectedDir is empty Signed-off-by: Jonas Rittershofer --- lib/challenge-verify-handler.js | 39 +++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/lib/challenge-verify-handler.js b/lib/challenge-verify-handler.js index 0f9d66ff..20d400ee 100644 --- a/lib/challenge-verify-handler.js +++ b/lib/challenge-verify-handler.js @@ -39,6 +39,19 @@ document.addEventListener('DOMContentLoaded', () => { }) } + // Only if button exists. + // Before enableVerifyButtons, due to checked selectedDirPath there. + if (selectDirButton) { + const savedDir = userData.getSavedDir(currentChallenge) + + if (!savedDir) { + showSelectedDirDiv(false) + } else { + selectedDirPath.innerText = savedDir + showSelectedDirDiv(true) + } + } + const challengeUserData = userData.getChallengeData(currentChallenge) if (challengeUserData.challengeComplete) { enableVerifyButtons(false) @@ -52,18 +65,6 @@ document.addEventListener('DOMContentLoaded', () => { if (challengeUserData.verifyList.length > 0) { printOutVerifyList(challengeUserData.verifyList) } - - // Only if button exists - if (selectDirButton) { - const savedDir = userData.getSavedDir(currentChallenge) - - if (!savedDir) { - showSelectedDirDiv(false) - } else { - selectedDirPath.innerText = savedDir - showSelectedDirDiv(true) - } - } }) /* @@ -72,6 +73,7 @@ document.addEventListener('DOMContentLoaded', () => { ipc.on('confirm-selectDir', (event, path) => { selectedDirPath.innerText = path showSelectedDirDiv(true) + enableVerifyButtons(true) userData.updateSavedDir(currentChallenge, path) }) @@ -80,9 +82,12 @@ ipc.on('confirm-selectDir', (event, path) => { */ async function handleVerifyClick () { // If challenge with directory, but no path is selected + // Should normally not happen, as it is prevented already. if (selectDirButton && !selectedDirPath?.innerText.length) { - console.log('No path selected!') + console.error('No path selected!') showSelectedDirDiv(false) + // Buttons generally still enabled, but check verify-button against empty path again. + enableVerifyButtons(true) return } @@ -161,11 +166,17 @@ function enableClearStatusButton (enabled) { } /* - * VerifyButton gets disabled or not. + * VerifyButtons get disabled or not. + * This includes the verify-button, as well as the select-dir button if available. */ function enableVerifyButtons (enabled) { verifyButton.disabled = !enabled + if (selectDirButton) { + // Don't enable verifyButton, if no folder selected + if (selectedDirPath.innerText === '') { + verifyButton.disabled = true + } selectDirButton.disabled = !enabled } }