From 0c08fd037c6f14470d4a278f8aef0cba39b64548 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sat, 21 Nov 2020 16:47:23 +0100 Subject: [PATCH] #542 - allow date input without dots --- src/main/resources/static/js/transactions.js | 27 ++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/main/resources/static/js/transactions.js b/src/main/resources/static/js/transactions.js index b378c0471..3fd045832 100644 --- a/src/main/resources/static/js/transactions.js +++ b/src/main/resources/static/js/transactions.js @@ -272,6 +272,8 @@ let transactionRepeatingEndAfterXTimesInputID = "#transaction-repeating-end-afte AMOUNT_REGEX = new RegExp("^-?\\d+(,\\d+)?(\\.\\d+)?$"); ALLOWED_CHARACTERS = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ",", "."]; +DATE_REGEX_SHORT_NO_DOTS = new RegExp("^\\d{6}$"); +DATE_REGEX_LONG_NO_DOTS = new RegExp("^\\d{8}$"); DATE_REGEX_SHORT = new RegExp("^(\\d{2}.\\d{2}.)(\\d{2})$"); DATE_REGEX_LONG = new RegExp("^\\d{2}.\\d{2}.\\d{4}$"); @@ -307,6 +309,9 @@ function validateDate(inputId) dateInput.value = dateInput.value.trim(); let date = dateInput.value; + date = convertDateWithoutDots(date); + dateInput.value = date; + if(date.match(DATE_REGEX_LONG) != null) { removeTooltip(inputId); @@ -333,6 +338,28 @@ function validateDate(inputId) } } +function convertDateWithoutDots(dateString) +{ + let yearLength = 2; + if(dateString.match(DATE_REGEX_SHORT_NO_DOTS) != null) + { + yearLength = 2; + } + else if(dateString.match(DATE_REGEX_LONG_NO_DOTS) != null) + { + yearLength = 4; + } + else + { + console.log("Date string has dots"); + return dateString; + } + + let a = dateString.substr(0, 2) + '.' + dateString.substr(2, 2) + '.' + dateString.substr(4, yearLength); + console.log("converting date string from " + dateString + " to " + a); + return a; +} + function validateForm(allowEmptyAmount = false) { // amount -- GitLab