]>
git.proxmox.com Git - proxmox-backup.git/blob - www/config/VerifyView.js
91ceec46d41d8efc3f933d3a44ad1779458bfadf
1 Ext
.define('pbs-verify-jobs-status', {
2 extend
: 'Ext.data.Model',
4 'id', 'store', 'outdated-after', 'ignore-verified', 'schedule',
5 'next-run', 'last-run-upid', 'last-run-state', 'last-run-endtime',
8 calculate: function(data
) {
9 let endtime
= data
['last-run-endtime'];
10 if (!endtime
) return undefined;
11 let task
= Proxmox
.Utils
.parse_task_upid(data
['last-run-upid']);
12 return endtime
- task
.starttime
;
19 url
: '/api2/json/admin/verify',
23 Ext
.define('PBS.config.VerifyJobView', {
24 extend
: 'Ext.grid.GridPanel',
25 alias
: 'widget.pbsVerifyJobView',
28 stateId
: 'grid-verify-jobs',
30 title
: gettext('Verify Jobs'),
33 xclass
: 'Ext.app.ViewController',
35 addVerifyJob: function() {
37 Ext
.create('PBS.window.VerifyJobEdit', {
46 editVerifyJob: function() {
48 let view
= me
.getView();
49 let selection
= view
.getSelection();
50 if (selection
.length
< 1) return;
52 Ext
.create('PBS.window.VerifyJobEdit', {
53 id
: selection
[0].data
.id
,
62 openTaskLog: function() {
64 let view
= me
.getView();
65 let selection
= view
.getSelection();
66 if (selection
.length
< 1) return;
68 let upid
= selection
[0].data
['last-run-upid'];
71 Ext
.create('Proxmox.window.TaskViewer', {
76 runVerifyJob: function() {
78 let view
= me
.getView();
79 let selection
= view
.getSelection();
80 if (selection
.length
< 1) return;
82 let id
= selection
[0].data
.id
;
83 Proxmox
.Utils
.API2Request({
85 url
: `/admin/verify/${id}/run`,
86 success: function(response
, opt
) {
87 Ext
.create('Proxmox.window.TaskViewer', {
88 upid
: response
.result
.data
,
89 taskDone: function(success
) {
94 failure: function(response
, opt
) {
95 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
100 render_verify_status: function(value
, metadata
, record
) {
101 if (!record
.data
['last-run-upid']) {
105 if (!record
.data
['last-run-endtime']) {
106 metadata
.tdCls
= 'x-grid-row-loading';
110 let parsed
= Proxmox
.Utils
.parse_task_status(value
);
115 icon
= 'question faded';
116 text
= Proxmox
.Utils
.unknownText
;
119 icon
= 'times critical';
120 text
= Proxmox
.Utils
.errorText
+ ': ' + value
;
123 icon
= 'exclamation warning';
127 text
= gettext("OK");
130 return `<i class="fa fa-${icon}"></i> ${text}`;
133 render_next_run: function(value
, metadat
, record
) {
134 if (!value
) return '-';
136 let now
= new Date();
137 let next
= new Date(value
*1000);
140 return gettext('pending');
142 return Proxmox
.Utils
.render_timestamp(value
);
145 render_optional_timestamp: function(value
, metadata
, record
) {
146 if (!value
) return '-';
147 return Proxmox
.Utils
.render_timestamp(value
);
150 reload: function() { this.getView().getStore().rstore
.load(); },
152 init: function(view
) {
153 Proxmox
.Utils
.monStoreErrors(view
, view
.getStore().rstore
);
159 itemdblclick
: 'editVerifyJob',
165 autoDestroyRstore
: true,
169 storeid
: 'pbs-verify-jobs-status',
170 model
: 'pbs-verify-jobs-status',
178 xtype
: 'proxmoxButton',
179 text
: gettext('Add'),
180 handler
: 'addVerifyJob',
184 xtype
: 'proxmoxButton',
185 text
: gettext('Edit'),
186 handler
: 'editVerifyJob',
190 xtype
: 'proxmoxStdRemoveButton',
191 baseurl
: '/config/verify/',
196 xtype
: 'proxmoxButton',
197 text
: gettext('Log'),
198 handler
: 'openTaskLog',
199 enableFn
: (rec
) => !!rec
.data
['last-run-upid'],
203 xtype
: 'proxmoxButton',
204 text
: gettext('Run now'),
205 handler
: 'runVerifyJob',
216 header
: gettext('Verify Job'),
219 renderer
: Ext
.String
.htmlEncode
,
223 header
: gettext('Datastore'),
229 header
: gettext('Days valid'),
232 dataIndex
: 'outdated-after',
235 header
: gettext('Ignore verified'),
238 renderer
: Proxmox
.Utils
.format_boolean
,
239 dataIndex
: 'ignore-verified',
242 header
: gettext('Schedule'),
244 dataIndex
: 'schedule',
247 header
: gettext('Status'),
248 dataIndex
: 'last-run-state',
250 renderer
: 'render_verify_status',
253 header
: gettext('Last Verification'),
256 renderer
: 'render_optional_timestamp',
257 dataIndex
: 'last-run-endtime',
260 text
: gettext('Duration'),
261 dataIndex
: 'duration',
263 renderer
: Proxmox
.Utils
.render_duration
,
266 header
: gettext('Next Run'),
269 renderer
: 'render_next_run',
270 dataIndex
: 'next-run',
273 header
: gettext('Comment'),
276 renderer
: Ext
.String
.htmlEncode
,
277 dataIndex
: 'comment',