node/apt updates: show full package description conditionally

The full package description is often quite long, and for upgrades
it's not relevant most of the time. But, it can be intresting to
have, if one wonders what a package is even used for.
So add a checkbox in the top bar which allows to switch between
showing and hiding the description, simply done by re-using the
'grid-row-body-hidden' ExtJS CSS class (got the idea from the
RowBody feature source code).
Default it to off, as it's better to not overwhelm users here with a
huge pile of text by default, showing the list of package with the
short one line title is enough most of the times, I'd guess.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Tested-by: Tim Marx <t.marx@proxmox.com>
This commit is contained in:
Thomas Lamprecht 2019-06-03 12:59:28 +02:00
parent acfbf25527
commit 6895e13f39

View File

@ -75,11 +75,11 @@ Ext.define('Proxmox.node.APT', {
getAdditionalData: function (data, rowIndex, record, orig) { getAdditionalData: function (data, rowIndex, record, orig) {
var headerCt = this.view.headerCt; var headerCt = this.view.headerCt;
var colspan = headerCt.getColumnCount(); var colspan = headerCt.getColumnCount();
// Usually you would style the my-body-class in CSS file
return { return {
rowBody: '<div style="padding: 1em">' + rowBody: '<div style="padding: 1em">' +
Ext.String.htmlEncode(data.Description) + Ext.String.htmlEncode(data.Description) +
'</div>', '</div>',
rowBodyCls: me.full_description ? '' : Ext.baseCSSPrefix + 'grid-row-body-hidden',
rowBodyColspan: colspan rowBodyColspan: colspan
}; };
} }
@ -178,10 +178,21 @@ Ext.define('Proxmox.node.APT', {
} }
}); });
var verbose_desc_checkbox = new Ext.form.field.Checkbox({
boxLabel: gettext('Show details'),
value: false,
listeners: {
change: (f, val) => {
me.full_description = val;
me.getView().refresh();
}
}
});
if (me.upgradeBtn) { if (me.upgradeBtn) {
me.tbar = [ update_btn, me.upgradeBtn, changelog_btn ]; me.tbar = [ update_btn, me.upgradeBtn, changelog_btn, '->', verbose_desc_checkbox ];
} else { } else {
me.tbar = [ update_btn, changelog_btn ]; me.tbar = [ update_btn, changelog_btn, '->', verbose_desc_checkbox ];
} }
Ext.apply(me, { Ext.apply(me, {