]> git.proxmox.com Git - proxmox-widget-toolkit.git/blame - grid/PendingObjectGrid.js
some more eslint fixes
[proxmox-widget-toolkit.git] / grid / PendingObjectGrid.js
CommitLineData
40d43a39
DM
1Ext.define('Proxmox.grid.PendingObjectGrid', {
2 extend: 'Proxmox.grid.ObjectGrid',
3 alias: ['widget.proxmoxPendingObjectGrid'],
4
5 getObjectValue: function(key, defaultValue, pending) {
6 var me = this;
7 var rec = me.store.getById(key);
8 if (rec) {
2087bcd9
DC
9 var value = rec.data.value;
10 if (pending) {
11 if (Ext.isDefined(rec.data.pending) && rec.data.pending !== '') {
12 value = rec.data.pending;
01031528 13 } else if (rec.data.delete === 1) {
2087bcd9
DC
14 value = defaultValue;
15 }
16 }
40d43a39 17
01031528 18 if (Ext.isDefined(value) && value !== '') {
40d43a39
DM
19 return value;
20 } else {
21 return defaultValue;
22 }
23 }
24 return defaultValue;
25 },
26
27 hasPendingChanges: function(key) {
28 var me = this;
29 var rows = me.rows;
01031528
TL
30 var rowdef = rows && rows[key] ? rows[key] : {};
31 var keys = rowdef.multiKey || [key];
40d43a39
DM
32 var pending = false;
33
34 Ext.Array.each(keys, function(k) {
35 var rec = me.store.getById(k);
2087bcd9 36 if (rec && rec.data && (
01031528
TL
37 Ext.isDefined(rec.data.pending) && rec.data.pending !== '' ||
38 rec.data.delete === 1
2087bcd9 39 )) {
40d43a39
DM
40 pending = true;
41 return false; // break
42 }
43 });
44
45 return pending;
46 },
47
48 renderValue: function(value, metaData, record, rowIndex, colIndex, store) {
49 var me = this;
50 var rows = me.rows;
51 var key = record.data.key;
01031528 52 var rowdef = rows && rows[key] ? rows[key] : {};
40d43a39
DM
53 var renderer = rowdef.renderer;
54 var current = '';
55 var pendingdelete = '';
56 var pending = '';
57
58 if (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);
62 }
63 if (pending == current) {
64 pending = undefined;
65 }
66 } else {
67 current = value || '';
68 pending = record.data.pending;
69 }
70
01031528 71 if (record.data.delete) {
2087bcd9
DC
72 var delete_all = true;
73 if (rowdef.multiKey) {
74 Ext.Array.each(rowdef.multiKey, function(k) {
75 var rec = me.store.getById(k);
01031528 76 if (rec && rec.data && rec.data.delete !== 1) {
2087bcd9
DC
77 delete_all = false;
78 return false; // break
79 }
80 });
81 }
82 if (delete_all) {
83 pending = '<div style="text-decoration: line-through;">'+ current +'</div>';
84 }
40d43a39
DM
85 }
86
2087bcd9 87 if (pending) {
6dc34e55 88 return current + '<div style="color:darkorange">' + pending + '</div>';
40d43a39
DM
89 } else {
90 return current;
91 }
92 },
93
01031528 94 initComponent: function() {
40d43a39
DM
95 var me = this;
96
97 var rows = me.rows;
98
99 if (!me.rstore) {
100 if (!me.url) {
101 throw "no url specified";
102 }
103
104 me.rstore = Ext.create('Proxmox.data.ObjectStore', {
105 model: 'KeyValuePendingDelete',
106 readArray: true,
107 url: me.url,
108 interval: me.interval,
109 extraParams: me.extraParams,
01031528 110 rows: me.rows,
40d43a39
DM
111 });
112 }
113
114 me.callParent();
01031528 115 },
40d43a39 116});