diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 487eb46ca26..efa5ac5b2a8 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -673,34 +673,17 @@ session.web.Sidebar = session.web.Widget.extend({ item.callback.apply(self, [item]); } if (item.action) { - var ids = self.widget_parent.get_selected_ids(); - if (ids.length == 0) { - //TODO: make prettier warning? - $("
").text(_t("You must choose at least one record.")).dialog({ - title: _t("Warning"), - modal: true + if (self.widget_parent instanceof session.web.FormView) { + self.widget_parent.do_save(function() { + self.on_item_action_clicked(item); }); - return false; + } else { + self.on_item_action_clicked(item); } - var additional_context = { - active_id: ids[0], - active_ids: ids, - active_model: self.widget_parent.dataset.model - }; - self.rpc("/web/action/load", { - action_id: item.action.id, - context: additional_context - }, function(result) { - result.result.context = _.extend(result.result.context || {}, - additional_context); - result.result.flags = result.result.flags || {}; - result.result.flags.new_window = true; - self.do_action(result.result); - }); } return false; }); - + var $ul = $section.find('ul'); if(!$ul.length) { $ul = $('