]> git.proxmox.com Git - proxmox-widget-toolkit.git/commitdiff
form/DateTimeField.js - new widget to select Date with Time
authorDietmar Maurer <dietmar@proxmox.com>
Wed, 20 Sep 2017 10:42:19 +0000 (12:42 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 20 Sep 2017 10:42:42 +0000 (12:42 +0200)
Makefile
form/DateTimeField.js [new file with mode: 0644]

index 0a7479d31efc0c69eeb452673e4bcf11f83e3ae7..d13579663c967cf9cff6a1b1b57a3b817e62e7e8 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -24,6 +24,7 @@ JSSRC=                                        \
        data/TimezoneStore.js           \
        form/IntegerField.js            \
        form/TextField.js               \
+       form/DateTimeField.js           \
        form/Checkbox.js                \
        form/KVComboBox.js              \
        form/ComboGrid.js               \
diff --git a/form/DateTimeField.js b/form/DateTimeField.js
new file mode 100644 (file)
index 0000000..ddd1e76
--- /dev/null
@@ -0,0 +1,62 @@
+Ext.define('Proxmox.DateTimeField', {
+    extend: 'Ext.form.FieldContainer',
+    xtype: 'promxoxDateTimeField',
+
+    layout: 'hbox',
+
+    referenceHolder: true,
+
+    submitFormat: 'U',
+
+    getValue: function() {
+       var me = this;
+       var d = me.lookupReference('dateentry').getValue();
+
+       if (d === undefined || d === null) { return null; }
+
+       var t = me.lookupReference('timeentry').getValue();
+
+       if (t === undefined || t === null) { return null; }
+
+       var offset = (t.getHours()*3600+t.getMinutes()*60)*1000;
+
+       return new Date(d.getTime() + offset);
+    },
+
+    getSubmitValue: function() {
+        var me = this;
+        var format = me.submitFormat;
+        var value = me.getValue();
+
+        return value ? Ext.Date.format(value, format) : null;
+    },
+
+    items: [
+       {
+           xtype: 'datefield',
+           editable: false,
+           reference: 'dateentry',
+           flex: 1,
+           format: 'Y-m-d'
+       },
+       {
+           xtype: 'timefield',
+           reference: 'timeentry',
+           format: 'H:i',
+           width: 80,
+           value: '00:00',
+           increment: 60
+       }
+    ],
+
+    initComponent: function() {
+       var me = this;
+
+       me.callParent();
+
+       var value = me.value || new Date();
+
+       me.lookupReference('dateentry').setValue(value);
+       me.lookupReference('timeentry').setValue(value);
+    }
+});