From cb540c48eb575902018da97f2f541a813bda4d6b Mon Sep 17 00:00:00 2001 From: Martin Geubelle Date: Fri, 15 Sep 2017 14:18:57 +0200 Subject: [FIX] web: correctly display the enterprise label The `upgrade_boolean` widget should display an `Enterprise` label next to it. There is however an issue when a `label` is specified for this field. In this case, the `Enterprise` label should be placed next to the field label (and not the field itself). The easiest solution would have been to instantiate the field widget with its label, but this can't work because the field widget is instantiated before its label. We thus re-render the widget after its label creation. --- addons/web/static/src/js/fields/upgrade_fields.js | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'addons/web/static/src/js/fields/upgrade_fields.js') diff --git a/addons/web/static/src/js/fields/upgrade_fields.js b/addons/web/static/src/js/fields/upgrade_fields.js index ae8cae56ef3..c2c30760abf 100644 --- a/addons/web/static/src/js/fields/upgrade_fields.js +++ b/addons/web/static/src/js/fields/upgrade_fields.js @@ -52,9 +52,9 @@ var AbstractFieldUpgrade = { * * @abstract * @private - * @param {JQuery} the 'Enterprise' label to insert + * @param {jQuery} $enterpriseLabel the 'Enterprise' label to insert */ - _insertEnterpriseLabel: function ($enterprise_label) {}, + _insertEnterpriseLabel: function ($enterpriseLabel) {}, /** * Opens the Upgrade dialog. * @@ -127,6 +127,15 @@ var UpgradeBoolean = FieldBoolean.extend(AbstractFieldUpgrade, { events: _.extend({}, AbstractField.prototype.events, { 'click input': '_onInputClicked', }), + /** + * Re-renders the widget with the label + * + * @param {jQuery} $label + */ + renderWithLabel: function ($label) { + this.$label = $label; + this._render(); + }, //-------------------------------------------------------------------------- // Private @@ -136,8 +145,9 @@ var UpgradeBoolean = FieldBoolean.extend(AbstractFieldUpgrade, { * @override * @private */ - _insertEnterpriseLabel: function ($enterprise_label) { - this.$el.append(' ').append($enterprise_label); + _insertEnterpriseLabel: function ($enterpriseLabel) { + var $el = this.$label || this.$el; + $el.append(' ').append($enterpriseLabel); }, /** * @override @@ -170,8 +180,8 @@ var UpgradeRadio = FieldRadio.extend(AbstractFieldUpgrade, { * @override * @private */ - _insertEnterpriseLabel: function ($enterprise_label) { - this.$('label').last().append(' ').append($enterprise_label); + _insertEnterpriseLabel: function ($enterpriseLabel) { + this.$('label').last().append(' ').append($enterpriseLabel); }, /** * @override -- cgit v1.2.3