]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/grid/ObjectGrid.js
1 /* Renders a list of key values objets
3 mandatory config parameters:
4 rows: an object container where each propery is a key-value object we want to render
7 header: gettext('Keyboard Layout'),
8 editor: 'PVE.dc.KeyboardEdit',
9 renderer: PVE.Utils.render_kvm_language,
14 disabled: setting this parameter to true will disable selection and focus on the
15 pveObjectGrid as well as greying out input elements.
16 Useful for a readonly tabular display
20 Ext
.define('PVE.grid.ObjectGrid', {
21 extend
: 'Ext.grid.GridPanel',
22 alias
: ['widget.pveObjectGrid'],
26 getObjectValue: function(key
, defaultValue
) {
28 var rec
= me
.store
.getById(key
);
30 return rec
.data
.value
;
35 renderKey: function(key
, metaData
, record
, rowIndex
, colIndex
, store
) {
38 var rowdef
= (rows
&& rows
[key
]) ? rows
[key
] : {};
39 return rowdef
.header
|| key
;
42 renderValue: function(value
, metaData
, record
, rowIndex
, colIndex
, store
) {
45 var key
= record
.data
.key
;
46 var rowdef
= (rows
&& rows
[key
]) ? rows
[key
] : {};
48 var renderer
= rowdef
.renderer
;
50 return renderer(value
, metaData
, record
, rowIndex
, colIndex
, store
);
56 initComponent : function() {
63 throw "no url specified";
66 me
.rstore
= Ext
.create('PVE.data.ObjectStore', {
68 interval
: me
.interval
,
69 extraParams
: me
.extraParams
,
74 var rstore
= me
.rstore
;
76 var store
= Ext
.create('PVE.data.DiffStore', { rstore
: rstore
,
82 Ext
.Object
.each(rows
, function(key
, rowdef
) {
83 if (Ext
.isDefined(rowdef
.defaultValue
)) {
84 store
.add({ key
: key
, value
: rowdef
.defaultValue
});
85 } else if (rowdef
.required
) {
86 store
.add({ key
: key
, value
: undefined });
92 store
.sorters
.add(Ext
.create('Ext.util.Sorter', {
97 store
.filters
.add(Ext
.create('Ext.util.Filter', {
98 filterFn: function(item
) {
100 var rowdef
= rows
[item
.data
.key
];
101 if (!rowdef
|| (rowdef
.visible
=== false)) {
109 PVE
.Utils
.monStoreErrors(me
, rstore
);
116 header
: gettext('Name'),
117 width
: me
.cwidth1
|| 200,
119 renderer
: me
.renderKey
123 header
: gettext('Value'),
125 renderer
: me
.renderValue