with 3 modes; - CT managed (no action) - match host (use same timezone as host) - select from list
also move 'UTC' to the top of the TimezoneStore for convenience Signed-off-by: Oguz Bektas <o.bek...@proxmox.com> --- v1->v2: no changes src/Makefile | 1 + src/data/TimezoneStore.js | 2 +- src/panel/TimezonePanel.js | 73 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 src/panel/TimezonePanel.js diff --git a/src/Makefile b/src/Makefile index 659e876..e1a31e8 100644 --- a/src/Makefile +++ b/src/Makefile @@ -38,6 +38,7 @@ JSSRC= \ panel/JournalView.js \ panel/RRDChart.js \ panel/GaugeWidget.js \ + panel/TimezonePanel.js \ window/Edit.js \ window/PasswordEdit.js \ window/TaskViewer.js \ diff --git a/src/data/TimezoneStore.js b/src/data/TimezoneStore.js index a67ad8b..fcaca3e 100644 --- a/src/data/TimezoneStore.js +++ b/src/data/TimezoneStore.js @@ -7,6 +7,7 @@ Ext.define('Proxmox.data.TimezoneStore', { extend: 'Ext.data.Store', model: 'Timezone', data: [ + ['UTC'], ['Africa/Abidjan'], ['Africa/Accra'], ['Africa/Addis_Ababa'], @@ -414,6 +415,5 @@ Ext.define('Proxmox.data.TimezoneStore', { ['Pacific/Tongatapu'], ['Pacific/Wake'], ['Pacific/Wallis'], - ['UTC'], ], }); diff --git a/src/panel/TimezonePanel.js b/src/panel/TimezonePanel.js new file mode 100644 index 0000000..5ebac65 --- /dev/null +++ b/src/panel/TimezonePanel.js @@ -0,0 +1,73 @@ +Ext.define('PVE.panel.TimezonePanel', { + extend: 'Proxmox.panel.InputPanel', + alias: 'widget.PVETimezonePanel', + + insideWizard: false, + + setValues: function(values) { + var me = this; + + if (!values.timezone) { + delete values.tzmode; + } else if (values.timezone === 'host') { + values.tzmode = 'host'; + } else { + values.tzmode = 'select'; + } + return me.callParent([values]); + }, + + onGetValues: function(values) { + var me = this; + var deletes = []; + if (!values.tzmode) { + deletes.push('timezone'); + } else if (values.tzmode === 'host') { + values.timezone = 'host'; + } + delete values.tzmode; + if (deletes.length > 0) { + values.delete = deletes; + } + + return values; + }, + + items: [ + { + xtype: 'proxmoxKVComboBox', + name: 'tzmode', + fieldLabel: gettext('Time zone mode'), + value: '__default__', + comboItems: [ + ['__default__', 'CT managed'], + ['host', 'use host settings'], + ['select', 'choose from list'], + ], + listeners: { + change: function(kvcombo, newValue, oldValue, eOpts) { + var combo = kvcombo.up('form').down('#tzlistcombo'); + if (newValue === 'select') { + combo.enable(); + } else if (newValue !== 'select') { + combo.disable(); + } + }, + }, + }, + { + xtype: 'combobox', + itemId: 'tzlistcombo', + fieldLabel: gettext('Time zone'), + disabled: true, + name: 'timezone', + queryMode: 'local', + store: Ext.create('Proxmox.data.TimezoneStore'), + displayField: 'zone', + editable: true, + anyMatch: true, + forceSelection: true, + allowBlank: false, + }, + ], +}); -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel