From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 2 May 2022 04:38:04 +0000 (-0700) Subject: Always accept yyyy-mm-dd date inputs X-Git-Tag: v1.8.0-beta.rc1~142^2 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F864%2Fhead;p=thirdparty%2Fpaperless-ngx.git Always accept yyyy-mm-dd date inputs --- diff --git a/src-ui/src/app/utils/ngb-date-parser-formatter.ts b/src-ui/src/app/utils/ngb-date-parser-formatter.ts index ff77068192..5d95b21a6d 100644 --- a/src-ui/src/app/utils/ngb-date-parser-formatter.ts +++ b/src-ui/src/app/utils/ngb-date-parser-formatter.ts @@ -51,11 +51,22 @@ export class LocalizedDateParserFormatter extends NgbDateParserFormatter { const dateSeparator = inputFormat.replace(/[dmy]/gi, '').charAt(0) if (this.separatorRegExp.test(value)) { - // split on separator, pad & re-join without separator - value = value - .split(this.separatorRegExp) - .map((segment) => segment.padStart(2, '0')) - .join('') + let segments = value.split(this.separatorRegExp) + + // always accept strict yyyy*mm*dd format even if thats not the input format since we can be certain its not yyyy*dd*mm + if ( + value.length == 10 && + segments.length == 3 && + segments[0].length == 4 + ) { + return inputFormat + .replace('yyyy', segments[0]) + .replace('mm', segments[1]) + .replace('dd', segments[2]) + } else { + // otherwise pad & re-join without separator + value = segments.map((segment) => segment.padStart(2, '0')).join('') + } } if (value.length == 4 && inputFormat.substring(0, 4) != 'yyyy') {