diff --git a/addons/web/static/src/js/views/form/form_renderer.js b/addons/web/static/src/js/views/form/form_renderer.js index d35012bfc39..393db5f4d6f 100644 --- a/addons/web/static/src/js/views/form/form_renderer.js +++ b/addons/web/static/src/js/views/form/form_renderer.js @@ -546,16 +546,16 @@ var FormRenderer = BasicRenderer.extend(WidgetAdapterMixin, { */ _renderHeaderButtons: function (node) { var self = this; - var $buttons = $('
', {class: 'o_statusbar_buttons'}); + var buttons = []; _.each(node.children, function (child) { if (child.tag === 'button') { - $buttons.append(self._renderHeaderButton(child)); + buttons.push(self._renderHeaderButton(child)); } if (child.tag === 'widget') { - $buttons.append(self._renderTagWidget(child)); + buttons.push(self._renderTagWidget(child)); } }); - return $buttons; + return this._renderStatusbarButtons(buttons); }, /** * @private @@ -743,6 +743,16 @@ var FormRenderer = BasicRenderer.extend(WidgetAdapterMixin, { this._registerModifiers(node, this.state, $button); return $button; }, + /** + * @private + * @param {Array} buttons + * @return {jQueryElement} + */ + _renderStatusbarButtons: function (buttons) { + var $statusbarButtons = $('
', {class: 'o_statusbar_buttons'}); + buttons.forEach(button => $statusbarButtons.append(button)); + return $statusbarButtons; + }, /** * @private * @param {Object} page diff --git a/addons/web_tour/static/src/js/tour_step_utils.js b/addons/web_tour/static/src/js/tour_step_utils.js index d49c28f7778..dc69e8968e2 100644 --- a/addons/web_tour/static/src/js/tour_step_utils.js +++ b/addons/web_tour/static/src/js/tour_step_utils.js @@ -102,10 +102,15 @@ return core.Class.extend({ return [ { mobile: true, - trigger: '.o_statusbar_buttons .btn.dropdown-toggle:contains(Action)', + auto: true, + trigger: '.o_statusbar_buttons', extra_trigger: extraTrigger, - content: _t('Open Action Dropdown Menu.'), - position: 'bottom', + run: actions => { + const $action = $('.o_statusbar_buttons .btn.dropdown-toggle:contains(Action)'); + if ($action.length) { + actions.click($action); + } + }, }, { trigger: `.o_statusbar_buttons button:enabled:contains('${innerTextButton}')`, content: description,