[IMP] web, web_tour: no dropdown for only one CTA
**PURPOSE:** When there's only one CTA, the Action button is not necessary and add one extra clicks. **SPECIFICATION:** When there's only one CTA, do no group in an Action button. **LINKS:** Task ID: 2225270 closes odoo/odoo#51265 Related: odoo/enterprise#10602 Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
This commit is contained in:
@@ -546,16 +546,16 @@ var FormRenderer = BasicRenderer.extend(WidgetAdapterMixin, {
|
||||
*/
|
||||
_renderHeaderButtons: function (node) {
|
||||
var self = this;
|
||||
var $buttons = $('<div>', {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 = $('<div>', {class: 'o_statusbar_buttons'});
|
||||
buttons.forEach(button => $statusbarButtons.append(button));
|
||||
return $statusbarButtons;
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
* @param {Object} page
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user