]>
git.proxmox.com Git - pmg-gui.git/blob - js/ClamAVDatabase.js
2 Ext
.define('PMG.ClamAVDatabaseConfig', {
3 extend
: 'Proxmox.grid.ObjectGrid',
4 alias
: ['widget.pmgClamAVDatabaseConfig'],
8 initComponent: function() {
11 me
.add_text_row('dbmirror', gettext('Database Mirror'),
12 { deleteEmpty
: true, defaultValue
: 'database.clamav.net' });
14 /*jslint confusion: true*/
15 /*defaultValue is a string above*/
16 me
.add_boolean_row('safebrowsing', gettext('Google Safe Browsing'),
18 me
.add_boolean_row('scriptedupdates', gettext('Incremental Download'),
20 /*jslint confusion: false*/
22 var baseurl
= '/config/clamav';
25 url
: '/api2/json' + baseurl
,
27 url
: '/api2/extjs' + baseurl
,
28 onlineHelp
: 'pmgconfig_clamav',
33 itemdblclick
: me
.run_editor
,
39 me
.on('activate', me
.rstore
.startUpdate
);
40 me
.on('destroy', me
.rstore
.stopUpdate
);
41 me
.on('deactivate', me
.rstore
.stopUpdate
);
45 Ext
.define('pmg-clamav-database', {
46 extend
: 'Ext.data.Model',
47 fields
: ['name', 'type', 'build_time', 'version',
48 { name
: 'nsigs', type
: 'integer' }],
52 Ext
.define('PMG.ClamAVDatabaseStatus', {
53 extend
: 'Ext.grid.GridPanel',
54 alias
: ['widget.pmgClamAVDatabaseStatus'],
56 title
: gettext('Status'),
64 initComponent: function() {
67 me
.store
= new Ext
.data
.Store({
68 model
: 'pmg-clamav-database',
71 url
: "/api2/json/nodes/" + Proxmox
.NodeName
+ "/clamav/database",
85 header
: gettext('Name'),
91 header
: gettext('Build time'),
94 dataIndex
: 'build_time',
97 header
: gettext('Version'),
100 dataIndex
: 'version',
103 header
: gettext('Signatures'),
116 /*jslint confusion: true*/
117 /*monStoreErrors is a bool above*/
118 Proxmox
.Utils
.monStoreErrors(me
.getView(), me
.store
, true);
119 /*jslint confusion: false*/
123 Ext
.define('PMG.ClamAVDatabase', {
124 extend
: 'Ext.panel.Panel',
125 alias
: ['widget.pmgClamAVDatabase'],
127 layout
: { type
: 'vbox', align
: 'stretch' },
129 initComponent: function() {
132 var selModel
= Ext
.create('Ext.selection.RowModel', {});
133 var editPanel
= Ext
.create('PMG.ClamAVDatabaseConfig', {
135 xtype
: 'pmgClamAVDatabaseConfig',
139 var statusPanel
= Ext
.create('PMG.ClamAVDatabaseStatus', {
144 var update_command = function() {
145 Proxmox
.Utils
.API2Request({
146 url
: '/nodes/' + Proxmox
.NodeName
+ '/clamav/database',
148 failure: function(response
, opts
) {
149 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
151 success: function(response
, opts
) {
152 var upid
= response
.result
.data
;
154 var win
= Ext
.create('Proxmox.window.TaskViewer', {
158 me
.mon(win
, 'close', function() { statusPanel
.reload(); });
165 text
: gettext('Edit'),
166 xtype
: 'proxmoxButton',
168 handler: function() { editPanel
.run_editor(); },
172 text
: gettext('Update now'),
173 handler
: update_command
,
177 me
.items
= [editPanel
, statusPanel
];
181 editPanel
.relayEvents(me
, ['activate', 'deactivate', 'destroy']);
182 statusPanel
.relayEvents(me
, ['activate', 'deactivate', 'destroy']);