]>
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
= rec
.data
.value
;
11 if (Ext
.isDefined(rec
.data
.pending
) && rec
.data
.pending
!== '') {
12 value
= rec
.data
.pending
;
13 } else if (rec
.data
['delete'] === 1) {
18 if (Ext
.isDefined(value
) && (value
!== '')) {
27 hasPendingChanges: function(key
) {
30 var rowdef
= (rows
&& rows
[key
]) ? rows
[key
] : {};
31 var keys
= rowdef
.multiKey
|| [ key
];
34 Ext
.Array
.each(keys
, function(k
) {
35 var rec
= me
.store
.getById(k
);
36 if (rec
&& rec
.data
&& (
37 (Ext
.isDefined(rec
.data
.pending
) && rec
.data
.pending
!== '') ||
38 rec
.data
['delete'] === 1
41 return false; // break
48 renderValue: function(value
, metaData
, record
, rowIndex
, colIndex
, store
) {
51 var key
= record
.data
.key
;
52 var rowdef
= (rows
&& rows
[key
]) ? rows
[key
] : {};
53 var renderer
= rowdef
.renderer
;
55 var pendingdelete
= '';
59 current
= renderer(value
, metaData
, record
, rowIndex
, colIndex
, store
, false);
60 if (me
.hasPendingChanges(key
)) {
61 pending
= renderer(record
.data
.pending
, metaData
, record
, rowIndex
, colIndex
, store
, true);
63 if (pending
== current
) {
67 current
= value
|| '';
68 pending
= record
.data
.pending
;
71 if (record
.data
['delete']) {
72 var delete_all
= true;
73 if (rowdef
.multiKey
) {
74 Ext
.Array
.each(rowdef
.multiKey
, function(k
) {
75 var rec
= me
.store
.getById(k
);
76 if (rec
&& rec
.data
&& rec
.data
['delete'] !== 1) {
78 return false; // break
83 pending
= '<div style="text-decoration: line-through;">'+ current
+'</div>';
88 return current
+ '<div style="color:red">' + pending
+ '</div>';
94 initComponent : function() {
101 throw "no url specified";
104 me
.rstore
= Ext
.create('Proxmox.data.ObjectStore', {
105 model
: 'KeyValuePendingDelete',
108 interval
: me
.interval
,
109 extraParams
: me
.extraParams
,