]> git.wh0rd.org - tt-rss.git/blob - lib/dojo/request/handlers.js.uncompressed.js
upgrade dojo to 1.8.3 (refs #570)
[tt-rss.git] / lib / dojo / request / handlers.js.uncompressed.js
1 define("dojo/request/handlers", [
2 '../json',
3 '../_base/kernel',
4 '../_base/array',
5 '../has'
6 ], function(JSON, kernel, array, has){
7 has.add('activex', typeof ActiveXObject !== 'undefined');
8
9 var handleXML;
10 if(has('activex')){
11 // GUIDs obtained from http://msdn.microsoft.com/en-us/library/ms757837(VS.85).aspx
12 var dp = [
13 'Msxml2.DOMDocument.6.0',
14 'Msxml2.DOMDocument.4.0',
15 'MSXML2.DOMDocument.3.0',
16 'MSXML.DOMDocument' // 2.0
17 ];
18
19 handleXML = function(response){
20 var result = response.data;
21
22 if(!result || !result.documentElement){
23 var text = response.text;
24 array.some(dp, function(p){
25 try{
26 var dom = new ActiveXObject(p);
27 dom.async = false;
28 dom.loadXML(text);
29 result = dom;
30 }catch(e){ return false; }
31 return true;
32 });
33 }
34
35 return result;
36 };
37 }
38
39 var handlers = {
40 'javascript': function(response){
41 return kernel.eval(response.text || '');
42 },
43 'json': function(response){
44 return JSON.parse(response.text || null);
45 },
46 'xml': handleXML
47 };
48
49 function handle(response){
50 var handler = handlers[response.options.handleAs];
51
52 response.data = handler ? handler(response) : (response.data || response.text);
53
54 return response;
55 }
56
57 handle.register = function(name, handler){
58 handlers[name] = handler;
59 };
60
61 return handle;
62 });