File tree Expand file tree Collapse file tree 1 file changed +21
-4
lines changed
services/static-webserver/client/source/class/osparc/ui/form Expand file tree Collapse file tree 1 file changed +21
-4
lines changed Original file line number Diff line number Diff 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 }
You can’t perform that action at this time.
0 commit comments