summaryrefslogtreecommitdiff
path: root/includes/js/dojox/rpc/PersevereRestStore.js
blob: d5bb40bc1524fee542a03a5a14646f4bdf94b00f (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
36
37
38
39
if(!dojo._hasResource["dojox.data.PersevereRestStore"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.data.PersevereRestStore"] = true;
dojo.provide("dojox.data.PersevereRestStore");
dojo.require("dojox.data.JsonRestStore");
dojo.require("dojox.json.ref"); // TODO: Make it work without this dependency

// PersevereRestStore is an extension of JsonRestStore to handle Persevere's special features


dojo.declare("dojox.data.PersevereRestStore",
	dojox.data.JsonRestStore,
	{
		getIdentity : function(item) {
			var prefix = this.service.serviceName + '/';
			if (!item._id) {
				item.id = '../' + (item._id = 'client/' + dojox.data.nextClientId++);
			}
			if (item._id.substring(0,prefix.length) != prefix) {
				return '../' + item._id; // use relative url path style referencing
			}
			return item._id.substring(prefix.length);
		}/*,
		_commitAppend: function(listId,item) {
			var deferred = this.service.post(listId,item);
			var prefix = this.service.serviceName + '/';
			deferred.addCallback(function(result) {
				item._id = prefix + result[this.idAttribute]; // update the object with the results of the post
				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;
		}*/
	}
);
 
dojox.data.nextClientId = 0;


}