ui: tape/ChangerStatus: show the state of the drive

an optimize the columns for smaller layouts (1280 width)
we show either:
* Idle
* spinner + status (if no upid)
* spinner + rendered UPID (clickable, opens task viewer)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2021-02-18 15:40:30 +01:00 committed by Dietmar Maurer
parent 926d05ef0b
commit 0d890ec414
1 changed files with 46 additions and 1 deletions

View File

@ -498,6 +498,42 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
} }
return status; return status;
}, },
renderState: function(value, md, record) {
if (!value) {
return gettext('Idle');
}
let icon = '<i class="fa fa-spinner fa-pulse fa-fw"></i>';
if (value.startsWith("UPID")) {
let upid = Proxmox.Utils.parse_task_upid(value);
md.tdCls = "pointer";
return `${icon} ${upid.desc}`;
}
return `${icon} ${value}`;
},
control: {
'grid[reference=drives]': {
cellclick: function(table, td, ci, rec, tr, ri, e) {
if (!e.position.column.dataIndex === 'state') {
return;
}
let upid = rec.data.state;
if (!upid || !upid.startsWith("UPID")) {
return;
}
Ext.create('Proxmox.window.TaskViewer', {
autoShow: true,
upid,
});
},
},
},
}, },
listeners: { listeners: {
@ -641,7 +677,7 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
text: gettext('Inventory'), text: gettext('Inventory'),
dataIndex: 'is-labeled', dataIndex: 'is-labeled',
renderer: 'renderIsLabeled', renderer: 'renderIsLabeled',
flex: 1, flex: 1.5,
}, },
{ {
text: gettext("Name"), text: gettext("Name"),
@ -650,10 +686,17 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
flex: 1, flex: 1,
renderer: Ext.htmlEncode, renderer: Ext.htmlEncode,
}, },
{
text: gettext('State'),
dataIndex: 'state',
flex: 3,
renderer: 'renderState',
},
{ {
text: gettext("Vendor"), text: gettext("Vendor"),
sortable: true, sortable: true,
dataIndex: 'vendor', dataIndex: 'vendor',
hidden: true,
flex: 1, flex: 1,
renderer: Ext.htmlEncode, renderer: Ext.htmlEncode,
}, },
@ -661,6 +704,7 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
text: gettext("Model"), text: gettext("Model"),
sortable: true, sortable: true,
dataIndex: 'model', dataIndex: 'model',
hidden: true,
flex: 1, flex: 1,
renderer: Ext.htmlEncode, renderer: Ext.htmlEncode,
}, },
@ -668,6 +712,7 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
text: gettext("Serial"), text: gettext("Serial"),
sortable: true, sortable: true,
dataIndex: 'serial', dataIndex: 'serial',
hidden: true,
flex: 1, flex: 1,
renderer: Ext.htmlEncode, renderer: Ext.htmlEncode,
}, },