From 75735ea1c56fe0cf58b9c4385cd8b79a93bcfdaa Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Thu, 18 Oct 2012 17:58:37 +0200 Subject: [PATCH] [DIE] callbackenabled bzr revid: al@openerp.com-20121018155837-lr90ldzrnwd06ueu --- addons/web/static/src/js/corelib.js | 68 +++-------------------------- 1 file changed, 7 insertions(+), 61 deletions(-) diff --git a/addons/web/static/src/js/corelib.js b/addons/web/static/src/js/corelib.js index 41960dd278d..8a5e83d0d53 100644 --- a/addons/web/static/src/js/corelib.js +++ b/addons/web/static/src/js/corelib.js @@ -430,71 +430,17 @@ instance.web.CallbackEnabledMixin = _.extend({}, instance.web.PropertiesMixin, { init: function() { instance.web.PropertiesMixin.init.call(this); var self = this; - var callback_maker = function(obj, name, method) { - var callback = function() { - var args = Array.prototype.slice.call(arguments); - self.trigger.apply(self, [name].concat(args)); - var r; - for(var i = 0; i < callback.callback_chain.length; i++) { - var c = callback.callback_chain[i]; - if(c.unique) { - callback.callback_chain.splice(i, 1); - i -= 1; - } - var result = c.callback.apply(c.self, c.args.concat(args)); - if (c.callback === method) { - // return the result of the original method - r = result; - } - // TODO special value to stop the chain - // instance.web.callback_stop - } - return r; - }; - callback.callback_chain = []; - callback.add = function(f) { - if(typeof(f) == 'function') { - f = { callback: f, args: Array.prototype.slice.call(arguments, 1) }; - } - f.self = f.self || null; - f.args = f.args || []; - f.unique = !!f.unique; - if(f.position == 'last') { - callback.callback_chain.push(f); - } else { - callback.callback_chain.unshift(f); - } - return callback; - }; - callback.add_first = function(f) { - return callback.add.apply(null,arguments); - }; - callback.add_last = function(f) { - return callback.add({ - callback: f, - args: Array.prototype.slice.call(arguments, 1), - position: "last" - }); - }; - callback.remove = function(f) { - callback.callback_chain = _.difference(callback.callback_chain, _.filter(callback.callback_chain, function(el) { - return el.callback === f; - })); - return callback; - }; - - return callback.add({ - callback: method, - self:obj, - args:Array.prototype.slice.call(arguments, 3) - }); - }; // Transform on_/do_* methods into callbacks + var callback_maker = function(fn) { + return function() { + return fn.apply(self, arguments); + } + }; for (var name in this) { if(typeof(this[name]) == "function") { - this[name].debug_name = name; if((/^on_|^do_/).test(name)) { - this[name] = callback_maker(this, name, this[name]); + console.log("Proxyfy,",name); + this[name] = callback_maker(this[name]); } } }