From 81fffdbdc4ae23e6d08cf1207dc14bf52156244e Mon Sep 17 00:00:00 2001 From: qsm-odoo Date: Fri, 27 Oct 2017 15:28:43 +0200 Subject: [PATCH] [FIX] website: restore snippet animation API Before the website refactoring, snippet animations were cleaned thanks to the `stop` method. As those animations are now extensions of the standard `Widget` class, the `stop` method was replaced by the standard `destroy` method. This was tweaked so that the $el is not removed from the DOM, but with proper cleaning of events. However, this changed the way the `stop` method content has to be called. Indeed, we should be allowed to call the `_super` method and then use the $el variable. --- addons/website/static/src/js/content/snippets.animation.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/addons/website/static/src/js/content/snippets.animation.js b/addons/website/static/src/js/content/snippets.animation.js index 466913e7188..725b6b1d66b 100644 --- a/addons/website/static/src/js/content/snippets.animation.js +++ b/addons/website/static/src/js/content/snippets.animation.js @@ -343,12 +343,19 @@ var Animation = Widget.extend({ * Also stops animation effects and destroys them if any. */ destroy: function () { + var $oldel = this.$el; // The difference with the default behavior is that we unset the // associated element first so that: // 1) its events are unbinded // 2) it is not removed from the DOM this.setElement(null); this._super.apply(this, arguments); + // Reassign the variables afterwards to allow extensions to use them + // after calling the _super method + this.$el = $oldel; + this.el = $oldel[0]; + this.$target = this.$el; + this.target = this.el; }, /** * @override