summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorAaron Bohy <aab@odoo.com>2015-07-29 09:11:53 +0200
committerAaron Bohy <aab@odoo.com>2015-07-29 14:36:03 +0200
commitaa887ed02ce864cd1036f39f7bc6b984b60578d0 (patch)
treed73520f191fdd3e773a9164717732c9a44e887f9 /addons/web/static/src
parent51952f30332448b98fd120e9dce13b068507d1c3 (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')
-rw-r--r--addons/web/static/src/css/base.css1
-rw-r--r--addons/web/static/src/css/base.sass1
-rw-r--r--addons/web/static/src/js/control_panel.js2
-rw-r--r--addons/web/static/src/js/framework/widget.js18
-rw-r--r--addons/web/static/src/js/views/form_view.js3
-rw-r--r--addons/web/static/src/js/views/form_widgets.js2
-rw-r--r--addons/web/static/src/js/views/search_view.js2
7 files changed, 18 insertions, 11 deletions
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);
}