diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 9e6dfc6213f..6f525f7a8b5 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -110,6 +110,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM "not_interactible_on_create": false, "initial_mode": "view", "disable_autofocus": false, + "footer_to_buttons": false, }); this.is_initialized = $.Deferred(); this.mutating_mutex = new $.Mutex(); @@ -166,6 +167,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM this.$buttons = $(QWeb.render("FormView.buttons", {'widget':self})); if (this.options.$buttons) { + this.options.$buttons.children().remove(); this.$buttons.appendTo(this.options.$buttons); } else { this.$el.find('.oe_form_buttons').replaceWith(this.$buttons); @@ -174,6 +176,9 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM this.$buttons.on('click', '.oe_form_button_edit', this.on_button_edit); this.$buttons.on('click', '.oe_form_button_save', this.on_button_save); this.$buttons.on('click', '.oe_form_button_cancel', this.on_button_cancel); + if (this.options.footer_to_buttons) { + this.$el.find('footer').appendTo(this.$buttons); + } this.$sidebar = this.options.$sidebar || this.$el.find('.oe_form_sidebar'); if (!this.sidebar && this.options.$sidebar) { diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index b3565911843..5d2f31aecf3 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -293,7 +293,7 @@ instance.web.ActionManager = instance.web.Widget.extend({ if (this.dialog === null || this.dialog.isDestroyed()) { this.dialog = new instance.web.Dialog(this, { buttons: {"Close": function() {$(this).dialog("close")}}, - dialogClass: executor.klass + dialogClass: executor.klass, }); if (on_close) this.dialog.on("closing", null, on_close); @@ -303,7 +303,10 @@ instance.web.ActionManager = instance.web.Widget.extend({ } this.dialog.dialog_title = executor.action.name; if (widget instanceof instance.web.ViewManager) { - _.extend(widget.flags, {$buttons: this.dialog.$buttons,}); + _.extend(widget.flags, { + $buttons: this.dialog.$buttons, + footer_to_buttons: true, + }); } this.dialog_widget = widget; var initialized = this.dialog_widget.appendTo(this.dialog.$el); @@ -497,13 +500,6 @@ instance.web.ViewManager = instance.web.Widget.extend({ container.hide(); controller.do_hide(); } - // put the