proxmox-backup/www/button/TaskButton.js
Thomas Lamprecht 0656344ae4 ui: administration: set icons for tabs
orient on PVE, the ones for Updates, ServerStatus, should by
self-explanatory.

Services is in PVE named "System", but reusing that cogs icon makes
similar sense here too, and seems in line with search result of a
"service icons" query.

Syslog is the same as our general log icon, but as we also use this
normally for worker task logs and that is present here too, I
changed the worker task log icon to the alternative list, which
resembles a task view window - so IMO even better than before.

Sync that change also into the always present tasks button at the top
right.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-31 09:11:11 +01:00

93 lines
1.9 KiB
JavaScript

Ext.define('PBS.TaskButton', {
extend: 'Ext.button.Button',
alias: 'widget.pbsTaskButton',
config: {
badgeText: '0',
badgeCls: '',
},
iconCls: 'fa fa-list-alt',
userCls: 'pmx-has-badge',
text: gettext('Tasks'),
setText: function(value) {
let me = this;
me.realText = value;
let badgeText = me.getBadgeText();
let badgeCls = me.getBadgeCls();
let text = `${value} <span class="pmx-button-badge ${badgeCls}">${badgeText}</span>`;
return me.callParent([text]);
},
getText: function() {
let me = this;
return me.realText;
},
setBadgeText: function(value) {
let me = this;
me.badgeText = value.toString();
return me.setText(me.getText());
},
setBadgeCls: function(value) {
let me = this;
let res = me.callParent([value]);
let badgeText = me.getBadgeText();
me.setBadgeText(badgeText);
return res;
},
handler: function() {
let me = this;
if (me.grid.isVisible()) {
me.grid.setVisible(false);
} else {
me.grid.showBy(me, 'tr-br');
}
},
initComponent: function() {
let me = this;
me.grid = Ext.create({
xtype: 'pbsRunningTasks',
title: '',
hideHeaders: false,
floating: true,
width: 600,
bbar: [
'->',
{
xtype: 'button',
text: gettext('Show All Tasks'),
handler: function() {
var mainview = me.up('mainview');
mainview.getController().redirectTo('pbsServerAdministration:tasks');
me.grid.hide();
},
},
],
listeners: {
'taskopened': function() {
me.grid.hide();
},
},
});
me.callParent();
me.mon(me.grid.getStore().rstore, 'load', function(store, records, success) {
if (!success) return;
let count = records.length;
let text = count > 99 ? '99+' : count.toString();
let cls = count > 0 ? 'active': '';
me.setBadgeText(text);
me.setBadgeCls(cls);
});
},
});