From c58b567d941196e70d395795af2d77a17708dec0 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 6 Sep 2012 12:15:47 +0200 Subject: [PATCH] [ADD] Added trigger_children and trigger_ancestors in corelib EventDispatcherMixin bzr revid: fme@openerp.com-20120906101547-2fa0r9d0lqhzzemi --- addons/web/static/src/js/corelib.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/addons/web/static/src/js/corelib.js b/addons/web/static/src/js/corelib.js index c74c2d5dc03..7ef00b420e3 100644 --- a/addons/web/static/src/js/corelib.js +++ b/addons/web/static/src/js/corelib.js @@ -359,6 +359,26 @@ instance.web.EventDispatcherMixin = _.extend({}, instance.web.ParentedMixin, { this.__edispatcherEvents.trigger.apply(this.__edispatcherEvents, arguments); return this; }, + trigger_children: function(events) { + var children = this.getChildren(); + for (var i = 0; i < children.length; i++) { + var child = children[i]; + if (child.__eventDispatcherMixin) { + child.__edispatcherEvents.trigger.apply(child.__edispatcherEvents, arguments); + child.trigger_children.apply(child, arguments); + } + } + return this; + }, + trigger_ancestors: function(events) { + var parent = this; + while (parent = parent.getParent()) { + parent.__edispatcherEvents.trigger.apply(parent.__edispatcherEvents, arguments); + parent.trigger_ancestors.apply(parent, arguments); + + } + return this; + }, destroy: function() { var self = this; _.each(this.__edispatcherRegisteredEvents, function(event) {