X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=js%2FMailTracker.js;h=76fe949e5d1971996a247124c1d6010e48125eb9;hb=00ac25c188a4fc2021c0843f1c3ff1cc1166031d;hp=c5151998368a60da95c2632eac691c85662b4894;hpb=cf2485332b812843380a6cc95ab8881671b19406;p=pmg-gui.git diff --git a/js/MailTracker.js b/js/MailTracker.js index c515199..76fe949 100644 --- a/js/MailTracker.js +++ b/js/MailTracker.js @@ -1,3 +1,4 @@ +/*global Proxmox*/ Ext.define('pmg-mail-tracker', { extend: 'Ext.data.Model', fields: [ @@ -8,7 +9,9 @@ Ext.define('pmg-mail-tracker', { proxy: { type: 'proxmox' }, - idProperty: 'id' + // do not use field 'id', because "id/to" is the unique Id + // this way we display an entry for each receiver + idProperty: 'none' }); @@ -95,17 +98,28 @@ Ext.define('PMG.MailTrackerFilter', { value: (function() { var now = new Date(); return new Date(now.getTime() - 3600000); - })(), + }()), xtype: 'promxoxDateTimeField' }, { fieldLabel: gettext('End'), reference: 'endtime', listeners: { change: 'onFilterChange' }, + value: (function() { + var now = new Date(); + var tomorrow = new Date(); + tomorrow.setDate(now.getDate()+1); + tomorrow.setHours(0); + tomorrow.setMinutes(0); + tomorrow.setSeconds(0); + return tomorrow; + }()), xtype: 'promxoxDateTimeField' }, { - layout: 'hbox', + layout: { + type: 'hbox' + }, border: false, items: [ { @@ -144,7 +158,9 @@ Ext.define('PMG.MaiLogWindow', { height: 400, scrollable: true, - layout: 'auto', + layout: { + type: 'auto' + }, modal: true, bodyPadding: 5, @@ -202,10 +218,24 @@ Ext.define('PMG.MailTracker', { border: false, emptyText: gettext('No data in database.'), + disableSelection: true, + viewConfig: { - deferEmptyText: false + deferEmptyText: false, + enableTextSelection: true, + getRowClass: function(record, index) { + var status = record.data.rstatus || record.data.dstatus; + return PMG.Utils.mail_status_map[status]; + } }, + plugins: [ + { + ptype: 'rowexpander', + rowBodyTpl: '
{logs}
' + } + ], + store: { autoDestroy: true, model: 'pmg-mail-tracker' @@ -235,22 +265,36 @@ Ext.define('PMG.MailTracker', { }); }, - showDetails: function() { + showDetails: function(rowNode, record) { var view = this.getView(); - var sm = view.getSelectionModel(); - var rec = sm.getSelection()[0]; - if (!rec) { - return; - } var params = view.store.proxy.getExtraParams(); - var win = Ext.create('PMG.MaiLogWindow', { - starttime: params.starttime, - endtime: params.endtime, - logid: rec.data.id + Proxmox.Utils.API2Request({ + method: 'GET', + params: { starttime: params.starttime, endtime: params.endtime }, + url: '/nodes/' + Proxmox.NodeName + '/tracker/' + record.data.id, + waitMsgTarget: view, + failure: function(response, opts) { + record.set('logs',gettext('Error') + " " + response.htmlStatus); + }, + success: function(response, opts) { + var data = response.result.data; + var logs = ""; + + Ext.Array.each(data.logs, function(line) { + logs += Ext.htmlEncode(line) + "