12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /*
- Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.
- Available via Academic Free License >= 2.1 OR the modified BSD license.
- see: http://dojotoolkit.org/license for details
- */
- if(!dojo._hasResource["dojox.data.S3Store"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
- dojo._hasResource["dojox.data.S3Store"] = true;
- dojo.provide("dojox.data.S3Store");
- dojo.require("dojox.data.JsonRestStore");
- dojo.require("dojox.rpc.ProxiedPath");
- // S3JsonRestStore is an extension of JsonRestStore to handle
- // Amazon's S3 service using JSON data
- dojo.declare("dojox.data.S3Store",
- dojox.data.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};
- }
- }
- );
- }
|