PDA

View Full Version : Tree menu handle failure calls on store



manilodisan
7 Oct 2011, 5:50 AM
I have a simple tree menu defined with a store attached. The store calls an url for the response containing the items it has. If the user is not logged in the servers responds:
{"message": "Invalid permissions", "data": {}, "success": false}

My question is: how do I handle this response to catch it in a failure type method as a callback probably and show the user that error message or maybe redirect him to the login page.

My tree is as follows:


Ext.define('AP.view.layout.MenuTree' ,{
alias : 'widget.mainMenuTree',
extend: 'Ext.tree.Panel',
border: false,
useArrows: true,
rootVisible: false,
initComponent: function(){
Ext.apply(this, {
viewConfig: {
getRowClass: function(record) {
if (!record.get('leaf')) {
return 'group ';
}
return record.get('cls');
}
},
store: Ext.create('Ext.data.TreeStore', {
model: 'Menu',
proxy: {
type: 'rest',
url : AP_ROOT_URL + 'menu/',
reader: {
type: 'json',
successProperty: 'success'
}
}
})
});
this.callParent();
}
})


I see it has a successProperty but how do I catch the failure message?

arthurakay
7 Oct 2011, 11:24 AM
Add an event listener to your TreeStore!

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.TreeStore-event-load

manilodisan
8 Oct 2011, 6:29 AM
Yeah I can get the success property by that callback but no way to access any other data being sent by the server. Am I wrong?

arthurakay
10 Oct 2011, 2:02 PM
You should be able to inspect everything about the server response in that callback.

If you'd prefer to grab the data in a different place with less work to get to the response, you can add a listener to your store's proxy. I'm guessing you might be using an Ajax proxy:

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.proxy.Ajax-event-exception