diff options
| author | Aaron Bohy <aab@odoo.com> | 2015-07-29 09:11:53 +0200 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2015-07-29 14:36:03 +0200 |
| commit | aa887ed02ce864cd1036f39f7bc6b984b60578d0 (patch) | |
| tree | d73520f191fdd3e773a9164717732c9a44e887f9 /addons/web/static/src/js/framework/widget.js | |
| parent | 51952f30332448b98fd120e9dce13b068507d1c3 (diff) | |
[FIX] web,mail: widgets: replace $el.toggle() by do_toggle()
Since rev. 16eb36ff, do_show() and do_hide() on widgets toggle the classname
o_hidden on which the rule 'display: none' is defined, instead of calling
jQuery's show() and hide().
The method do_toggle(), sharing the same logic, has been introduced in rev.
74c5f772.
From now on, every widgets should call do_toggle() instead of $el.toggle() as
it will have undesiderable effects (they should call do_show() and do_hide()
instead of $el.show() and $el.hide() as well, this as been done in 16eb36ff).
This rev. replaces all calls to $el.toggle() by do_toggle(). It also adds
an optional argument to do_toggle() to force hidding or showing the widget.
Diffstat (limited to 'addons/web/static/src/js/framework/widget.js')
| -rw-r--r-- | addons/web/static/src/js/framework/widget.js | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/addons/web/static/src/js/framework/widget.js b/addons/web/static/src/js/framework/widget.js index 6dbb1294ee7..3a90e432000 100644 --- a/addons/web/static/src/js/framework/widget.js +++ b/addons/web/static/src/js/framework/widget.js @@ -346,17 +346,27 @@ var Widget = core.Class.extend(mixins.PropertiesMixin, { return this.$el; return this.$el.find(selector); }, + /** + * Displays the widget + */ do_show: function () { this.$el.removeClass('o_hidden'); }, + /** + * Hides the widget + */ do_hide: function () { this.$el.addClass('o_hidden'); }, - do_toggle: function () { - if (this.$el.hasClass('o_hidden')) { - this.do_show(); + /** + * Displays or hides the widget + * @param {Boolean} [display] use true to show the widget or false to hide it + */ + do_toggle: function (display) { + if (_.isBoolean(display)) { + display ? this.do_show() : this.do_hide(); } else { - this.do_hide(); + this.$el.hasClass('o_hidden') ? this.do_show() : this.do_hide(); } }, /** |
