mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-09 14:37:56 +00:00
PendingObjectGrid: improve detection of pending changes
This commit is contained in:
parent
55cb04a5f8
commit
915c63d741
@ -18,6 +18,23 @@ Ext.define('PVE.grid.PendingObjectGrid', {
|
|||||||
return defaultValue;
|
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) {
|
renderValue: function(value, metaData, record, rowIndex, colIndex, store) {
|
||||||
var me = this;
|
var me = this;
|
||||||
var rows = me.rows;
|
var rows = me.rows;
|
||||||
@ -30,7 +47,7 @@ Ext.define('PVE.grid.PendingObjectGrid', {
|
|||||||
|
|
||||||
if (renderer) {
|
if (renderer) {
|
||||||
current = renderer(value, metaData, record, rowIndex, colIndex, store, false);
|
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);
|
pending = renderer(record.data.pending, metaData, record, rowIndex, colIndex, store, true);
|
||||||
}
|
}
|
||||||
if (pending == current) {
|
if (pending == current) {
|
||||||
|
@ -63,7 +63,7 @@ Ext.define('PVE.qemu.HardwareView', {
|
|||||||
'PVE.qemu.ProcessorEdit' : undefined,
|
'PVE.qemu.ProcessorEdit' : undefined,
|
||||||
tdCls: 'pve-itype-icon-processor',
|
tdCls: 'pve-itype-icon-processor',
|
||||||
defaultValue: 1,
|
defaultValue: 1,
|
||||||
multiValues: 1,
|
multiKey: ['sockets', 'cpu', 'cores', 'numa'],
|
||||||
renderer: function(value, metaData, record, rowIndex, colIndex, store, pending) {
|
renderer: function(value, metaData, record, rowIndex, colIndex, store, pending) {
|
||||||
|
|
||||||
var sockets = me.getObjectValue('sockets', 1, pending);
|
var sockets = me.getObjectValue('sockets', 1, pending);
|
||||||
@ -390,23 +390,22 @@ Ext.define('PVE.qemu.HardwareView', {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Ext.isDefined(rec.data.pending) && (rec.data.pending !== '')) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rec.data['delete']) {
|
if (rec.data['delete']) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return me.hasPendingChanges(rec.data.key);
|
||||||
},
|
},
|
||||||
handler: function(b, e, rec) {
|
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({
|
PVE.Utils.API2Request({
|
||||||
url: '/api2/extjs/' + baseurl,
|
url: '/api2/extjs/' + baseurl,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
params: {
|
params: {
|
||||||
'revert': rec.data.key
|
'revert': revert
|
||||||
},
|
},
|
||||||
callback: function() {
|
callback: function() {
|
||||||
reload();
|
reload();
|
||||||
|
Loading…
Reference in New Issue
Block a user