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 | |
| 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')
| -rw-r--r-- | addons/mail/static/src/js/mail.js | 2 | ||||
| -rw-r--r-- | addons/web/static/src/css/base.css | 1 | ||||
| -rw-r--r-- | addons/web/static/src/css/base.sass | 1 | ||||
| -rw-r--r-- | addons/web/static/src/js/control_panel.js | 2 | ||||
| -rw-r--r-- | addons/web/static/src/js/framework/widget.js | 18 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/form_view.js | 3 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/form_widgets.js | 2 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/search_view.js | 2 |
8 files changed, 19 insertions, 12 deletions
diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index d3f38f8f65f..688faf3c1e7 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -68,7 +68,7 @@ var TimelineRecordThread = form_common.AbstractField.extend ({ }, _check_visibility: function () { - this.$el.toggle(this.view.get("actual_mode") !== "create"); + this.do_toggle(this.view.get("actual_mode") !== "create"); }, render_value: function () { diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index fa2772f453f..55299c21687 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -1111,7 +1111,6 @@ .openerp .oe_searchview { cursor: text; position: relative; - display: none; height: auto; padding-top: 1px; padding-bottom: 1px; diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index f64c0985fea..0b2be908b4e 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -963,7 +963,6 @@ $sheet-padding: 16px .oe_searchview cursor: text position: relative - display: none height: auto padding-top: 1px padding-bottom: 1px diff --git a/addons/web/static/src/js/control_panel.js b/addons/web/static/src/js/control_panel.js index 3e074538fbf..b2d603b53bf 100644 --- a/addons/web/static/src/js/control_panel.js +++ b/addons/web/static/src/js/control_panel.js @@ -131,7 +131,7 @@ var ControlPanel = Widget.extend({ * @param {Boolean} [visible] true to show the control panel, false to hide it */ _toggle_visibility: function(visible) { - this.$el.toggle(visible); + this.do_toggle(visible); if (!visible && !this.$content) { this.$content = this.$el.contents().detach(); } else if (this.$content) { 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(); } }, /** diff --git a/addons/web/static/src/js/views/form_view.js b/addons/web/static/src/js/views/form_view.js index 2ec8864cfd9..6ad21c1dcff 100644 --- a/addons/web/static/src/js/views/form_view.js +++ b/addons/web/static/src/js/views/form_view.js @@ -270,9 +270,8 @@ var FormView = View.extend(common.FieldManagerMixin, { * Show or hide the sidebar according to the actual_mode */ toggle_sidebar: function() { - var view_mode = this.get("actual_mode") === "view"; if (this.sidebar) { - this.sidebar.$el.toggle(view_mode); + this.sidebar.do_toggle(this.get("actual_mode") === "view"); } }, widgetFocused: function() { diff --git a/addons/web/static/src/js/views/form_widgets.js b/addons/web/static/src/js/views/form_widgets.js index a46695e9e19..79e4a5f97bb 100644 --- a/addons/web/static/src/js/views/form_widgets.js +++ b/addons/web/static/src/js/views/form_widgets.js @@ -1069,7 +1069,7 @@ var FieldReference = common.AbstractField.extend(common.ReinitializeFieldMixin, } this.m2o.field.relation = this.get('value')[0]; this.m2o.set_value(this.get('value')[1]); - this.m2o.$el.toggle(!!this.get('value')[0]); + this.m2o.do_toggle(!!this.get('value')[0]); this.reference_ready = true; }, }); diff --git a/addons/web/static/src/js/views/search_view.js b/addons/web/static/src/js/views/search_view.js index 20541a6ab40..cd0735d24ed 100644 --- a/addons/web/static/src/js/views/search_view.js +++ b/addons/web/static/src/js/views/search_view.js @@ -510,7 +510,7 @@ var SearchView = Widget.extend(/** @lends instance.web.SearchView# */{ }; }, toggle_visibility: function (is_visible) { - this.$el.toggle(!this.headless && is_visible); + this.do_toggle(!this.headless && is_visible); if (this.$buttons) { this.$buttons.toggle(!this.headless && is_visible && this.visible_filters); } |
