]>
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 let rec
= me
.store
.getById(key
);
9 let 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 let rowdef
= rows
&& rows
[key
] ? rows
[key
] : {};
31 let keys
= rowdef
.multiKey
|| [key
];
34 Ext
.Array
.each(keys
, function(k
) {
35 let rec
= me
.store
.getById(k
);
36 if (rec
&& rec
.data
&& (
37 (Ext
.isDefined(rec
.data
.pending
) && rec
.data
.pending
!== '') ||
41 return false; // break
49 renderValue: function(value
, metaData
, record
, rowIndex
, colIndex
, store
) {
52 let key
= record
.data
.key
;
53 let rowdef
= rows
&& rows
[key
] ? rows
[key
] : {};
54 let renderer
= rowdef
.renderer
;
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 let delete_all
= true;
73 if (rowdef
.multiKey
) {
74 Ext
.Array
.each(rowdef
.multiKey
, function(k
) {
75 let rec
= me
.store
.getById(k
);
76 if (rec
&& rec
.data
&& rec
.data
.delete !== 1) {
78 return false; // break
84 pending
= '<div style="text-decoration: line-through;">'+ current
+'</div>';
89 return current
+ '<div style="color:darkorange">' + pending
+ '</div>';
95 initComponent: function() {
100 throw "no url specified";
103 me
.rstore
= Ext
.create('Proxmox.data.ObjectStore', {
104 model
: 'KeyValuePendingDelete',
107 interval
: me
.interval
,
108 extraParams
: me
.extraParams
,