]> git.proxmox.com Git - pve-manager-legacy.git/commitdiff
copy dc/Tasks.js from manager to manager5
authorDietmar Maurer <dietmar@proxmox.com>
Wed, 27 May 2015 14:24:25 +0000 (16:24 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 27 May 2015 14:24:25 +0000 (16:24 +0200)
www/manager5/dc/Tasks.js [new file with mode: 0644]

diff --git a/www/manager5/dc/Tasks.js b/www/manager5/dc/Tasks.js
new file mode 100644 (file)
index 0000000..25fd51b
--- /dev/null
@@ -0,0 +1,131 @@
+Ext.define('PVE.dc.Tasks', {
+    extend: 'Ext.grid.GridPanel',
+
+    alias: ['widget.pveClusterTasks'],
+
+    initComponent : function() {
+       var me = this;
+
+       var taskstore = new PVE.data.UpdateStore({
+           storeid: 'pve-cluster-tasks',
+           model: 'pve-tasks',
+           proxy: {
+                type: 'pve',
+               url: '/api2/json/cluster/tasks'
+           },
+           sorters: [
+               {
+                   property : 'starttime',
+                   direction: 'DESC'
+               }
+           ]
+       });
+
+       var store = Ext.create('PVE.data.DiffStore', { 
+           rstore: taskstore,
+           appendAtStart: true 
+       });
+
+       var run_task_viewer = function() {
+           var sm = me.getSelectionModel();
+           var rec = sm.getSelection()[0];
+           if (!rec) {
+               return;
+           }
+
+           var win = Ext.create('PVE.window.TaskViewer', { 
+               upid: rec.data.upid
+           });
+           win.show();
+       };
+
+       Ext.apply(me, {
+           store: store,
+           stateful: false,
+
+           viewConfig: {
+               trackOver: false,
+               stripeRows: false, // does not work with getRowClass()
+               getRowClass: function(record, index) {
+                   var status = record.get('status');
+
+                   if (status && status != 'OK') {
+                       return "x-form-invalid-field";
+                   }
+               }
+           },
+           sortableColumns: false,
+           columns: [
+               { 
+                   header: gettext("Start Time"), 
+                   dataIndex: 'starttime',
+                   width: 100,
+                   renderer: function(value) { 
+                       return Ext.Date.format(value, "M d H:i:s"); 
+                   }
+               },
+               { 
+                   header: gettext("End Time"), 
+                   dataIndex: 'endtime',
+                   width: 100,
+                   renderer: function(value, metaData, record) {
+                       if (record.data.pid) {
+                           if (record.data.type == "vncproxy" || 
+                               record.data.type == "vncshell" ||
+                               record.data.type == "spiceproxy") {
+                               metaData.tdCls =  "x-grid-row-console";
+                           } else {
+                               metaData.tdCls =  "x-grid-row-loading";
+                           }
+                           return "";
+                       }
+                       return Ext.Date.format(value, "M d H:i:s"); 
+                   }
+               },
+               { 
+                   header: gettext("Node"), 
+                   dataIndex: 'node',
+                   width: 100
+               },
+               { 
+                   header: gettext("User name"), 
+                   dataIndex: 'user',
+                   width: 150
+               },
+               { 
+                   header: gettext("Description"), 
+                   dataIndex: 'upid', 
+                   flex: 1,              
+                   renderer: PVE.Utils.render_upid
+               },
+               { 
+                   header: gettext("Status"), 
+                   dataIndex: 'status', 
+                   width: 200,
+                   renderer: function(value, metaData, record) { 
+                       if (record.data.pid) {
+                           if (record.data.type != "vncproxy") {
+                               metaData.tdCls =  "x-grid-row-loading";
+                           }
+                           return "";
+                       }
+                       if (value == 'OK') {
+                           return 'OK';
+                       }
+                       // metaData.attr = 'style="color:red;"'; 
+                       return PVE.Utils.errorText + ': ' + value;
+                   }
+               }
+           ],
+           listeners: {
+               itemdblclick: run_task_viewer,
+               show: taskstore.startUpdate,
+               hide: taskstore.stopUpdate,
+               destroy: taskstore.stopUpdate
+           }
+       });
+
+       me.callParent();
+    }
+});
\ No newline at end of file