PDA

View Full Version : [4.0.7] ComboBox bug with load mask



naimjs
26 Oct 2011, 3:25 AM
28883
my config:
var store = Ext.create('Ext.data.Store',{
model: 'News',
proxy: {
type: 'ajax',
url: 'myurl/news',
reader: {
type: 'json',
root: 'data'
}
},
autoLoad: true
});

combo = {
xtype: 'combo',
queryMode: 'local',
store: 'mystore',
valueField: 'id',
displayField: 'subject',
value: 47
}

after load data from the server in the second time, the LoadMask do not disappear and still until refresh page,
I am using Firefox and Chrome browser.
is it a bug or my config is wrong?

skirtle
26 Oct 2011, 10:11 PM
I wasn't able to reproduce your problem using the code you provided.

Are you getting an error message in the console?

naimjs
26 Oct 2011, 11:49 PM
I appreciate you for your answer, my problem is still the same but I will put here clear example to show you exactly what is happen, I used almost the same example in the extjs examples (ComboBox Templates)


Ext.define("Post", {
extend: 'Ext.data.Model',
fields: [
{name: 'id', mapping: 'post_id'},
{name: 'title', mapping: 'topic_title'},
{name: 'topicId', mapping: 'topic_id'},
{name: 'author', mapping: 'author'},
{name: 'lastPost', mapping: 'post_time', type: 'date', dateFormat: 'timestamp'},
{name: 'excerpt', mapping: 'post_text'}
]
});

ds = Ext.create('Ext.data.Store', {
model: 'Post',
proxy: {
type: 'jsonp',
url : 'http://www.sencha.com/forum/topics-remote.php',
reader: {
type: 'json',
root: 'topics'
}
}
});

Ext.create('Ext.panel.Panel', {
title: 'Test 1',
items: [{
xtype: 'combo',
store: ds,
displayField: 'title',
valueField: 'id',
width: 300,
margin: '10'
}, {
xtype: 'button',
text: 'load',
handler: function() {
ds.load();
}
}]
})

please generate this example and you will see what I am meaning, when I call ds.load() many time the problem occurs,
LoadMask does not disappear inside combobox please open combo and see loadmask

thank you in advance

skirtle
27 Oct 2011, 12:06 AM
Please use [CODE] tags when posting code (# button on the editor toolbar).

Confirmed, using this example the load mask doesn't hide properly using 4.0.7. It works fine with 4.0.2. I suggest you look in the bugs forum to see whether it has already been reported and file it if it hasn't.

ldrvoderic
27 Oct 2011, 3:13 AM
This is my patch for loadMask bug on combo.


Ext.override(Ext.form.field.ComboBox, {
createPicker: function() {
var me = this,
picker,
menuCls = Ext.baseCSSPrefix + 'menu',
opts = Ext.apply({
pickerField: me,
selModel: {
mode: me.multiSelect ? 'SIMPLE' : 'SINGLE'
},
floating: true,
hidden: true,
ownerCt: me.ownerCt,
cls: me.el.up('.' + menuCls) ? menuCls : '',
store: me.store,
displayField: me.displayField,
focusOnToFront: false,
pageSize: me.pageSize,
tpl: me.tpl,
loadMask: me.queryMode === 'local' ? false: true
}, me.listConfig, me.defaultListConfig);

picker = me.picker = Ext.create('Ext.view.BoundList', opts);
if (me.pageSize) {
picker.pagingToolbar.on('beforechange', me.onPageChange, me);
}

me.mon(picker, {
itemclick: me.onItemClick,
refresh: me.onListRefresh,
scope: me
});

me.mon(picker.getSelectionModel(), {
'beforeselect': me.onBeforeSelect,
'beforedeselect': me.onBeforeDeselect,
'selectionchange': me.onListSelectionChange,
scope: me
});

return picker;
}
});

lucasguaru
27 Oct 2011, 5:04 AM
I used the ldrvoderic's patch and it worked.
Thanks!

rlegend
29 Oct 2011, 2:22 AM
@ldrvoderic

Thanks for the patch. This was driving me absolutely nuts.

ldonofrio
29 Oct 2011, 9:36 AM
This is a 4.0.7 bug, seems to be solved in 4.1pr

My override


Ext.override(Ext.LoadMask, {
onHide: function() { this.callParent(); }
});

rlegend
29 Oct 2011, 9:44 AM
Nice work

naimjs
30 Oct 2011, 11:59 PM
Great, now loadMask is working with 4.0.7

thanks for @ldonofrio
(http://www.sencha.com/forum/member.php?148726-ldonofrio)

Hermes.Gonzalez
16 Nov 2011, 11:09 AM
Thanks! Itīs work very well !

Farish
20 Jan 2012, 6:24 AM
I also had this problem. thanks for the solution! It was working fine in 4.0.2 and then I moved to 4.0.7.

Regards,
Farish

Danv
24 Jan 2012, 10:55 AM
listConfig: {
loadMask: false
},


Ref: http://www.sencha.com/forum/showthread.php?156908-combobox-queryMode-local-still-shows-loading&p=678899&viewfull=1#post678899

This also work if you want to avoid using Ext.override() :)

Farish
24 Jan 2012, 10:58 AM
thanks Danv!