blob: 0a323850436f56cee38197e8f1952bb39c71d5b8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
//>>built
define("dojox/data/S3Store", ["dojo/_base/declare", "dojox/data/JsonRestStore", "dojox/rpc/ProxiedPath"],
function(declare, JsonRestStore, ProxiedPath) {
// S3JsonRestStore is an extension of JsonRestStore to handle
// Amazon's S3 service using JSON data
/*===== var JsonRestStore = dojox.data.JsonRestStore =====*/
return declare("dojox.data.S3Store", JsonRestStore,
{
_processResults : function(results){
// unfortunately, S3 returns query results in XML form
var keyElements = results.getElementsByTagName("Key");
var jsResults = [];
var self = this;
for(var i=0; i <keyElements.length;i++){
var keyElement = keyElements[i];
// manually create lazy loaded Deferred items for each item in the result array
var val = {
_loadObject: (function(key,val){
return function(callback){
// when a callback is added we will fetch it
delete this._loadObject;
self.service(key).addCallback(callback);
};
})(keyElement.firstChild.nodeValue,val)
};
jsResults.push(val);
}
return {totalCount:jsResults.length, items: jsResults};
}
}
);
});
|