From 2087bcd90b8d63147afe2b00e2654de42268d6f4 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Tue, 10 Apr 2018 16:36:42 +0200 Subject: [PATCH] PendingObjectGrid: fix display of deletion of multikey fields 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 --- 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 = '
'+ current +'
'; + 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 = '
'+ current +'
'; + } } - if (pending || pendingdelete) { - return current + '
' + (pending || '') + pendingdelete + '
'; + if (pending) { + return current + '
' + pending + '
'; } else { return current; } -- 2.39.2