From f0cfe83e3725f9a3928da97a6e3085e79cb25309 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 18 Mar 2013 10:26:24 +0400 Subject: upgrade dojo to 1.8.3 (refs #570) --- lib/dojo/request/notify.js.uncompressed.js | 74 ++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 lib/dojo/request/notify.js.uncompressed.js (limited to 'lib/dojo/request/notify.js.uncompressed.js') diff --git a/lib/dojo/request/notify.js.uncompressed.js b/lib/dojo/request/notify.js.uncompressed.js new file mode 100644 index 000000000..2b8a2b68b --- /dev/null +++ b/lib/dojo/request/notify.js.uncompressed.js @@ -0,0 +1,74 @@ +define("dojo/request/notify", ['../Evented', '../_base/lang', './util'], function(Evented, lang, util){ + // module: + // dojo/request/notify + // summary: + // Global notification API for dojo/request. Notifications will + // only be emitted if this module is required. + // + // | require('dojo/request', 'dojo/request/notify', + // | function(request, notify){ + // | notify('load', function(response){ + // | if(response.url === 'someUrl.html'){ + // | console.log('Loaded!'); + // | } + // | }); + // | request.get('someUrl.html'); + // | } + // | ); + + var pubCount = 0, + slice = [].slice; + + var hub = lang.mixin(new Evented, { + onsend: function(data){ + if(!pubCount){ + this.emit('start'); + } + pubCount++; + }, + _onload: function(data){ + this.emit('done', data); + }, + _onerror: function(data){ + this.emit('done', data); + }, + _ondone: function(data){ + if(--pubCount <= 0){ + pubCount = 0; + this.emit('stop'); + } + }, + emit: function(type, event){ + var result = Evented.prototype.emit.apply(this, arguments); + + // After all event handlers have run, run _on* handler + if(this['_on' + type]){ + this['_on' + type].apply(this, slice.call(arguments, 1)); + } + return result; + } + }); + + function notify(type, listener){ + // summary: + // Register a listener to be notified when an event + // in dojo/request happens. + // type: String? + // The event to listen for. Events emitted: "start", "send", + // "load", "error", "done", "stop". + // listener: Function? + // A callback to be run when an event happens. + // returns: + // A signal object that can be used to cancel the listener. + // If remove() is called on this signal object, it will + // stop the listener from being executed. + return hub.on(type, listener); + } + notify.emit = function(type, event, cancel){ + return hub.emit(type, event, cancel); + }; + + // Attach notify to dojo/request/util to avoid + // try{ require('./notify'); }catch(e){} + return util.notify = notify; +}); -- cgit v1.2.3