X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=www%2Fmanager6%2Fwindow%2FScheduleSimulator.js;h=104e93c9c6f51774044a3c4e35073af72cf9501d;hb=9ed1408b096640f1d50293f222e9dd6c088bbd97;hp=c271f9c35a411d70c529626bcc78a7f2e8580ec2;hpb=584a57ea3c7d29a6729310785c11a861eb08ec06;p=pve-manager.git diff --git a/www/manager6/window/ScheduleSimulator.js b/www/manager6/window/ScheduleSimulator.js index c271f9c3..104e93c9 100644 --- a/www/manager6/window/ScheduleSimulator.js +++ b/www/manager6/window/ScheduleSimulator.js @@ -1,11 +1,22 @@ Ext.define('PVE.window.ScheduleSimulator', { extend: 'Ext.window.Window', - title: gettext('Simulate Schedule'), + title: gettext('Job Schedule Simulator'), + + viewModel: { + data: { + simulatedOnce: false, + }, + formulas: { + gridEmptyText: get => get('simulatedOnce') ? Proxmox.Utils.NoneText : gettext('No simulation done'), + }, + }, controller: { xclass: 'Ext.app.ViewController', - close: function() { this.getView().close(); }, + close: function() { + this.getView().close(); + }, simulate: function() { let me = this; let schedule = me.lookup('schedule').getValue(); @@ -20,12 +31,15 @@ Ext.define('PVE.window.ScheduleSimulator', { schedule, iterations, }, - failure: function(response, opts) { + failure: response => { + me.getViewModel().set('simulatedOnce', true); + me.lookup('grid').getStore().setData([]); Ext.Msg.alert(gettext('Error'), response.htmlStatus); }, success: function(response) { let schedules = response.result.data; me.lookup('grid').getStore().setData(schedules); + me.getViewModel().set('simulatedOnce', true); }, }); }, @@ -34,9 +48,14 @@ Ext.define('PVE.window.ScheduleSimulator', { this.lookup('simulateBtn').setDisabled(!value); }, - renderTimestamp: function(value) { + renderDate: function(value) { + let date = new Date(value*1000); + return date.toLocaleDateString(); + }, + + renderTime: function(value) { let date = new Date(value*1000); - return date.toLocaleString(); + return date.toLocaleTimeString(); }, init: function(view) { @@ -68,19 +87,28 @@ Ext.define('PVE.window.ScheduleSimulator', { }, { xtype: 'proxmoxintegerfield', + reference: 'iterations', + fieldLabel: gettext('Iterations'), minValue: 1, maxValue: 100, value: 10, - reference: 'iterations', - fieldLabel: gettext('Iterations'), }, { - xtype: 'button', - reference: 'simulateBtn', - text: gettext('Simulate'), - handler: 'simulate', - align: 'right', - disabled: true, + xtype: 'container', + layout: 'hbox', + items: [ + { + xtype: 'box', + flex: 1, + }, + { + xtype: 'button', + reference: 'simulateBtn', + text: gettext('Simulate'), + handler: 'simulate', + disabled: true, + }, + ], }, ], @@ -88,14 +116,23 @@ Ext.define('PVE.window.ScheduleSimulator', { { xtype: 'grid', reference: 'grid', - emptyText: Proxmox.Utils.NoneText, + bind: { + emptyText: '{gridEmptyText}', + }, scrollable: true, height: 300, columns: [ { - text: gettext('Local Time'), - renderer: 'renderTimestamp', + text: gettext('Date'), + renderer: 'renderDate', + dataIndex: 'timestamp', + flex: 1, + }, + { + text: gettext('Time'), + renderer: 'renderTime', dataIndex: 'timestamp', + align: 'right', flex: 1, }, ], @@ -111,7 +148,7 @@ Ext.define('PVE.window.ScheduleSimulator', { buttons: [ { - text: gettext('OK'), + text: gettext('Done'), handler: 'close', }, ],