diff --git a/frontend-html/src/gui/Components/ScreenElements/Editors/DateCompleter.tsx b/frontend-html/src/gui/Components/ScreenElements/Editors/DateCompleter.tsx
index 99934f994a..3c11bb409a 100644
--- a/frontend-html/src/gui/Components/ScreenElements/Editors/DateCompleter.tsx
+++ b/frontend-html/src/gui/Components/ScreenElements/Editors/DateCompleter.tsx
@@ -50,7 +50,8 @@ export default class DateCompleter {
t.match(/^\d\d\d\s+\d\d\d\d$/) ||
t.match(/^\d\d\d\d?\s+\d\d$/) ||
t.match(/^\d\d\d\d\d\d\d\d\s+\d\d\d\d\d\d$/) ||
- t.match(new RegExp("^\\d\\d?" + this.dateSeparator + "\\d?\\d?" + this.dateSeparator + "?\\d?\\d?\\d?\\d? *\\d?\\d?:?\\d?\\d?:?\\d?\\d?$"))
+ t.match(new RegExp("^\\d\\d?\\" + this.dateSeparator + "\\d?\\d?\\" + this.dateSeparator + "?\\d?\\d?\\d?\\d?")) ||
+ t.match(new RegExp("^\\d\\d?\\" + this.dateSeparator + "\\d?\\d?\\" + this.dateSeparator + "?\\d?\\d?\\d?\\d? +\\d?\\d?:?\\d?\\d?:?\\d?\\d?$"))
);
}
@@ -64,7 +65,8 @@ export default class DateCompleter {
t.match(/^\d\d\d\d\s+\d\d$/) ||
t.match(/^\d\d\d\d\d\d\d\d \d\d\d\d\d\d$/) ||
t.match(/^\d\d?$/) ||
- t.match(new RegExp("^\\d\\d?" + this.dateSeparator + "\\d?\\d?" + this.dateSeparator + "?\\d?\\d?\\d?\\d? *\\d?\\d?:?\\d?\\d?:?\\d?\\d?$"))
+ t.match(new RegExp("^\\d\\d?\\" + this.dateSeparator + "\\d?\\d?\\" + this.dateSeparator + "?\\d?\\d?\\d?\\d?")) ||
+ t.match(new RegExp("^\\d\\d?\\" + this.dateSeparator + "\\d?\\d?\\" + this.dateSeparator + "?\\d?\\d?\\d?\\d? +\\d?\\d?:?\\d?\\d?:?\\d?\\d?$"))
);
}
diff --git a/frontend-html/src/gui/Components/ScreenElements/Editors/DateTimeEditor/DateEditorModel.ts b/frontend-html/src/gui/Components/ScreenElements/Editors/DateTimeEditor/DateEditorModel.ts
index 59aa19fed2..7540a2246d 100644
--- a/frontend-html/src/gui/Components/ScreenElements/Editors/DateTimeEditor/DateEditorModel.ts
+++ b/frontend-html/src/gui/Components/ScreenElements/Editors/DateTimeEditor/DateEditorModel.ts
@@ -46,7 +46,7 @@ export class DateEditorModel {
await flow(function*() {
const dateCompleter = self.getDateCompleter();
const completedMoment = dateCompleter.autoComplete(self.dirtyTextualValue);
- if (completedMoment) {
+ if (completedMoment && completedMoment.isValid()) {
yield self.onChange?.(event, toOrigamServerString(completedMoment));
}
else if (self.hasValueChanged()) {
@@ -120,7 +120,7 @@ export class DateEditorModel {
isRefreshShortcut(event)
) {
const completedMoment = this.autoCompletedMoment;
- if (completedMoment) {
+ if (completedMoment && completedMoment.isValid()) {
this.onChange?.(event, toOrigamServerString(completedMoment));
}
else if (this.hasValueChanged()) {
diff --git a/frontend-html/src/tests/DateTimeCompleter.test.ts b/frontend-html/src/tests/DateTimeCompleter.test.ts
index c4653f7b4b..82a64f45dc 100644
--- a/frontend-html/src/tests/DateTimeCompleter.test.ts
+++ b/frontend-html/src/tests/DateTimeCompleter.test.ts
@@ -76,4 +76,22 @@ test.each([
])('Should auto complete %s to: %s using dateCompleterCz', (incompleteDate, expected) => {
const momentValue = dateCompleterCz.autoComplete(incompleteDate)
expect(format(momentValue!, "DD.MM.YYYY HH:mm:ss")).toBe(expected);
+});
+
+test.each([
+ ["12:30"],
+ ["12:30:14"],
+ ["12:30:14.16"],
+])('Should not try to complete time alone using dateCompleterCz', (incompleteDate) => {
+ const momentValue = dateCompleterCz.autoComplete(incompleteDate)
+ expect(momentValue).toBe(undefined);
+});
+
+test.each([
+ ["12:30"],
+ ["12:30:14"],
+ ["12:30:14.16"],
+])('Should not try to complete time alone using dateCompleterUs', (incompleteDate) => {
+ const momentValue = dateCompleterUs.autoComplete(incompleteDate)
+ expect(momentValue).toBe(undefined);
});
\ No newline at end of file