Sha256: 34cc926ff95451d595f49ffa92cb65618d605039b743cd169aa7226880b55163

Contents?: true

Size: 1.56 KB

Versions: 7

Compression:

Stored size: 1.56 KB

Contents

dojo.provide("dojox.data.restListener");

dojox.data.restListener = function(message){
	// summary:
	// 		this function can be used to receive REST notifications, from Comet or from another frame
	// description:
	//		Example:
	// |	dojo.connect(window,"onMessage",null,function(event) {
	//	|		var data = dojo.fromJson(event.data);
	// 	|		dojox.restListener(data);
	//	|	});
	var channel = message.channel;
	var jr = dojox.rpc.JsonRest;
	var service = jr.getServiceAndId(channel).service;
	var result = dojox.json.ref.resolveJson(message.result, {
					defaultId: message.event == 'put' && channel,
					index: dojox.rpc.Rest._index,
					idPrefix: service.servicePath,
					idAttribute: jr.getIdAttribute(service),
					schemas: jr.schemas,
					loader: jr._loader,
					assignAbsoluteIds: true
				});
	var target = dojox.rpc.Rest._index && dojox.rpc.Rest._index[channel];
	var onEvent = 'on' + message.event.toLowerCase();
	var store = service && service._store;
	if(target){
		if(target[onEvent]){
			target[onEvent](result); // call the REST handler if available
			return;
		}
	}
	// this is how we respond to different events
	if(store){
		switch(onEvent){
			case 'onpost':
				store.onNew(result); // call onNew for the store;
				break;
			case 'ondelete':
		 		store.onDelete(target);
		 		break;
				 	// put is handled by JsonReferencing
				 	//TODO: we may want to bring the JsonReferencing capability into here...
				 	// that is really tricky though because JsonReferencing handles sub object,
				 	// it would be expensive to do full object graph searches from here
		}
	}
};

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dojo-pkg-1.132.0 data/dojo-release-1.3.2-src/dojox/data/restListener.js
dojo-pkg-1.120.0 data/dojo-release-1.2.0-src/dojox/data/restListener.js
dojo-pkg-1.121.0 data/dojo-release-1.2.1-src/dojox/data/restListener.js
dojo-pkg-1.122.0 data/dojo-release-1.2.2-src/dojox/data/restListener.js
dojo-pkg-1.123.0 data/dojo-release-1.2.3-src/dojox/data/restListener.js
dojo-pkg-1.130.0 data/dojo-release-1.3.0-src/dojox/data/restListener.js
dojo-pkg-1.131.0 data/dojo-release-1.3.1-src/dojox/data/restListener.js