summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/web/static/src/js/views/kanban/quick_create_form_view.js11
-rw-r--r--addons/web/static/tests/views/kanban_tests.js37
2 files changed, 48 insertions, 0 deletions
diff --git a/addons/web/static/src/js/views/kanban/quick_create_form_view.js b/addons/web/static/src/js/views/kanban/quick_create_form_view.js
index ec1b60815b8..9286ed82da5 100644
--- a/addons/web/static/src/js/views/kanban/quick_create_form_view.js
+++ b/addons/web/static/src/js/views/kanban/quick_create_form_view.js
@@ -23,6 +23,17 @@ var QuickCreateFormRenderer = FormRenderer.extend({
},
//--------------------------------------------------------------------------
+ // Private
+ //--------------------------------------------------------------------------
+
+ /**
+ * Override to do nothing so that the renderer won't resize on window resize
+ *
+ * @override
+ */
+ _applyFormSizeClass() {},
+
+ //--------------------------------------------------------------------------
// Handlers
//--------------------------------------------------------------------------
diff --git a/addons/web/static/tests/views/kanban_tests.js b/addons/web/static/tests/views/kanban_tests.js
index 8c3f1b90029..56f37a82a23 100644
--- a/addons/web/static/tests/views/kanban_tests.js
+++ b/addons/web/static/tests/views/kanban_tests.js
@@ -4,6 +4,7 @@ odoo.define('web.kanban_tests', function (require) {
var AbstractField = require('web.AbstractField');
const Domain = require('web.Domain');
var fieldRegistry = require('web.field_registry');
+const FormRenderer = require("web.FormRenderer");
var KanbanColumnProgressBar = require('web.KanbanColumnProgressBar');
var kanbanExamplesRegistry = require('web.kanban_examples_registry');
var KanbanRenderer = require('web.KanbanRenderer');
@@ -898,6 +899,42 @@ QUnit.module('Views', {
kanban.destroy();
});
+ QUnit.test('window resize should not change quick create form size', async function (assert) {
+ assert.expect(2);
+
+ testUtils.mock.patch(FormRenderer, {
+ start: function () {
+ this._super.apply(this, arguments);
+ window.addEventListener("resize", this._applyFormSizeClass.bind(this));
+ },
+
+ });
+ const kanban = await createView({
+ View: KanbanView,
+ model: 'partner',
+ data: this.data,
+ arch: '<kanban on_create="quick_create">' +
+ '<field name="bar"/>' +
+ '<templates><t t-name="kanban-box">' +
+ '<div><field name="foo"/></div>' +
+ '</t></templates></kanban>',
+ groupBy: ['bar'],
+ });
+
+ // click to add an element and cancel the quick creation by pressing ESC
+ await testUtils.dom.click(kanban.el.querySelector('.o_kanban_header .o_kanban_quick_add i'));
+
+ const quickCreate = kanban.el.querySelector('.o_kanban_quick_create');
+ assert.hasClass(quickCreate.querySelector('.o_form_view'), "o_xxs_form_view");
+
+ // trigger window resize explicitly to call _applyFormSizeClass
+ window.dispatchEvent(new Event('resize'));
+ assert.hasClass(quickCreate.querySelector('.o_form_view'), 'o_xxs_form_view');
+
+ kanban.destroy();
+ testUtils.mock.unpatch(FormRenderer);
+ });
+
QUnit.test('quick create record: cancel and validate without using the buttons', async function (assert) {
assert.expect(8);