From 01210d806f74d2dfb7f8dc29485415d6dd7ba96c Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Wed, 10 Jun 2020 22:25:12 +0200 Subject: [PATCH] Fixed #524 - auto backup: reject "0" as interval --- src/main/resources/static/js/helpers.js | 7 ++++--- src/main/resources/static/js/settings.js | 8 ++++---- src/main/resources/static/js/transactions.js | 8 ++++---- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/resources/static/js/helpers.js b/src/main/resources/static/js/helpers.js index 369db8140..24aafcf8e 100644 --- a/src/main/resources/static/js/helpers.js +++ b/src/main/resources/static/js/helpers.js @@ -1,8 +1,9 @@ -NUMBER_REGEX = new RegExp("^\\d+$"); +REGEX_NUMBER = new RegExp("^\\d+$"); +REGEX_NUMBER_GREATER_ZERO= new RegExp("^[1-9]\\d*$"); -function validateNumber(text, ID, hiddenID, message) +function validateNumber(text, ID, hiddenID, message, regex) { - if(text.match(NUMBER_REGEX) == null) + if(text.match(regex) == null) { addTooltip(ID, message); if(hiddenID != null) diff --git a/src/main/resources/static/js/settings.js b/src/main/resources/static/js/settings.js index 4b1047b78..24022a694 100644 --- a/src/main/resources/static/js/settings.js +++ b/src/main/resources/static/js/settings.js @@ -22,7 +22,7 @@ $(document).ready(function() { autoBackupDays.on('change keydown paste input', function() { - validateNumber(autoBackupDays.val(), 'settings-backup-auto-days', "hidden-settings-backup-auto-days", numberValidationMessage); + validateNumber(autoBackupDays.val(), 'settings-backup-auto-days', "hidden-settings-backup-auto-days", numberValidationMessage, REGEX_NUMBER_GREATER_ZERO); }); } @@ -31,7 +31,7 @@ $(document).ready(function() { autoBackupFilesToKeep.on('change keydown paste input', function() { - validateNumber(autoBackupFilesToKeep.val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keep", numberValidationMessageZeroAllowed); + validateNumber(autoBackupFilesToKeep.val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keep", numberValidationMessageZeroAllowed, REGEX_NUMBER); }); } @@ -45,8 +45,8 @@ function validateForm() let autoBackupCheckbox = document.getElementsByName("autoBackupActivated")[0]; if(autoBackupCheckbox.checked) { - let autoBackupDaysValid = validateNumber($('#settings-backup-auto-days').val(), "settings-backup-auto-days", "hidden-settings-backup-auto-days", numberValidationMessage); - let autoBackupFilesToKeepValid = validateNumber($('#settings-backup-auto-files-to-keep').val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keep", numberValidationMessageZeroAllowed); + let autoBackupDaysValid = validateNumber($('#settings-backup-auto-days').val(), "settings-backup-auto-days", "hidden-settings-backup-auto-days", numberValidationMessage, REGEX_NUMBER_GREATER_ZERO); + let autoBackupFilesToKeepValid = validateNumber($('#settings-backup-auto-files-to-keep').val(), "settings-backup-auto-files-to-keep", "hidden-settings-backup-auto-files-to-keep", numberValidationMessageZeroAllowed, REGEX_NUMBER); return autoBackupDaysValid && autoBackupFilesToKeepValid; } diff --git a/src/main/resources/static/js/transactions.js b/src/main/resources/static/js/transactions.js index b24b599c2..dd01fb940 100644 --- a/src/main/resources/static/js/transactions.js +++ b/src/main/resources/static/js/transactions.js @@ -125,7 +125,7 @@ $(document).ready(function() $(transactionRepeatingModifierID).on('change keydown paste input', function() { // substr(1) removes "#" at the beginning - validateNumber($(this).val(), transactionRepeatingModifierID.substr(1), "hidden-" + transactionRepeatingModifierID.substr(1), numberValidationMessage); + validateNumber($(this).val(), transactionRepeatingModifierID.substr(1), "hidden-" + transactionRepeatingModifierID.substr(1), numberValidationMessage, REGEX_NUMBER); }); } @@ -133,7 +133,7 @@ $(document).ready(function() { $(transactionRepeatingEndAfterXTimesInputID).on('change keydown paste input', function() { - validateNumber($(this).val(), transactionRepeatingEndAfterXTimesInputID.substr(1), null, numberValidationMessage); + validateNumber($(this).val(), transactionRepeatingEndAfterXTimesInputID.substr(1), null, numberValidationMessage, REGEX_NUMBER); // select corresponding radio button let endAfterXTimes = document.getElementById("repeating-end-after-x-times"); @@ -301,7 +301,7 @@ function validateForm(allowEmptyAmount=false) if($(transactionRepeatingModifierID).length) { - if(!validateNumber($(transactionRepeatingModifierID).val(), transactionRepeatingModifierID.substr(1), "hidden-" + transactionRepeatingModifierID.substr(1), numberValidationMessage)) + if(!validateNumber($(transactionRepeatingModifierID).val(), transactionRepeatingModifierID.substr(1), "hidden-" + transactionRepeatingModifierID.substr(1), numberValidationMessage), REGEX_NUMBER) { return false; } @@ -319,7 +319,7 @@ function validateForm(allowEmptyAmount=false) if(endAfterXTimes.checked) { - if(!validateNumber($(transactionRepeatingEndAfterXTimesInputID).val(), transactionRepeatingEndAfterXTimesInputID.substr(1), null, numberValidationMessage)) + if(!validateNumber($(transactionRepeatingEndAfterXTimesInputID).val(), transactionRepeatingEndAfterXTimesInputID.substr(1), null, numberValidationMessage), REGEX_NUMBER) { return false; } -- GitLab