]>
git.proxmox.com Git - pmg-gui.git/blob - js/QuarantineList.js
1 Ext
.define('PMG.QuarantineList', {
2 extend
: 'Ext.grid.GridPanel',
3 xtype
: 'pmgQuarantineList',
5 emptyText
: gettext('No E-Mail address selected'),
11 emailSelection
: false,
12 notFoundText
: gettext('No data in database.')
17 xclass
: 'Ext.app.ViewController',
19 init: function(view
) {
21 if (PMG
.view
=== 'quarantineview') {
22 view
.emailSelection
= false;
25 var emailCombobox
= me
.lookupReference('email');
26 emailCombobox
.setVisible(view
.emailSelection
);
27 emailCombobox
.setDisabled(!view
.emailSelection
);
29 // we to this to trigger the change event of those fields
30 var today
= new Date();
31 me
.lookupReference('from').setValue(today
);
32 me
.lookupReference('to').setValue(today
);
34 Proxmox
.Utils
.monStoreErrors(view
.getView(), view
.getStore());
37 view
.setSelection(view
.getStore().getById(view
.cselect
));
41 // extjs has no method to dynamically change the emptytext on
42 // grids, so we have to do it this way
43 setEmptyText: function(emptyText
) {
45 var view
= me
.getView();
46 var tableview
= view
.getView();
47 tableview
.emptyText
= '<div class="x-grid-empty">'+ (emptyText
|| view
.notFoundText
) + '</div>';
50 load: function(callback
) {
52 var view
= me
.getView();
53 if (view
.emailSelection
) {
54 if (!me
.lookupReference('email').getSelection()) {
55 // if the combobox has no selection we do not reload
60 view
.getStore().load(callback
);
63 setFrom: function(from) {
64 var me
= this.getView();
65 var params
= me
.getStore().getProxy().getExtraParams();
66 params
.starttime
= from;
67 me
.getStore().getProxy().setExtraParams(params
);
71 var me
= this.getView();
72 var params
= me
.getStore().getProxy().getExtraParams();
74 me
.getStore().getProxy().setExtraParams(params
);
77 setUser: function(user
) {
78 var me
= this.getView();
79 var params
= me
.getStore().getProxy().getExtraParams();
81 me
.getStore().getProxy().setExtraParams(params
);
85 changeTime: function(field
, value
) {
87 var list
= me
.getView();
93 var val
= value
.getTime()/1000;
94 var combobox
= me
.lookupReference('email');
95 var params
= combobox
.getStore().getProxy().getExtraParams();
97 var to
= me
.lookupReference('to');
98 var from = me
.lookupReference('from');
100 if (field
.name
=== 'from') {
102 params
.starttime
= val
;
103 to
.setMinValue(value
);
105 } else if (field
.name
=== 'to') {
106 me
.setTo(val
+ 24*60*60);
107 params
.endtime
= val
+ 24*60*60;
108 from.setMaxValue(value
);
113 // the combobox does not know anything about the extraparams
114 // so we disable queryCaching until we expand (and query) again
115 combobox
.queryCaching
= false;
116 combobox
.getStore().getProxy().setExtraParams(params
);
121 resetEmail: function() {
123 var view
= me
.getView();
124 if (view
.emailSelection
) {
125 me
.setUser(undefined);
129 changeEmail: function(tb
, value
) {
135 setQueryCaching: function() {
136 this.lookupReference('email').queryCaching
= true;
141 beforedestroy
: 'resetEmail',
143 'combobox[reference=email]': {
148 expand
: 'setQueryCaching'
162 groupHeaderTpl
: '{columnName}: {name} ({children.length})'
176 fieldLabel
: gettext('From'),
183 fieldLabel
: gettext('To'),
192 displayField
: 'mail',
196 '<div class="x-grid-empty">' +
197 gettext('No Data in Database') +
203 url
: '/api2/json/quarantine/spamusers'
208 renderer
: Ext
.htmlEncode