diff --git a/addons/web/__manifest__.py b/addons/web/__manifest__.py index 5836ab6da8d..63f21936d24 100644 --- a/addons/web/__manifest__.py +++ b/addons/web/__manifest__.py @@ -359,7 +359,7 @@ This module provides the core of the Odoo Web Client. 'web/static/lib/underscore.string/lib/underscore.string.js', 'web/static/lib/moment/moment.js', 'web/static/lib/owl/owl.js', - 'web/static/src/owl_next_adapter.js', + 'web/static/src/owl2_compatibility/*.js', 'web/static/src/legacy/js/component_extension.js', 'web/static/lib/jquery/jquery.js', 'web/static/lib/jquery.ui/jquery-ui.js', @@ -405,7 +405,6 @@ This module provides the core of the Odoo Web Client. 'web/static/src/legacy/js/core/ajax.js', 'web/static/src/legacy/js/core/browser_detection.js', 'web/static/src/legacy/js/core/bus.js', - 'web/static/src/legacy/js/core/custom_hooks.js', 'web/static/src/legacy/js/core/class.js', 'web/static/src/legacy/js/core/collections.js', 'web/static/src/legacy/js/core/concurrency.js', @@ -453,6 +452,11 @@ This module provides the core of the Odoo Web Client. # first called in web. 'web/static/tests/legacy/helpers/test_utils_file.js' ], + # remove this bundle alongside the owl2 compatibility layer + 'web.tests_assets_common': [ + ('include', 'web.assets_common'), + ('after', 'web/static/src/owl2_compatibility/app.js', 'web/static/tests/owl2_compatibility_app.js'), + ], 'web.tests_assets': [ 'web/static/lib/qunit/qunit-2.9.1.css', 'web/static/lib/qunit/qunit-2.9.1.js', diff --git a/addons/web/static/src/core/assets.js b/addons/web/static/src/core/assets.js index 78cddf884bb..f872aa0327b 100644 --- a/addons/web/static/src/core/assets.js +++ b/addons/web/static/src/core/assets.js @@ -55,7 +55,7 @@ class AssetsLoadingError extends Error {} * @param {string} url the url of the script * @returns {Promise} resolved when the script has been loaded */ -const loadJS = memoize(function loadJS(url) { +export const loadJS = memoize(function loadJS(url) { if (document.querySelector(`script[src="${url}"]`)) { // Already in the DOM and wasn't loaded through this function // Unfortunately there is no way to check whether a script has loaded diff --git a/addons/web/static/src/core/browser/browser.js b/addons/web/static/src/core/browser/browser.js index b67c32ff560..560f8ed41cd 100644 --- a/addons/web/static/src/core/browser/browser.js +++ b/addons/web/static/src/core/browser/browser.js @@ -10,7 +10,7 @@ */ let sessionStorage = window.sessionStorage; -let localStorage = owl.browser.localStorage; +let localStorage = window.localStorage; try { // Safari crashes in Private Browsing localStorage.setItem("__localStorage__", "true"); @@ -20,9 +20,13 @@ try { sessionStorage = makeRAMLocalStorage(); } -export const browser = Object.assign({}, owl.browser, { +export const browser = { addEventListener: window.addEventListener.bind(window), removeEventListener: window.removeEventListener.bind(window), + setTimeout: window.setTimeout.bind(window), + clearTimeout: window.clearTimeout.bind(window), + setInterval: window.setInterval.bind(window), + clearInterval: window.clearInterval.bind(window), requestAnimationFrame: window.requestAnimationFrame.bind(window), cancelAnimationFrame: window.cancelAnimationFrame.bind(window), console: window.console, @@ -32,7 +36,8 @@ export const browser = Object.assign({}, owl.browser, { XMLHttpRequest: window.XMLHttpRequest, localStorage, sessionStorage, -}); + fetch: window.fetch.bind(window), +}; Object.defineProperty(browser, "location", { set(val) { diff --git a/addons/web/static/src/core/checkbox/checkbox.js b/addons/web/static/src/core/checkbox/checkbox.js index 87e4a082ca7..58120cda060 100644 --- a/addons/web/static/src/core/checkbox/checkbox.js +++ b/addons/web/static/src/core/checkbox/checkbox.js @@ -1,6 +1,6 @@ /** @odoo-module **/ -const { Component, QWeb } = owl; +const { Component } = owl; /** * Custom checkbox @@ -8,7 +8,7 @@ const { Component, QWeb } = owl; * * Change the label text * @@ -24,5 +24,6 @@ export class CheckBox extends Component { CheckBox.template = "web.CheckBox"; CheckBox.nextId = 1; - -QWeb.registerComponent("CheckBox", CheckBox); +CheckBox.defaultProps = { + onChange: () => {}, +}; diff --git a/addons/web/static/src/core/checkbox/checkbox.xml b/addons/web/static/src/core/checkbox/checkbox.xml index ba826343c57..c5d4833f71a 100644 --- a/addons/web/static/src/core/checkbox/checkbox.xml +++ b/addons/web/static/src/core/checkbox/checkbox.xml @@ -9,6 +9,7 @@ class="custom-control-input" t-att-disabled="props.disabled" t-att-checked="props.value" + t-on-change="(ev) => props.onChange(ev.target.checked)" />