[pve-devel] applied: [PATCH widget-toolkit] PendingObjectGrid: fix display of deletion of multikey fields

Thomas Lamprecht t.lamprecht at proxmox.com
Fri Apr 27 14:04:30 CEST 2018


applied thanks!

On 4/10/18 4:36 PM, Dominik Csapak wrote:
> we did only check if the first field of a mulitfield key is being deleted,
> resulting in showing no pending change at all when deleting any other,
> and as long as only deletions were taking place
> 
> also when deleting the 'main' key of a multikey field, we
> showed the deletion of the whole line, even when already showing
> a different pending line
> 
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
>  grid/PendingObjectGrid.js | 33 +++++++++++++++++++++++++++------
>  1 file changed, 27 insertions(+), 6 deletions(-)
> 
> diff --git a/grid/PendingObjectGrid.js b/grid/PendingObjectGrid.js
> index 0061c37..8163468 100644
> --- a/grid/PendingObjectGrid.js
> +++ b/grid/PendingObjectGrid.js
> @@ -6,8 +6,14 @@ Ext.define('Proxmox.grid.PendingObjectGrid', {
>  	var me = this;
>  	var rec = me.store.getById(key);
>  	if (rec) {
> -	    var value = (pending && Ext.isDefined(rec.data.pending) && (rec.data.pending !== '')) ? 
> -		rec.data.pending : rec.data.value;
> +	    var value = rec.data.value;
> +	    if (pending) {
> +		if (Ext.isDefined(rec.data.pending) && rec.data.pending !== '') {
> +		    value = rec.data.pending;
> +		} else if (rec.data['delete'] === 1) {
> +		    value = defaultValue;
> +		}
> +	    }
>  
>              if (Ext.isDefined(value) && (value !== '')) {
>  		return value;
> @@ -27,7 +33,10 @@ Ext.define('Proxmox.grid.PendingObjectGrid', {
>  
>  	Ext.Array.each(keys, function(k) {
>  	    var rec = me.store.getById(k);
> -	    if (rec && rec.data && Ext.isDefined(rec.data.pending) && (rec.data.pending !== '')) {
> +	    if (rec && rec.data && (
> +		    (Ext.isDefined(rec.data.pending) && rec.data.pending !== '') ||
> +		    rec.data['delete'] === 1
> +	    )) {
>  		pending = true;
>  		return false; // break
>  	    }
> @@ -60,11 +69,23 @@ Ext.define('Proxmox.grid.PendingObjectGrid', {
>  	}
>  
>  	if (record.data['delete']) {
> -	    pendingdelete = '<div style="text-decoration: line-through;">'+ current +'</div>';
> +	    var delete_all = true;
> +	    if (rowdef.multiKey) {
> +		Ext.Array.each(rowdef.multiKey, function(k) {
> +		    var rec = me.store.getById(k);
> +		    if (rec && rec.data && rec.data['delete'] !== 1) {
> +			delete_all = false;
> +			return false; // break
> +		    }
> +		});
> +	    }
> +	    if (delete_all) {
> +		pending = '<div style="text-decoration: line-through;">'+ current +'</div>';
> +	    }
>  	}
>  
> -	if (pending || pendingdelete) {
> -	    return current + '<div style="color:red">' + (pending || '') + pendingdelete + '</div>';
> +	if (pending) {
> +	    return current + '<div style="color:red">' + pending + '</div>';
>  	} else {
>  	    return current;
>  	}
> 





More information about the pve-devel mailing list