Skip to content

Commit 0d4c079

Browse files
committed
avoid past dates
1 parent f76c165 commit 0d4c079

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

services/static-webserver/client/source/class/osparc/ui/form/DateTimeField.js

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,13 @@ qx.Class.define("osparc.ui.form.DateTimeField", {
2323
construct: function() {
2424
this.base(arguments);
2525

26-
// Layout
27-
var layout = new qx.ui.layout.HBox(5);
28-
this._setLayout(layout);
26+
this._setLayout(new qx.ui.layout.HBox(5));
2927

3028
// Date selector
3129
this.__dateField = new qx.ui.form.DateField();
30+
this.__dateField.set({
31+
minimumDate: new Date() // forbid past dates
32+
});
3233
this._add(this.__dateField);
3334

3435
// Hour selector
@@ -78,7 +79,23 @@ qx.Class.define("osparc.ui.form.DateTimeField", {
7879
const newDate = new Date(date.getTime());
7980
newDate.setHours(this.__hourSpinner.getValue());
8081
newDate.setMinutes(this.__minuteSpinner.getValue());
81-
this.setValue(newDate);
82+
83+
const now = new Date();
84+
85+
// If same day, ensure time is not in the past
86+
const isToday =
87+
date.getFullYear() === now.getFullYear() &&
88+
date.getMonth() === now.getMonth() &&
89+
date.getDate() === now.getDate();
90+
91+
if (isToday && newDate < now) {
92+
// Snap to current time if invalid
93+
this.__hourSpinner.setValue(now.getHours());
94+
this.__minuteSpinner.setValue(now.getMinutes());
95+
this.setValue(now);
96+
} else {
97+
this.setValue(newDate);
98+
}
8299
} else {
83100
this.resetValue();
84101
}

0 commit comments

Comments
 (0)