diff --git a/www/manager/grid/PendingObjectGrid.js b/www/manager/grid/PendingObjectGrid.js index 03a22b3b..051951a7 100644 --- a/www/manager/grid/PendingObjectGrid.js +++ b/www/manager/grid/PendingObjectGrid.js @@ -18,6 +18,23 @@ Ext.define('PVE.grid.PendingObjectGrid', { return defaultValue; }, + hasPendingChanges: function(key) { + var me = this; + var rows = me.rows; + var rowdef = (rows && rows[key]) ? rows[key] : {}; + var keys = rowdef.multiKey || [ key ]; + var pending = false; + + Ext.Array.each(keys, function(k) { + var rec = me.store.getById(k); + if (rec && rec.data && Ext.isDefined(rec.data.pending) && (rec.data.pending !== '')) { + pending = true; + } + }); + + return pending; + }, + renderValue: function(value, metaData, record, rowIndex, colIndex, store) { var me = this; var rows = me.rows; @@ -30,7 +47,7 @@ Ext.define('PVE.grid.PendingObjectGrid', { if (renderer) { current = renderer(value, metaData, record, rowIndex, colIndex, store, false); - if ((Ext.isDefined(record.data.pending) && (record.data.pending !== '')) || rowdef.multiValues) { + if (me.hasPendingChanges(key)) { pending = renderer(record.data.pending, metaData, record, rowIndex, colIndex, store, true); } if (pending == current) { diff --git a/www/manager/qemu/HardwareView.js b/www/manager/qemu/HardwareView.js index 826f7dba..f26abaa2 100644 --- a/www/manager/qemu/HardwareView.js +++ b/www/manager/qemu/HardwareView.js @@ -63,7 +63,7 @@ Ext.define('PVE.qemu.HardwareView', { 'PVE.qemu.ProcessorEdit' : undefined, tdCls: 'pve-itype-icon-processor', defaultValue: 1, - multiValues: 1, + multiKey: ['sockets', 'cpu', 'cores', 'numa'], renderer: function(value, metaData, record, rowIndex, colIndex, store, pending) { var sockets = me.getObjectValue('sockets', 1, pending); @@ -390,23 +390,22 @@ Ext.define('PVE.qemu.HardwareView', { return false; } - if (Ext.isDefined(rec.data.pending) && (rec.data.pending !== '')) { - return true; - } - if (rec.data['delete']) { return true; } - return false; + return me.hasPendingChanges(rec.data.key); }, handler: function(b, e, rec) { + var rowdef = me.rows[rec.data.key] || {}; + var keys = rowdef.multiKey || [ rec.data.key ]; + var revert = keys.join(','); PVE.Utils.API2Request({ url: '/api2/extjs/' + baseurl, waitMsgTarget: me, method: 'PUT', params: { - 'revert': rec.data.key + 'revert': revert }, callback: function() { reload();