]>
git.proxmox.com Git - proxmox-widget-toolkit.git/blob - form/DateTimeField.js
1 Ext
.define('Proxmox.DateTimeField', {
2 extend
: 'Ext.form.FieldContainer',
3 xtype
: 'promxoxDateTimeField',
11 getValue: function() {
13 var d
= me
.lookupReference('dateentry').getValue();
15 if (d
=== undefined || d
=== null) { return null; }
17 var t
= me
.lookupReference('timeentry').getValue();
19 if (t
=== undefined || t
=== null) { return null; }
21 var offset
= (t
.getHours()*3600+t
.getMinutes()*60)*1000;
23 return new Date(d
.getTime() + offset
);
26 getSubmitValue: function() {
28 var format
= me
.submitFormat
;
29 var value
= me
.getValue();
31 return value
? Ext
.Date
.format(value
, format
) : null;
38 reference
: 'dateentry',
44 reference
: 'timeentry',
52 setMinValue: function(value
) {
54 let current
= me
.getValue();
55 if (!value
|| !current
) {
59 let minhours
= value
.getHours();
60 let minminutes
= value
.getMinutes();
62 let hours
= current
.getHours();
63 let minutes
= current
.getMinutes();
69 current
.setMinutes(0);
70 current
.setSeconds(0);
72 let time
= new Date();
73 if (current
-value
> 0) {
77 time
.setMilliseconds(0);
79 time
.setHours(minhours
);
80 time
.setMinutes(minminutes
);
82 me
.lookup('timeentry').setMinValue(time
);
84 // current time is smaller than the time part of the new minimum
85 // so we have to add 1 to the day
86 if (minhours
*60+minminutes
> hours
*60+minutes
) {
87 value
.setDate(value
.getDate()+1);
89 me
.lookup('dateentry').setMinValue(value
);
92 setMaxValue: function(value
) {
94 let current
= me
.getValue();
95 if (!value
|| !current
) {
99 let maxhours
= value
.getHours();
100 let maxminutes
= value
.getMinutes();
102 let hours
= current
.getHours();
103 let minutes
= current
.getMinutes();
108 current
.setMinutes(0);
110 let time
= new Date();
111 if (value
-current
> 0) {
116 time
.setHours(maxhours
);
117 time
.setMinutes(maxminutes
);
119 me
.lookup('timeentry').setMaxValue(time
);
121 // current time is biger than the time part of the new maximum
122 // so we have to subtract 1 to the day
123 if (maxhours
*60+maxminutes
< hours
*60+minutes
) {
124 value
.setDate(value
.getDate()-1);
127 me
.lookup('dateentry').setMaxValue(value
);
130 initComponent: function() {
135 var value
= me
.value
|| new Date();
137 me
.lookupReference('dateentry').setValue(value
);
138 me
.lookupReference('timeentry').setValue(value
);
141 me
.setMinValue(me
.minValue
);
145 me
.setMaxValue(me
.maxValue
);
148 me
.relayEvents(me
.lookupReference('dateentry'), ['change']);
149 me
.relayEvents(me
.lookupReference('timeentry'), ['change']);