Signed-off-by: Alexandre Derumier <aderum...@odiso.com> --- www/manager/Makefile | 1 + www/manager/data/ObjectStore2.js | 8 ++-- www/manager/data/reader/JsonObjectPending.js | 60 ++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 www/manager/data/reader/JsonObjectPending.js
diff --git a/www/manager/Makefile b/www/manager/Makefile index b5f6ba6..ebcd659 100644 --- a/www/manager/Makefile +++ b/www/manager/Makefile @@ -14,6 +14,7 @@ JSSRC= \ VNCConsole.js \ data/TimezoneStore.js \ data/reader/JsonObject.js \ + data/reader/JsonObjectPending.js \ data/PVEProxy.js \ data/UpdateQueue.js \ data/UpdateStore.js \ diff --git a/www/manager/data/ObjectStore2.js b/www/manager/data/ObjectStore2.js index 0946f03..f4832a5 100644 --- a/www/manager/data/ObjectStore2.js +++ b/www/manager/data/ObjectStore2.js @@ -16,10 +16,10 @@ Ext.define('PVE.data.ObjectStore2', { type: 'pve', url: config.url, extraParams: config.extraParams, -// reader: { -// type: 'jsonobject', -// rows: config.rows -// } + reader: { + type: 'jsonobjectpending', + rows: config.rows + } } }); diff --git a/www/manager/data/reader/JsonObjectPending.js b/www/manager/data/reader/JsonObjectPending.js new file mode 100644 index 0000000..8e87d44 --- /dev/null +++ b/www/manager/data/reader/JsonObjectPending.js @@ -0,0 +1,60 @@ +Ext.define('PVE.data.reader.JsonObjectPending', { + extend: 'Ext.data.reader.Json', + alias : 'reader.jsonobjectpending', + + root: 'data', + + constructor: function(config) { + var me = this; + + Ext.apply(me, config || {}); + + me.callParent([config]); + }, + + getResponseData: function(response) { + var me = this; + + var data = []; + try { + var result = Ext.decode(response.responseText); + var root = me.getRoot(result); + var org_root = root; + + if (Ext.isArray(org_root)) { + if (org_root.length == 1) { + root = org_root[0]; + } else { + root = {}; + } + } + + if (me.rows) { + Ext.Object.each(me.rows, function(key, rowdef) { + if (Ext.isDefined(root[key])) { + data.push({key: key, value: root[key]["value"], pending: root[key]["pending"], delete: root[key]["delete"]}); + } else if (Ext.isDefined(rowdef.defaultValue)) { + data.push({key: key, value: rowdef.defaultValue, pending: undefined, delete: undefined}); + } else if (rowdef.required) { + data.push({key: key, value: undefined, pending: undefined, delete: undefined}); + } + }); + } else { + Ext.Object.each(root, function(key, value) { + data.push({key: key, value: value, pending: root[key]["pending"], delete: root[key]["delete"]}); + }); + } + + } + catch (ex) { + Ext.Error.raise({ + response: response, + json: response.responseText, + parseError: ex, + msg: 'Unable to parse the JSON returned by the server: ' + ex.toString() + }); + } + return data; + } +}); + -- 1.7.10.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel