]>
git.proxmox.com Git - pmg-gui.git/blob - js/SpamQuarantine.js
1 Ext
.define('pmg-spam-archive', {
2 extend
: 'Ext.data.Model',
4 { type
: 'number', name
: 'spamavg' },
5 { type
: 'integer', name
: 'count' },
6 { type
: 'date', dateFormat
: 'timestamp', name
: 'day' }
10 url
: "/api2/json/quarantine/spam"
15 Ext
.define('PMG.SpamArchive', {
16 extend
: 'Ext.grid.GridPanel',
17 xtype
: 'pmgSpamArchive',
21 xclass
: 'Ext.app.ViewController',
23 init: function(view
) {
25 callback: function() {
26 view
.getSelectionModel().select(0);
33 model
: 'pmg-spam-archive'
39 header
: gettext('Date'),
45 header
: gettext('Count'),
50 header
: gettext('Spam level'),
57 Ext
.define('pmg-spam-list', {
58 extend
: 'Ext.data.Model',
59 fields
: [ 'id', 'envelope_sender', 'from', 'sender', 'receiver', 'subject',
60 { type
: 'number', name
: 'spamlevel' },
61 { type
: 'integer', name
: 'bytes' },
62 { type
: 'date', dateFormat
: 'timestamp', name
: 'time' }
70 Ext
.define('PMG.SpamList', {
71 extend
: 'Ext.grid.GridPanel',
74 setDay: function(day
) {
77 me
.setTitle(Ext
.Date
.format(day
, "F j Y"));
79 url
: "/api2/json/quarantine/spam/" + (day
.getTime() / 1000)
84 model
: 'pmg-spam-list',
89 text
: gettext('Whitelist')
92 text
: gettext('Blacklist')
95 text
: gettext('Deliver')
98 text
: gettext('Delete')
104 header
: gettext('Sender/Subject'),
105 dataIndex
: 'subject',
106 renderer: function(value
, metaData
, rec
) {
107 var subject
= Ext
.htmlEncode(value
);
108 var from = Ext
.htmlEncode(rec
.data
.from);
109 var sender
= Ext
.htmlEncode(rec
.data
.sender
);
111 from = Ext
.String
.format(gettext("{0} on behalf of {1}"),
114 return '<small>' + from + '</small><br>' + subject
;
119 header
: gettext('Level'),
120 dataIndex
: 'spamlevel'
123 header
: gettext('Size (KB)'),
124 renderer: function(v
) { return Ext
.Number
.toFixed(v
/1024, 0); },
129 header
: gettext('Arrival Time'),
136 Ext
.define('PMG.SpamQuarantine', {
137 extend
: 'Ext.container.Container',
138 xtype
: 'pmgSpamQuarantine',
143 defaults
: { border
: false },
147 xclass
: 'Ext.app.ViewController',
149 init: function(view
) {
152 onSelectDay: function() {
153 var view
= this.getView();
155 var grid
= this.lookupReference('archive');
156 var rec
= grid
.selModel
.getSelection()[0];
158 if (!rec
|| !rec
.data
|| !rec
.data
.day
) return;
160 var spamlist
= this.lookupReference('spamlist');
161 spamlist
.setDay(rec
.data
.day
);
164 onSelectMail: function() {
165 var spamlist
= this.lookupReference('spamlist');
166 var rec
= spamlist
.selModel
.getSelection()[0];
168 var preview
= this.lookupReference('preview');
170 if (!rec
|| !rec
.data
|| !rec
.data
.id
) {
175 var url
= '/api2/htmlmail/quarantine/content?id=' + rec
.data
.id
;
176 preview
.update("<iframe frameborder=0 width=100% height=100% src='" + url
+"'></iframe>");
182 xtype
: 'pmgSpamArchive',
183 reference
: 'archive',
189 selectionChange
: 'onSelectDay'
195 layout
: { type
: 'vbox', align
: 'stretch' },
198 xtype
: 'pmgSpamList',
199 reference
: 'spamlist',
202 selectionChange
: 'onSelectMail'
208 reference
: 'preview',