source: trunk/web/addons/job_monarch/lib/extjs-30/src/direct/JsonProvider.js @ 625

Last change on this file since 625 was 625, checked in by ramonb, 15 years ago

lib/extjs-30:

  • new ExtJS 3.0
File size: 1.3 KB
Line 
1/*!
2 * Ext JS Library 3.0.0
3 * Copyright(c) 2006-2009 Ext JS, LLC
4 * licensing@extjs.com
5 * http://www.extjs.com/license
6 */
7/**
8 * @class Ext.direct.JsonProvider
9 * @extends Ext.direct.Provider
10 */
11Ext.direct.JsonProvider = Ext.extend(Ext.direct.Provider, {
12    parseResponse: function(xhr){
13        if(!Ext.isEmpty(xhr.responseText)){
14            if(typeof xhr.responseText == 'object'){
15                return xhr.responseText;
16            }
17            return Ext.decode(xhr.responseText);
18        }
19        return null;
20    },
21
22    getEvents: function(xhr){
23        var data = null;
24        try{
25            data = this.parseResponse(xhr);
26        }catch(e){
27            var event = new Ext.Direct.ExceptionEvent({
28                data: e,
29                xhr: xhr,
30                code: Ext.Direct.exceptions.PARSE,
31                message: 'Error parsing json response: \n\n ' + data
32            })
33            return [event];
34        }
35        var events = [];
36        if(Ext.isArray(data)){
37            for(var i = 0, len = data.length; i < len; i++){
38                events.push(Ext.Direct.createEvent(data[i]));
39            }
40        }else{
41            events.push(Ext.Direct.createEvent(data));
42        }
43        return events;
44    }
45});
Note: See TracBrowser for help on using the repository browser.