diff options
Diffstat (limited to 'includes/js/dojox/rpc/CouchDBRestStore.js')
-rw-r--r-- | includes/js/dojox/rpc/CouchDBRestStore.js | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/includes/js/dojox/rpc/CouchDBRestStore.js b/includes/js/dojox/rpc/CouchDBRestStore.js deleted file mode 100644 index f61836c..0000000 --- a/includes/js/dojox/rpc/CouchDBRestStore.js +++ /dev/null @@ -1,87 +0,0 @@ -if(!dojo._hasResource["dojox.data.CouchDBRestStore"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.data.CouchDBRestStore"] = true; -dojo.provide("dojox.data.CouchDBRestStore"); -dojo.require("dojox.data.JsonRestStore"); -dojo.require("dojox.json.ref"); // TODO: Make it work without this dependency - -// A CouchDBRestStore is an extension of JsonRestStore to handle CouchDB's idiosyncrasies, special features, -// and deviations from standard HTTP Rest. -// NOTE: CouchDB is not designed to be run on a public facing network. There is no access control -// on database documents, and you should NOT rely on client side control to implement security. - - -dojo.declare("dojox.data.CouchDBRestStore", - dojox.data.JsonRestStore, - { - _commitAppend: function(listId,item) { - var deferred = this.service.post(listId,item); - var prefix = this.service.serviceName + '/'; - deferred.addCallback(function(result) { - item._id = prefix + result.id; // update the object with the results of the post - item._rev = result.rev; - return result; - //TODO: Need to go down the graph assigned _id based on path, so that sub items can be modified and properly reflected to the root item (being careful of circular references) - }); - return deferred; - }, - fetch: function(args) { - // summary: - // This only differs from JsonRestStore in that it, will put the query string the query part of the URL and it handles start and count - if (typeof args == 'string') { - args = {query: '_all_docs?' + args}; - } - else if (typeof args.query == 'string') { - args.query = '_all_docs?' + args.query; - } - else - args.query = '_all_docs?'; - if (args.start) { - args.query = (args.query ? (args.query + '&') : '') + 'skip=' + args.start; - delete args.start; - } - if (args.count) { - args.query = (args.query ? (args.query + '&') : '') + 'count=' + args.count; - delete args.count; - } - var prefix = this.service.serviceName + '/'; - var oldOnComplete = args.onComplete; - args.onComplete=function(results) { - if (results.rows) { - for (var i = 0; i < results.rows.length; i++) { - var row = results.rows[i]; // make it into a reference - row._id = prefix + (row.$ref = row.id); - } - } - if (oldOnComplete) - oldOnComplete.apply(this,arguments); - }; - return dojox.data.JsonRestStore.prototype.fetch.call(this,args); - } - } -); - - -dojox.data.CouchDBRestStore.generateSMD = function(couchServerUrl) { - var couchSMD = {contentType:"application/json", - transport:"REST", - envelope:"PATH", - services:{}, - target: couchServerUrl, - }; - var def = dojo.xhrGet({ - url: couchServerUrl+"_all_dbs", - handleAs: "json", - sync: true - }); - def.addCallback(function(dbs) { - for (var i = 0; i < dbs.length; i++) - couchSMD.services[dbs[i]] = { - target:dbs[i], - returns:{}, - parameters:[{type:"string"}] - } - }); - return couchSMD; -} - -} |