diff --git a/addons/web/static/src/views/layout.js b/addons/web/static/src/search/layout.js similarity index 68% rename from addons/web/static/src/views/layout.js rename to addons/web/static/src/search/layout.js index 896d1ef9468..85ba5c3caf1 100644 --- a/addons/web/static/src/views/layout.js +++ b/addons/web/static/src/search/layout.js @@ -22,16 +22,6 @@ export class Layout extends LegacyComponent { this.components = extractLayoutComponents(this.env.config); this.display = display; } - get className() { - const classes = this.props.className.split(" "); - if (this.props.useSampleModel) { - classes.push("o_view_sample_data"); - } - if (this.props.viewType) { - classes.push(`o_${this.props.viewType}_view`); - } - return classes.join(" "); - } get controlPanelSlots() { const slots = { ...this.props.slots }; delete slots.default; @@ -40,10 +30,7 @@ export class Layout extends LegacyComponent { } Layout.template = "web.Layout"; -Layout.defaultProps = { className: "" }; Layout.props = { className: { type: String, optional: true }, slots: { type: Object, optional: true }, - viewType: { type: String, optional: true }, - useSampleModel: { type: Boolean, optional: true }, }; diff --git a/addons/web/static/src/search/layout.xml b/addons/web/static/src/search/layout.xml new file mode 100644 index 00000000000..23a246b4201 --- /dev/null +++ b/addons/web/static/src/search/layout.xml @@ -0,0 +1,13 @@ + + + + + +
+ + + +
+
+ +
diff --git a/addons/web/static/src/search/with_search/with_search.js b/addons/web/static/src/search/with_search/with_search.js index 0d6f4dc7e39..4e53f6c8b9e 100644 --- a/addons/web/static/src/search/with_search/with_search.js +++ b/addons/web/static/src/search/with_search/with_search.js @@ -106,7 +106,5 @@ WithSearch.props = { activateFavorite: { type: Boolean, optional: true }, dynamicFilters: { type: Array, element: Object, optional: true }, searchMenuTypes: { type: Array, element: String, optional: true }, - - class: { type: String, optional: true }, }; WithSearch.template = "web.WithSearch"; diff --git a/addons/web/static/src/views/graph/graph_view.js b/addons/web/static/src/views/graph/graph_view.js index b345b2c8150..bd229973b76 100644 --- a/addons/web/static/src/views/graph/graph_view.js +++ b/addons/web/static/src/views/graph/graph_view.js @@ -5,10 +5,10 @@ import { DropdownItem } from "@web/core/dropdown/dropdown_item"; import { _lt } from "@web/core/l10n/translation"; import { registry } from "@web/core/registry"; import { useService } from "@web/core/utils/hooks"; +import { Layout } from "@web/search/layout"; import { GroupByMenu } from "@web/search/group_by_menu/group_by_menu"; import { standardViewProps } from "@web/views/helpers/standard_view_props"; import { useSetupView } from "@web/views/helpers/view_hook"; -import { Layout } from "@web/views/layout"; import { useModel } from "../helpers/model"; import { GraphArchParser } from "./graph_arch_parser"; import { GraphModel } from "./graph_model"; diff --git a/addons/web/static/src/views/graph/graph_view.xml b/addons/web/static/src/views/graph/graph_view.xml index 04ec625a420..26132bf647d 100644 --- a/addons/web/static/src/views/graph/graph_view.xml +++ b/addons/web/static/src/views/graph/graph_view.xml @@ -46,7 +46,7 @@ - + diff --git a/addons/web/static/src/views/helpers/standard_view_props.js b/addons/web/static/src/views/helpers/standard_view_props.js index a6cf7f1944d..7017a572b33 100644 --- a/addons/web/static/src/views/helpers/standard_view_props.js +++ b/addons/web/static/src/views/helpers/standard_view_props.js @@ -19,7 +19,6 @@ export const standardViewProps = { }, resModel: String, arch: { type: String }, - className: { type: String, optional: 1 }, comparison: { validate: () => true }, // fix problem with validation with type: [Object, null] // Issue OWL: https://github.com/odoo/owl/issues/910 context: { type: Object }, diff --git a/addons/web/static/src/views/layout.xml b/addons/web/static/src/views/layout.xml deleted file mode 100644 index bf25dda0161..00000000000 --- a/addons/web/static/src/views/layout.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - -
- - - -
- - - -
-
-
- -
diff --git a/addons/web/static/src/views/pivot/pivot_view.js b/addons/web/static/src/views/pivot/pivot_view.js index 1ba40c972a3..e4bc27f509c 100644 --- a/addons/web/static/src/views/pivot/pivot_view.js +++ b/addons/web/static/src/views/pivot/pivot_view.js @@ -6,10 +6,10 @@ import { _lt } from "@web/core/l10n/translation"; import { download } from "@web/core/network/download"; import { registry } from "@web/core/registry"; import { useService } from "@web/core/utils/hooks"; +import { Layout } from "@web/search/layout"; import { useModel } from "@web/views/helpers/model"; import { standardViewProps } from "@web/views/helpers/standard_view_props"; import { useSetupView } from "@web/views/helpers/view_hook"; -import { Layout } from "@web/views/layout"; import { PivotArchParser } from "@web/views/pivot/pivot_arch_parser"; import { PivotModel } from "@web/views/pivot/pivot_model"; import { PivotRenderer } from "@web/views/pivot/pivot_renderer"; diff --git a/addons/web/static/src/views/pivot/pivot_view.xml b/addons/web/static/src/views/pivot/pivot_view.xml index 4fe993bf5b4..884ea411d5d 100644 --- a/addons/web/static/src/views/pivot/pivot_view.xml +++ b/addons/web/static/src/views/pivot/pivot_view.xml @@ -17,7 +17,7 @@
- + diff --git a/addons/web/static/src/views/view.js b/addons/web/static/src/views/view.js index 43c5b22e1ff..b9badd7a5ee 100644 --- a/addons/web/static/src/views/view.js +++ b/addons/web/static/src/views/view.js @@ -5,9 +5,9 @@ import { registry } from "@web/core/registry"; import { KeepLast } from "@web/core/utils/concurrency"; import { useService } from "@web/core/utils/hooks"; import { deepCopy } from "@web/core/utils/objects"; +import { extractLayoutComponents } from "@web/search/layout"; import { WithSearch } from "@web/search/with_search/with_search"; import { useActionLinks } from "@web/views/helpers/view_hook"; -import { extractLayoutComponents } from "@web/views/layout"; import { LegacyComponent } from "@web/legacy/legacy_component"; const { onWillUpdateProps, onWillStart, toRaw, useSubEnv } = owl; @@ -255,7 +255,6 @@ export class View extends LegacyComponent { const viewProps = { info: { actionMenus, mode: this.props.display.mode }, arch, - className: "o_action o_view_controller", fields, resModel, useSampleModel: false, diff --git a/addons/web/static/src/views/view.xml b/addons/web/static/src/views/view.xml index 05f163ce586..bef241bd4cd 100644 --- a/addons/web/static/src/views/view.xml +++ b/addons/web/static/src/views/view.xml @@ -2,7 +2,9 @@ - +
+ +
diff --git a/addons/web/static/tests/views/graph_view_tests.js b/addons/web/static/tests/views/graph_view_tests.js index f5e90d70a9b..ab68a9ad0c6 100644 --- a/addons/web/static/tests/views/graph_view_tests.js +++ b/addons/web/static/tests/views/graph_view_tests.js @@ -3244,14 +3244,17 @@ QUnit.module("Views", (hooks) => { noContentHelp: '

click to add a foo

', }); - assert.hasClass(target.querySelector(".o_graph_view"), "o_view_sample_data"); + assert.hasClass(target.querySelector(".o_graph_view .o_content"), "o_view_sample_data"); assert.containsOnce(target, ".o_view_nocontent"); assert.containsOnce(target, ".o_graph_canvas_container canvas"); assert.hasClass(target.querySelector(".o_graph_renderer"), "o_sample_data_disabled"); await toggleFilterMenu(target); await toggleMenuItem(target, "False Domain"); - assert.doesNotHaveClass(target, "o_view_sample_data"); + assert.doesNotHaveClass( + target.querySelector(".o_graph_view .o_content"), + "o_view_sample_data" + ); assert.containsNone(target, ".o_view_nocontent"); assert.containsOnce(target, ".o_graph_canvas_container canvas"); assert.doesNotHaveClass( diff --git a/addons/web/static/tests/views/layout_tests.js b/addons/web/static/tests/views/layout_tests.js index 144cabc548e..19ef6455c8a 100644 --- a/addons/web/static/tests/views/layout_tests.js +++ b/addons/web/static/tests/views/layout_tests.js @@ -4,7 +4,7 @@ import { getFixture, mount } from "@web/../tests/helpers/utils"; import { makeWithSearch, setupControlPanelServiceRegistry } from "@web/../tests/search/helpers"; import { dialogService } from "@web/core/dialog/dialog_service"; import { registry } from "@web/core/registry"; -import { Layout } from "@web/views/layout"; +import { Layout } from "@web/search/layout"; import { getDefaultConfig } from "@web/views/view"; import { makeTestEnv } from "@web/../tests/helpers/mock_env"; @@ -51,11 +51,9 @@ QUnit.module("Views", (hooks) => { QUnit.module("Layout"); QUnit.test("Simple rendering", async (assert) => { - assert.expect(5); - class ToyComponent extends Component {} ToyComponent.template = xml` - +
`; ToyComponent.components = { Layout }; @@ -63,7 +61,7 @@ QUnit.module("Views", (hooks) => { const env = await makeTestEnv({ config: {} }); await mount(ToyComponent, getFixture(), { env }); - assert.containsOnce(target, ".o_toy_view.o_view_sample_data"); + assert.containsOnce(target, ".o_view_sample_data"); assert.containsNone(target, ".o_control_panel"); assert.containsNone(target, ".o_component_with_search_panel"); assert.containsNone(target, ".o_search_panel"); @@ -71,11 +69,9 @@ QUnit.module("Views", (hooks) => { }); QUnit.test("Simple rendering: with search", async (assert) => { - assert.expect(6); - class ToyComponent extends Component {} ToyComponent.template = xml` - +