[pbs-devel] [PATCH proxmox-backup v2] fix #5422: ui: garbage-collection: make columns sortable

Max Carrara m.carrara at proxmox.com
Tue May 21 11:25:50 CEST 2024


On Thu May 16, 2024 at 11:18 AM CEST, Gabriel Goller wrote:
> Make columns sortable in the global 'Prune & GC Jobs' view. In the
> per-datastore view the columns will not be sortable as there can only be
> one job.
>
> Fixes: db3fd213 ("fix #3217: ui: global prune and gc job view")
>
> Co-authored-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
> Signed-off-by: Gabriel Goller <g.goller at proxmox.com>

Tested this again; didn't think that the columns would also be sortable
in the per-datastore view. Good catch @Thomas!

Now does what it says on the box. LGTM.

Tested-by: Max Carrara <m.carrara at proxmox.com>

> ---
>  www/config/GCView.js | 14 +++-----------
>  1 file changed, 3 insertions(+), 11 deletions(-)
>
> diff --git a/www/config/GCView.js b/www/config/GCView.js
> index bcea72a5..7733c265 100644
> --- a/www/config/GCView.js
> +++ b/www/config/GCView.js
> @@ -155,7 +155,6 @@ Ext.define('PBS.config.GCJobView', {
>  	    header: gettext('Datastore'),
>  	    dataIndex: 'store',
>  	    renderer: Ext.String.htmlEncode,
> -	    sortable: true,
>  	    hideable: false,
>  	    minWidth: 120,
>  	    maxWidth: 300,
> @@ -164,7 +163,6 @@ Ext.define('PBS.config.GCJobView', {
>  	{
>  	    header: gettext('Schedule'),
>  	    dataIndex: 'schedule',
> -	    sortable: false,
>  	    hideable: false,
>  	    renderer: (value) => value ? value : Proxmox.Utils.NoneText,
>  	    minWidth: 85,
> @@ -174,7 +172,6 @@ Ext.define('PBS.config.GCJobView', {
>  	    header: gettext('Last GC'),
>  	    dataIndex: 'last-run-endtime',
>  	    renderer: PBS.Utils.render_optional_timestamp,
> -	    sortable: true,
>  	    minWidth: 150,
>  	    flex: 1,
>  	},
> @@ -182,7 +179,6 @@ Ext.define('PBS.config.GCJobView', {
>  	    text: gettext('Duration'),
>  	    dataIndex: 'duration',
>  	    renderer: Proxmox.Utils.render_duration,
> -	    sortable: false,
>  	    minWidth: 80,
>  	    flex: 1,
>  	},
> @@ -190,7 +186,6 @@ Ext.define('PBS.config.GCJobView', {
>  	    header: gettext('Last Status'),
>  	    dataIndex: 'last-run-state',
>  	    renderer: PBS.Utils.render_task_status,
> -	    sortable: true,
>  	    minWidth: 80,
>  	    flex: 1,
>  	},
> @@ -198,7 +193,6 @@ Ext.define('PBS.config.GCJobView', {
>  	    header: gettext('Next Run'),
>  	    dataIndex: 'next-run',
>  	    renderer: PBS.Utils.render_next_task_run,
> -	    sortable: true,
>  	    minWidth: 150,
>  	    flex: 1,
>  	},
> @@ -207,7 +201,6 @@ Ext.define('PBS.config.GCJobView', {
>  	    dataIndex: 'removed-bytes',
>  	    renderer: (value, meta, record) => record.data.upid !== null
>  		? Proxmox.Utils.format_size(value, true) : "-",
> -	    sortable: false,
>  	    minWidth: 85,
>  	    flex: 1,
>  	},
> @@ -216,7 +209,6 @@ Ext.define('PBS.config.GCJobView', {
>  	    dataIndex: 'pending-bytes',
>  	    renderer: (value, meta, record) => record.data.upid !== null
>  		? Proxmox.Utils.format_size(value, true) : "-",
> -	    sortable: false,
>  	    minWidth: 80,
>  	    flex: 3,
>  	},
> @@ -224,12 +216,12 @@ Ext.define('PBS.config.GCJobView', {
>  
>      initComponent: function() {
>  	let me = this;
> -	let hideLocalDatastore = !!me.datastore;
> +	let isSingleDatastore = !!me.datastore;
>  
>  	for (let column of me.columns) {
> +	    column.sortable = !isSingleDatastore;
>  	    if (column.dataIndex === 'store') {
> -		column.hidden = hideLocalDatastore;
> -		break;
> +		column.hidden = isSingleDatastore;
>  	    }
>  	}
>  





More information about the pbs-devel mailing list