From 90a253bb72ab142df27dc0ca0de2269acbb6ce69 Mon Sep 17 00:00:00 2001 From: Deep Patel Date: Thu, 3 Aug 2017 17:46:40 +0530 Subject: [PATCH] [FIX] web: Form view: make 'Edit' button bounce in readonly ... when the form is clicked. This commit restores the behavior of saas-15, before the new views. --- .../static/src/js/views/form/form_renderer.js | 11 +++++++ addons/web/static/tests/views/form_tests.js | 32 +++++++++++++++++++ 2 files changed, 43 insertions(+) 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 0b00bcd1971..ab491adc9b1 100644 --- a/addons/web/static/src/js/views/form/form_renderer.js +++ b/addons/web/static/src/js/views/form/form_renderer.js @@ -12,6 +12,7 @@ var FormRenderer = BasicRenderer.extend({ className: "o_form_view", events: _.extend({}, BasicRenderer.prototype.events, { 'click .o_notification_box .oe_field_translate': '_onTranslate', + 'click .oe_title, .o_group': '_onClick', }), /** * @override @@ -836,6 +837,16 @@ var FormRenderer = BasicRenderer.extend({ // Handlers //-------------------------------------------------------------------------- + /** + * Makes the Edit button bounce in readonly + * + * @private + */ + _onClick: function () { + if (this.mode === 'readonly') { + this.trigger_up('bounce_edit'); + } + }, /** * @override * @private diff --git a/addons/web/static/tests/views/form_tests.js b/addons/web/static/tests/views/form_tests.js index 4dcdede75d1..2b4c70a9399 100644 --- a/addons/web/static/tests/views/form_tests.js +++ b/addons/web/static/tests/views/form_tests.js @@ -5888,5 +5888,37 @@ QUnit.module('Views', { "table is now sorted"); form.destroy(); }); + + QUnit.test('bounce edit button in readonly mode', function (assert) { + assert.expect(3); + + var form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: '
' + + '
' + + '' + + '
' + + '
', + res_id: 1, + intercepts: { + bounce_edit: function() { + assert.step('bounce'); + }, + }, + }); + + // in readonly + form.$('[name="display_name"]').click(); + assert.verifySteps(['bounce']); + + // in edit + form.$buttons.find('.o_form_button_edit').click(); + form.$('[name="display_name"]').click(); + assert.verifySteps(['bounce']); + + form.destroy(); + }); }); });