[pve-devel] [PATCH v2 widget-toolkit 1/1] repo view: replace non-clickable checkbox with icons
Thomas Lamprecht
t.lamprecht at proxmox.com
Tue Jan 24 16:24:55 CET 2023
Am 23/01/2023 um 14:17 schrieb Lukas Wagner:
> From a usability view, having a checkbox that is not clickable is pretty
> misleading, especially if the visual style is exactly the same as in
> other places in the UI where the checkbox is functional.
>
> Signed-off-by: Lukas Wagner <l.wagner at proxmox.com>
> ---
> src/Utils.js | 6 ++++++
> src/node/APTRepositories.js | 8 ++++----
> 2 files changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/src/Utils.js b/src/Utils.js
> index ef0c2b8..5397fd9 100644
> --- a/src/Utils.js
> +++ b/src/Utils.js
> @@ -100,6 +100,11 @@ utilities: {
> return value;
> },
>
> + render_enabled_icon: function(value) {
> + let icon = value ? 'fa-check' : 'fa-minus';
> + return `<i class="fa ${icon}"></i>`;
> + },
I know casing is all over the place, but ExtJS uses camelCase and we interact
with it a lot, so I'd favor adding new stuff as camelCase over, e.g., snake_case.
For this here an arrow function might be worth it, e.g.:
renderEnabledIcon: enabled => `<i class="fa fa-${enabled ? 'check' : 'minus'}"></i>`,
btw. maybe it's really time to start a "Format" or "Render" class and move all
those renderer out from Utils; but the burden of doing so really shouldn't be the
one from this series.
> +
> language_array: function() {
> let data = [['__default__', Proxmox.Utils.render_language('')]];
> Ext.Object.each(Proxmox.Utils.language_map, function(key, value) {
> @@ -145,6 +150,7 @@ utilities: {
> return value ? Proxmox.Utils.enabledText : Proxmox.Utils.disabledText;
> },
>
> +
spurious new line added.
> format_expire: function(date) {
> if (!date) {
> return Proxmox.Utils.neverText;
> diff --git a/src/node/APTRepositories.js b/src/node/APTRepositories.js
> index ce8f718..c6b45a2 100644
> --- a/src/node/APTRepositories.js
> +++ b/src/node/APTRepositories.js
> @@ -239,11 +239,11 @@ Ext.define('Proxmox.node.APTRepositoriesGrid', {
>
> columns: [
> {
> - xtype: 'checkcolumn',
> header: gettext('Enabled'),
> - dataIndex: 'Enabled',
> - listeners: {
> - beforecheckchange: () => false, // veto, we don't want to allow inline change - to subtle
> + dataindex: 'Enabled',
> + align: 'center',
> + renderer: function(enabled, cell, record) {
> + return Proxmox.Utils.render_enabled_icon(record.data.Enabled);
> },
could be a one liner without losing clarity:
renderer: ({data}) => Proxmox.Utils.renderEnabledIcon(data.Enabled),
> width: 90,
> },
More information about the pve-devel
mailing list