[IMP] web: do not resize quick create form on window resize
The quick create form view is explicitly given the o_xxs_form_view class at initialization but resizing the window sometimes changes that class on form element in enterprise. To avoid this in the quick create case, the method _applyFormSizeClass has been overriden in QuickCreateFormRenderer in order to do nothing when the window is resized, so that the class and the related style stay the same as expected. Task ID: 2317807 closes odoo/odoo#56521 X-original-commit: f9c605ea578267de17e6c1dcc69dfd179d5d95fe Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
This commit is contained in:
committed by
Mathieu Duckerts-Antoine
parent
9879f738f5
commit
954fd0e75e
@@ -22,6 +22,17 @@ var QuickCreateFormRenderer = FormRenderer.extend({
|
||||
this.$el.removeClass('o_xxl_form_view');
|
||||
},
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Private
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Override to do nothing so that the renderer won't resize on window resize
|
||||
*
|
||||
* @override
|
||||
*/
|
||||
_applyFormSizeClass() {},
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Handlers
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user