]>
git.proxmox.com Git - proxmox-widget-toolkit.git/blob - grid/PendingObjectGrid.js
1 Ext
.define('Proxmox.grid.PendingObjectGrid', {
2 extend
: 'Proxmox.grid.ObjectGrid',
3 alias
: ['widget.proxmoxPendingObjectGrid'],
5 getObjectValue: function(key
, defaultValue
, pending
) {
7 var rec
= me
.store
.getById(key
);
9 var value
= (pending
&& Ext
.isDefined(rec
.data
.pending
) && (rec
.data
.pending
!== '')) ?
10 rec
.data
.pending
: rec
.data
.value
;
12 if (Ext
.isDefined(value
) && (value
!== '')) {
21 hasPendingChanges: function(key
) {
24 var rowdef
= (rows
&& rows
[key
]) ? rows
[key
] : {};
25 var keys
= rowdef
.multiKey
|| [ key
];
28 Ext
.Array
.each(keys
, function(k
) {
29 var rec
= me
.store
.getById(k
);
30 if (rec
&& rec
.data
&& Ext
.isDefined(rec
.data
.pending
) && (rec
.data
.pending
!== '')) {
32 return false; // break
39 renderValue: function(value
, metaData
, record
, rowIndex
, colIndex
, store
) {
42 var key
= record
.data
.key
;
43 var rowdef
= (rows
&& rows
[key
]) ? rows
[key
] : {};
44 var renderer
= rowdef
.renderer
;
46 var pendingdelete
= '';
50 current
= renderer(value
, metaData
, record
, rowIndex
, colIndex
, store
, false);
51 if (me
.hasPendingChanges(key
)) {
52 pending
= renderer(record
.data
.pending
, metaData
, record
, rowIndex
, colIndex
, store
, true);
54 if (pending
== current
) {
58 current
= value
|| '';
59 pending
= record
.data
.pending
;
62 if (record
.data
['delete']) {
63 pendingdelete
= '<div style="text-decoration: line-through;">'+ current
+'</div>';
66 if (pending
|| pendingdelete
) {
67 return current
+ '<div style="color:red">' + (pending
|| '') + pendingdelete
+ '</div>';
73 initComponent : function() {
80 throw "no url specified";
83 me
.rstore
= Ext
.create('Proxmox.data.ObjectStore', {
84 model
: 'KeyValuePendingDelete',
87 interval
: me
.interval
,
88 extraParams
: me
.extraParams
,