]>
git.proxmox.com Git - pve-manager.git/blob - www/new/form/ComboGrid.js
1 Ext
.define('PVE.form.ComboGrid', {
2 extend
: 'Ext.form.ComboBox',
7 alias
: ['widget.PVE.form.ComboGrid'],
9 computeHeight: function() {
11 var lh
= PVE
.Utils
.gridLineHeigh();
12 var count
= me
.store
.getCount();
13 return (count
> 10) ? 10*lh
: 26+count
*lh
;
16 // copied from ComboBox
17 createPicker: function() {
20 menuCls
= Ext
.baseCSSPrefix
+ 'menu',
24 mode
: me
.multiSelect
? 'SIMPLE' : 'SINGLE'
29 cls
: me
.el
.up('.' + menuCls
) ? menuCls
: '',
31 displayField
: me
.displayField
,
32 focusOnToFront
: false,
33 height
: me
.computeHeight(),
35 }, me
.listConfig
, me
.defaultListConfig
);
37 // NOTE: we simply use a grid panel
38 //picker = me.picker = Ext.create('Ext.view.BoundList', opts);
39 picker
= me
.picker
= Ext
.create('Ext.grid.Panel', opts
);
41 // pass getNode() to the view
42 picker
.getNode = function() {
43 picker
.getView().getNode(arguments
);
47 itemclick
: me
.onItemClick
,
48 refresh
: me
.onListRefresh
,
50 picker
.setHeight(me
.computeHeight());
55 me
.mon(picker
.getSelectionModel(), {
56 selectionChange
: me
.onListSelectionChange
,
63 initComponent: function() {
69 matchFieldWidth
: false
72 Ext
.applyIf(me
.listConfig
, { width
: 400 });
76 me
.store
.on('beforeload', function() {
77 me
.up('form').setLoading(true, true);
80 // hack: autoSelect does not work
81 me
.store
.on('load', function(store
, r
, success
, o
) {
83 var def
= me
.getValue();
84 if (!def
|| !store
.findRecord(me
.valueField
, def
)) {
85 var rec
= me
.store
.first();
86 if (me
.autoSelect
&& rec
&& rec
.data
) {
87 def
= rec
.data
[me
.valueField
];
94 me
.up('form').setLoading(false);