diff --git a/addons/auth_password_policy/__manifest__.py b/addons/auth_password_policy/__manifest__.py index 408849b7188..e7fc1a05caf 100644 --- a/addons/auth_password_policy/__manifest__.py +++ b/addons/auth_password_policy/__manifest__.py @@ -10,18 +10,12 @@ ], 'assets': { 'web.assets_backend': [ - 'auth_password_policy/static/src/password_meter.js', - 'auth_password_policy/static/src/password_field.js', - 'auth_password_policy/static/src/password_field.xml', + 'auth_password_policy/static/src/**/*', ], 'web.assets_frontend': [ 'auth_password_policy/static/src/css/password_field.css', 'auth_password_policy/static/src/password_policy.js', ], - 'web.assets_common': [ - 'auth_password_policy/static/src/css/password_field.css', - 'auth_password_policy/static/src/password_policy.js', - ], }, 'license': 'LGPL-3', } diff --git a/addons/bus/__manifest__.py b/addons/bus/__manifest__.py index 4d0bbb13e0a..b07c18ef443 100644 --- a/addons/bus/__manifest__.py +++ b/addons/bus/__manifest__.py @@ -10,7 +10,7 @@ 'installable': True, 'auto_install': True, 'assets': { - 'web.assets_common': [ + 'web.assets_backend': [ 'bus/static/src/*.js', 'bus/static/src/services/**/*.js', 'bus/static/src/workers/websocket_worker.js', diff --git a/addons/bus/static/src/services/presence_service.js b/addons/bus/static/src/services/presence_service.js index b8a298475e8..5d54da77aaa 100644 --- a/addons/bus/static/src/services/presence_service.js +++ b/addons/bus/static/src/services/presence_service.js @@ -2,17 +2,11 @@ import { browser } from "@web/core/browser/browser"; import { registry } from "@web/core/registry"; -import core from "@web/legacy/js/services/core"; export const presenceService = { start(env) { const LOCAL_STORAGE_PREFIX = "presence"; - // map window_focus event from the wowlBus to the legacy one. - env.bus.addEventListener("window_focus", (isOdooFocused) => { - core.bus.trigger("window_focus", isOdooFocused); - }); - let isOdooFocused = true; let lastPresenceTime = browser.localStorage.getItem(`${LOCAL_STORAGE_PREFIX}.lastPresence`) || diff --git a/addons/bus/tests/test_assetsbundle.py b/addons/bus/tests/test_assetsbundle.py index e5a246f0cee..61a5db5b034 100644 --- a/addons/bus/tests/test_assetsbundle.py +++ b/addons/bus/tests/test_assetsbundle.py @@ -15,16 +15,8 @@ class BusWebTests(odoo.tests.HttpCase): - The interface deals with those bus messages by displaying one notification """ db_name = self.env.registry.db_name - bundle_xml_ids = ('web.assets_common', 'web.assets_backend') - - domain = [] - for bundle in bundle_xml_ids: - domain = expression.OR([ - domain, - [('name', 'ilike', bundle + '%')] - ]) # start from a clean slate - self.env['ir.attachment'].search(domain).unlink() + self.env['ir.attachment'].search([('name', 'ilike', 'web.assets_backend%')]).unlink() self.env.registry.clear_cache() sendones = [] @@ -42,7 +34,7 @@ class BusWebTests(odoo.tests.HttpCase): # One sendone for each asset bundle and for each CSS / JS self.assertEqual( len(sendones), - 4, + 2, 'Received %s' % '\n'.join('%s - %s' % (tmp[0], tmp[1]) for tmp in sendones) ) for (channel, message) in sendones: diff --git a/addons/event/__manifest__.py b/addons/event/__manifest__.py index 7f0863d3cde..286b684cdfa 100644 --- a/addons/event/__manifest__.py +++ b/addons/event/__manifest__.py @@ -51,8 +51,6 @@ Key Features 'event/static/src/scss/event.scss', 'event/static/src/icon_selection_field/icon_selection_field.js', 'event/static/src/icon_selection_field/icon_selection_field.xml', - ], - 'web.assets_common': [ 'event/static/src/js/tours/**/*', ], 'web.assets_frontend': [ diff --git a/addons/im_livechat/__manifest__.py b/addons/im_livechat/__manifest__.py index becb944d1c0..aaa3b0e1251 100644 --- a/addons/im_livechat/__manifest__.py +++ b/addons/im_livechat/__manifest__.py @@ -107,29 +107,31 @@ Help your customers with this chat, and analyse their feedback. ('remove', 'im_livechat/static/src/embed/external/**/*'), ], 'im_livechat.assets_embed': [ + 'web/static/lib/jquery/jquery.js', + 'web/static/src/libs/fontawesome/css/font-awesome.css', 'im_livechat/static/src/embed/scss/bootstrap_overridden.scss', ('include', 'web._assets_helpers'), ('include', 'web._assets_backend_helpers'), - ('include', 'web.assets_common'), + 'web/static/src/scss/pre_variables.scss', + 'web/static/lib/bootstrap/scss/_variables.scss', ('include', 'web._assets_bootstrap_backend'), 'web/static/src/scss/bootstrap_overridden.scss', 'web/static/src/webclient/webclient.scss', - 'web/static/src/core/utils/transitions.scss', - 'web/static/src/core/**/*', - 'web/static/src/env.js', - ('remove', 'web/static/src/legacy/js/common_env.js'), - ('remove', 'web/static/src/core/emoji_picker/emoji_data.js'), + ('include', 'web._assets_core'), + 'web/static/src/libs/pdfjs.js', 'web/static/src/views/fields/formatters.js', 'web/static/src/views/fields/file_handler.*', - 'bus/static/src/bus_parameters_service.js', - ('remove', 'bus/static/src/services/assets_watchdog_service.js'), - ('remove', 'bus/static/src/simple_notification_service.js'), + 'bus/static/src/*.js', + 'bus/static/src/services/**/*.js', + ('remove', 'bus/static/src/services/legacy/**/*'), + 'bus/static/src/workers/websocket_worker.js', + 'bus/static/src/workers/websocket_worker_utils.js', ('include', 'im_livechat.assets_core'), 'im_livechat/static/src/embed/external/**/*', ], 'im_livechat.embed_test_assets': [ - ('include', 'web.assets_backend'), + ('include', 'web.assets_backend_tests'), ('include', 'web.tests_assets'), ('remove', 'web/static/tests/mock_server_tests.js'), ('remove', 'im_livechat/static/**'), diff --git a/addons/im_livechat/static/src/embed/external/session_legacy.js b/addons/im_livechat/static/src/embed/external/session_legacy.js deleted file mode 100644 index ce1bebfff96..00000000000 --- a/addons/im_livechat/static/src/embed/external/session_legacy.js +++ /dev/null @@ -1,6 +0,0 @@ -/* @odoo-module alias=web.session */ - -import Session from "@web/legacy/js/core/session"; -import { serverUrl } from "@im_livechat/embed/livechat_data"; - -export default new Session(undefined, serverUrl, { use_cors: true }); diff --git a/addons/im_livechat/views/webclient_templates.xml b/addons/im_livechat/views/webclient_templates.xml index d4ffc6b6de0..fdf7ea55495 100644 --- a/addons/im_livechat/views/webclient_templates.xml +++ b/addons/im_livechat/views/webclient_templates.xml @@ -11,8 +11,6 @@ - - diff --git a/addons/mail/__manifest__.py b/addons/mail/__manifest__.py index 0d3fb705dda..db249488b15 100644 --- a/addons/mail/__manifest__.py +++ b/addons/mail/__manifest__.py @@ -147,6 +147,10 @@ For more specific needs, you may also assign custom-defined actions 'mail/static/src/**/*.dark.scss', ], 'mail.assets_discuss_public_test_tours': [ + 'web_tour/static/src/tour_pointer/**/*', + # scss not needed in tests and depends on scss variables that are not in this bundle + ('remove', 'web_tour/static/src/tour_pointer/**/*.scss'), + 'web_tour/static/src/tour_service/**/*', 'web/static/tests/legacy/helpers/test_utils_file.js', 'mail/static/tests/tours/discuss_public_tour.js', 'mail/static/tests/tours/discuss_channel_as_guest_tour.js', @@ -166,26 +170,28 @@ For more specific needs, you may also assign custom-defined actions 'mail/static/lib/lame/lame.js', ], 'mail.assets_public': [ + 'web/static/lib/jquery/jquery.js', + 'web/static/src/libs/fontawesome/css/font-awesome.css', ('include', 'web._assets_helpers'), ('include', 'web._assets_backend_helpers'), - ('include', 'web.assets_common'), + 'web/static/src/scss/pre_variables.scss', + 'web/static/lib/bootstrap/scss/_variables.scss', ('include', 'web._assets_bootstrap_backend'), 'web/static/src/scss/bootstrap_overridden.scss', 'web/static/src/webclient/webclient.scss', - 'web/static/src/core/utils/transitions.scss', # included early because used by other files - 'web/static/src/core/**/*', - 'web/static/src/env.js', - ('remove', 'web/static/src/core/emoji_picker/emoji_data.js'), + 'web/static/src/scss/mimetypes.scss', + ('include', 'web._assets_core'), + 'web/static/src/libs/pdfjs.js', 'web/static/src/views/fields/formatters.js', 'web/static/src/views/fields/file_handler.*', - 'web/static/src/legacy/js/core/misc.js', - 'web/static/src/legacy/js/env.js', - 'web/static/src/legacy/js/owl_compatibility.js', - 'web/static/src/legacy/js/services/session.js', - 'web/static/src/legacy/utils.js', + 'bus/static/src/*.js', + 'bus/static/src/services/**/*.js', + ('remove', 'bus/static/src/services/legacy/**/*'), + 'bus/static/src/workers/websocket_worker.js', + 'bus/static/src/workers/websocket_worker_utils.js', + 'mail/static/src/core/common/**/*', - # 'mail/static/src/core/public/**/*', 'mail/static/src/**/common/**/*', 'mail/static/src/**/public/**/*', ('remove', 'mail/static/src/**/*.dark.scss'), diff --git a/addons/mail/static/src/core/common/attachment_view.js b/addons/mail/static/src/core/common/attachment_view.js index a9f38808dd5..2e77c16eb0b 100644 --- a/addons/mail/static/src/core/common/attachment_view.js +++ b/addons/mail/static/src/core/common/attachment_view.js @@ -3,7 +3,7 @@ import { Component, onWillUpdateProps, useEffect, useRef, useState } from "@odoo/owl"; import { useService } from "@web/core/utils/hooks"; -import { hidePDFJSButtons } from "@web/legacy/js/libs/pdfjs"; +import { hidePDFJSButtons } from "@web/libs/pdfjs"; /** * @typedef {Object} Props diff --git a/addons/mail/static/src/discuss/core/public/boot.js b/addons/mail/static/src/discuss/core/public/boot.js index 4d772441ea6..aa9e3c1fcab 100644 --- a/addons/mail/static/src/discuss/core/public/boot.js +++ b/addons/mail/static/src/discuss/core/public/boot.js @@ -3,16 +3,12 @@ import { DiscussPublic } from "@mail/discuss/core/public/discuss_public"; import { data } from "mail.discuss_public_template"; -import { Component, mount, whenReady } from "@odoo/owl"; +import { mount, whenReady } from "@odoo/owl"; import { templates } from "@web/core/assets"; import { MainComponentsContainer } from "@web/core/main_components_container"; import { registry } from "@web/core/registry"; import { makeEnv, startServices } from "@web/env"; -import { mapLegacyEnvToWowlEnv } from "@web/legacy/utils"; -import legacyEnv from "@web/legacy/js/env"; - -Component.env = legacyEnv; (async function boot() { await whenReady(); @@ -26,7 +22,6 @@ Component.env = legacyEnv; const env = makeEnv(); await startServices(env); env.services["mail.store"].inPublicPage = true; - mapLegacyEnvToWowlEnv(Component.env, env); odoo.isReady = true; await mount(MainComponentsContainer, document.body, { env, templates, dev: env.debug }); })(); diff --git a/addons/mail/static/src/discuss/core/public/root_widget.js b/addons/mail/static/src/discuss/core/public/root_widget.js deleted file mode 100644 index 8ed02ae4045..00000000000 --- a/addons/mail/static/src/discuss/core/public/root_widget.js +++ /dev/null @@ -1,14 +0,0 @@ -/* @odoo-module alias=root.widget */ -/** - * This module exists so that web_tour can use it as the parent of the - * TourManager so it can get access to _trigger_up. - */ -// need to wait for owl.Component.env to be set by new/public/boot before -// we spawn the component adapter -import "@mail/discuss/core/public/boot"; - -import { Component } from "@odoo/owl"; - -import { standaloneAdapter } from "@web/legacy/js/owl_compatibility"; - -export default standaloneAdapter({ Component }); diff --git a/addons/mass_mailing/__manifest__.py b/addons/mass_mailing/__manifest__.py index ea28dad1d80..55f7e5452b8 100644 --- a/addons/mass_mailing/__manifest__.py +++ b/addons/mass_mailing/__manifest__.py @@ -117,6 +117,7 @@ 'mass_mailing/static/src/js/mailing_mailing_view_form_full_width.js', 'mass_mailing/static/src/xml/mailing_filter_widget.xml', 'mass_mailing/static/src/xml/mass_mailing.xml', + 'mass_mailing/static/src/js/tours/**/*', ], 'mass_mailing.assets_mail_themes': [ 'mass_mailing/static/src/scss/themes/**/*', @@ -137,9 +138,6 @@ 'web_editor.assets_legacy_wysiwyg': [ 'mass_mailing/static/src/js/snippets.editor.js', ], - 'web.assets_common': [ - 'mass_mailing/static/src/js/tours/**/*', - ], 'web.assets_frontend': [ 'mass_mailing/static/src/js/tours/**/*', ], diff --git a/addons/mrp_subcontracting/__manifest__.py b/addons/mrp_subcontracting/__manifest__.py index 5f87f137dcb..4a847ac215e 100644 --- a/addons/mrp_subcontracting/__manifest__.py +++ b/addons/mrp_subcontracting/__manifest__.py @@ -43,12 +43,100 @@ 'web/static/src/scss/pre_variables.scss', 'web/static/lib/bootstrap/scss/_variables.scss', + 'web/static/lib/jquery.ui/jquery-ui.css', + 'web/static/src/libs/fontawesome/css/font-awesome.css', + 'web/static/lib/odoo_ui_icons/*', + 'web/static/lib/select2/select2.css', + 'web/static/lib/select2-bootstrap-css/select2-bootstrap.css', + 'web/static/src/webclient/navbar/navbar.scss', + 'web/static/src/scss/animation.scss', + 'web/static/src/core/colorpicker/colorpicker.scss', + 'web/static/src/scss/mimetypes.scss', + 'web/static/src/legacy/scss/ui.scss', + 'web/static/src/legacy/scss/modal.scss', + 'web/static/src/views/fields/translation_dialog.scss', + 'web/static/src/legacy/scss/name_and_signature.scss', + 'web/static/src/scss/fontawesome_overridden.scss', + + 'web/static/src/legacy/js/promise_extension.js', + 'web/static/src/boot.js', + 'web/static/src/session.js', + 'web/static/src/legacy/js/core/cookie_utils.js', + + 'web/static/lib/moment/moment.js', + 'web/static/lib/luxon/luxon.js', + 'web/static/lib/owl/owl.js', + 'web/static/lib/owl/odoo_module.js', + 'web/static/src/owl2_compatibility/*.js', + 'web/static/src/legacy/js/component_extension.js', + 'web/static/src/legacy/legacy_component.js', + 'web/static/lib/jquery/jquery.js', + 'web/static/lib/jquery.ui/jquery-ui.js', + 'web/static/lib/jquery/jquery.browser.js', + 'web/static/lib/jquery.blockUI/jquery.blockUI.js', + 'web/static/lib/jquery.hotkeys/jquery.hotkeys.js', + 'web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js', + 'web/static/lib/jquery.mjs.nestedSortable/jquery.mjs.nestedSortable.js', + 'web/static/lib/popper/popper.js', + 'web/static/lib/bootstrap/js/dist/dom/data.js', + 'web/static/lib/bootstrap/js/dist/dom/event-handler.js', + 'web/static/lib/bootstrap/js/dist/dom/manipulator.js', + 'web/static/lib/bootstrap/js/dist/dom/selector-engine.js', + 'web/static/lib/bootstrap/js/dist/base-component.js', + 'web/static/lib/bootstrap/js/dist/alert.js', + 'web/static/lib/bootstrap/js/dist/button.js', + 'web/static/lib/bootstrap/js/dist/carousel.js', + 'web/static/lib/bootstrap/js/dist/collapse.js', + 'web/static/lib/bootstrap/js/dist/dropdown.js', + 'web/static/lib/bootstrap/js/dist/modal.js', + 'web/static/lib/bootstrap/js/dist/offcanvas.js', + 'web/static/lib/bootstrap/js/dist/tooltip.js', + 'web/static/lib/bootstrap/js/dist/popover.js', + 'web/static/lib/bootstrap/js/dist/scrollspy.js', + 'web/static/lib/bootstrap/js/dist/tab.js', + 'web/static/lib/bootstrap/js/dist/toast.js', + 'web/static/lib/select2/select2.js', + 'web/static/lib/clipboard/clipboard.js', + 'web/static/lib/jSignature/jSignatureCustom.js', + 'web/static/src/legacy/js/libs/autocomplete.js', + 'web/static/src/legacy/js/libs/bootstrap.js', + 'web/static/src/legacy/js/libs/content-disposition.js', + 'web/static/src/legacy/js/libs/download.js', + 'web/static/src/legacy/js/libs/jquery.js', + 'web/static/src/legacy/js/libs/moment.js', + 'web/static/src/legacy/js/libs/jSignatureCustom.js', + 'web/static/src/legacy/js/core/ajax.js', + 'web/static/src/legacy/js/core/bus.js', + 'web/static/src/legacy/js/core/class.js', + 'web/static/src/legacy/js/core/concurrency.js', + 'web/static/src/legacy/js/core/dialog.js', + 'web/static/src/legacy/xml/dialog.xml', + 'web/static/src/legacy/js/core/dom.js', + 'web/static/src/legacy/js/core/local_storage.js', + 'web/static/src/legacy/js/core/mixins.js', + 'web/static/src/legacy/js/core/ram_storage.js', + 'web/static/src/legacy/js/core/registry.js', + 'web/static/src/legacy/js/core/rpc.js', + 'web/static/src/legacy/js/core/service_mixins.js', + 'web/static/src/legacy/js/core/session.js', + 'web/static/src/legacy/js/core/session_storage.js', + 'web/static/src/legacy/js/core/time.js', + 'web/static/src/legacy/js/core/translation.js', + 'web/static/src/legacy/js/core/utils.js', + 'web/static/src/legacy/js/core/widget.js', + 'web/static/src/legacy/js/services/config.js', + 'web/static/src/legacy/js/services/core.js', + 'web/static/src/legacy/js/common_env.js', + 'web/static/src/legacy/js/widgets/name_and_signature.js', + 'web/static/src/legacy/xml/name_and_signature.xml', + ('include', 'web._assets_bootstrap'), 'base/static/src/css/modules.css', 'web/static/src/core/utils/transitions.scss', 'web/static/src/core/**/*', + ('remove', 'web/static/src/core/emoji_picker/emoji_data.js'), 'web/static/src/search/**/*', 'web/static/src/views/*.js', 'web/static/src/views/*.xml', @@ -63,7 +151,6 @@ 'web/static/src/views/view_dialogs/**/*', 'web/static/src/views/widgets/**/*', 'web/static/src/webclient/**/*', - ('remove', 'web/static/src/webclient/navbar/navbar.scss'), # already in assets_common ('remove', 'web/static/src/webclient/clickbot/clickbot.js'), # lazy loaded ('remove', 'web/static/src/views/form/button_box/*.scss'), @@ -77,8 +164,6 @@ 'web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js', 'web/static/src/legacy/scss/fields.scss', - 'web/static/src/legacy/scss/form_view.scss', - 'web/static/src/legacy/scss/list_view.scss', 'base/static/src/scss/res_partner.scss', @@ -103,7 +188,6 @@ 'mrp_subcontracting/static/src/subcontracting_portal/*', 'web/static/src/start.js', 'web/static/src/legacy/legacy_setup.js', - ('remove', 'web/static/src/core/emoji_picker/emoji_data.js'), ], }, 'uninstall_hook': 'uninstall_hook', diff --git a/addons/mrp_subcontracting/views/subcontracting_portal_templates.xml b/addons/mrp_subcontracting/views/subcontracting_portal_templates.xml index 0dfccf97bd8..74f477440f3 100644 --- a/addons/mrp_subcontracting/views/subcontracting_portal_templates.xml +++ b/addons/mrp_subcontracting/views/subcontracting_portal_templates.xml @@ -72,10 +72,7 @@ odoo.__session_info__ = ; - - - - + diff --git a/addons/point_of_sale/__manifest__.py b/addons/point_of_sale/__manifest__.py index cfbcca640cd..dc257942f68 100644 --- a/addons/point_of_sale/__manifest__.py +++ b/addons/point_of_sale/__manifest__.py @@ -104,12 +104,7 @@ # JS framework - 'web/static/src/boot.js', - 'web/static/src/session.js', - 'web/static/src/env.js', - 'web/static/src/core/utils/transitions.scss', # needs to be loaded before other scss files - 'web/static/src/core/**/*', - ('remove', 'web/static/src/core/emoji_picker/emoji_data.js'), + ('include', 'web._assets_core'), ('remove', 'web/static/src/core/errors/error_handlers.js'), # error handling in PoS is different from the webclient # formatMonetary 'web/static/src/views/fields/formatters.js', @@ -132,9 +127,6 @@ 'web/static/src/webclient/actions/reports/utils.js', # libs 'point_of_sale/static/lib/**/*', - 'web/static/lib/luxon/luxon.js', - 'web/static/lib/owl/owl.js', - 'web/static/lib/owl/odoo_module.js', 'web_editor/static/lib/html2canvas.js', 'web/static/lib/zxing-library/zxing-library.js', # PoS files diff --git a/addons/pos_self_order/__manifest__.py b/addons/pos_self_order/__manifest__.py index c79b8b5edc3..571fe6418ce 100644 --- a/addons/pos_self_order/__manifest__.py +++ b/addons/pos_self_order/__manifest__.py @@ -31,17 +31,9 @@ "web/static/lib/bootstrap/scss/_variables.scss", ("include", "web._assets_bootstrap"), ("include", "web._assets_bootstrap_backend"), - "web/static/src/boot.js", - "web/static/src/env.js", - "web/static/src/session.js", - "web/static/src/core/utils/transitions.scss", - "web/static/src/core/**/*", - ('remove', 'web/static/src/core/emoji_picker/emoji_data.js'), + ('include', 'web._assets_core'), ("remove", "web/static/src/core/browser/router_service.js"), ("remove", "web/static/src/core/debug/**/*"), - "web/static/lib/owl/owl.js", - "web/static/lib/owl/odoo_module.js", - "web/static/lib/luxon/luxon.js", "web/static/src/views/fields/formatters.js", "web/static/src/libs/fontawesome/css/font-awesome.css", "web/static/lib/odoo_ui_icons/*", diff --git a/addons/project/__manifest__.py b/addons/project/__manifest__.py index 947fee88209..3de25979b0e 100644 --- a/addons/project/__manifest__.py +++ b/addons/project/__manifest__.py @@ -94,6 +94,92 @@ 'web/static/src/scss/pre_variables.scss', 'web/static/lib/bootstrap/scss/_variables.scss', + 'web/static/lib/jquery.ui/jquery-ui.css', + 'web/static/src/libs/fontawesome/css/font-awesome.css', + 'web/static/lib/odoo_ui_icons/*', + 'web/static/lib/select2/select2.css', + 'web/static/lib/select2-bootstrap-css/select2-bootstrap.css', + 'web/static/src/webclient/navbar/navbar.scss', + 'web/static/src/scss/animation.scss', + 'web/static/src/core/colorpicker/colorpicker.scss', + 'web/static/src/scss/mimetypes.scss', + 'web/static/src/legacy/scss/ui.scss', + 'web/static/src/legacy/scss/modal.scss', + 'web/static/src/views/fields/translation_dialog.scss', + 'web/static/src/legacy/scss/name_and_signature.scss', + 'web/static/src/scss/fontawesome_overridden.scss', + + 'web/static/src/legacy/js/promise_extension.js', + 'web/static/src/boot.js', + 'web/static/src/session.js', + 'web/static/src/legacy/js/core/cookie_utils.js', + + 'web/static/lib/moment/moment.js', + 'web/static/lib/luxon/luxon.js', + 'web/static/lib/owl/owl.js', + 'web/static/lib/owl/odoo_module.js', + 'web/static/src/owl2_compatibility/*.js', + 'web/static/src/legacy/js/component_extension.js', + 'web/static/src/legacy/legacy_component.js', + 'web/static/lib/jquery/jquery.js', + 'web/static/lib/jquery.ui/jquery-ui.js', + 'web/static/lib/jquery/jquery.browser.js', + 'web/static/lib/jquery.blockUI/jquery.blockUI.js', + 'web/static/lib/jquery.hotkeys/jquery.hotkeys.js', + 'web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js', + 'web/static/lib/jquery.mjs.nestedSortable/jquery.mjs.nestedSortable.js', + 'web/static/lib/popper/popper.js', + 'web/static/lib/bootstrap/js/dist/dom/data.js', + 'web/static/lib/bootstrap/js/dist/dom/event-handler.js', + 'web/static/lib/bootstrap/js/dist/dom/manipulator.js', + 'web/static/lib/bootstrap/js/dist/dom/selector-engine.js', + 'web/static/lib/bootstrap/js/dist/base-component.js', + 'web/static/lib/bootstrap/js/dist/alert.js', + 'web/static/lib/bootstrap/js/dist/button.js', + 'web/static/lib/bootstrap/js/dist/carousel.js', + 'web/static/lib/bootstrap/js/dist/collapse.js', + 'web/static/lib/bootstrap/js/dist/dropdown.js', + 'web/static/lib/bootstrap/js/dist/modal.js', + 'web/static/lib/bootstrap/js/dist/offcanvas.js', + 'web/static/lib/bootstrap/js/dist/tooltip.js', + 'web/static/lib/bootstrap/js/dist/popover.js', + 'web/static/lib/bootstrap/js/dist/scrollspy.js', + 'web/static/lib/bootstrap/js/dist/tab.js', + 'web/static/lib/bootstrap/js/dist/toast.js', + 'web/static/lib/select2/select2.js', + 'web/static/lib/clipboard/clipboard.js', + 'web/static/lib/jSignature/jSignatureCustom.js', + 'web/static/src/legacy/js/libs/autocomplete.js', + 'web/static/src/legacy/js/libs/bootstrap.js', + 'web/static/src/legacy/js/libs/content-disposition.js', + 'web/static/src/legacy/js/libs/download.js', + 'web/static/src/legacy/js/libs/jquery.js', + 'web/static/src/legacy/js/libs/moment.js', + 'web/static/src/legacy/js/libs/jSignatureCustom.js', + 'web/static/src/legacy/js/core/ajax.js', + 'web/static/src/legacy/js/core/bus.js', + 'web/static/src/legacy/js/core/class.js', + 'web/static/src/legacy/js/core/concurrency.js', + 'web/static/src/legacy/js/core/dialog.js', + 'web/static/src/legacy/xml/dialog.xml', + 'web/static/src/legacy/js/core/dom.js', + 'web/static/src/legacy/js/core/local_storage.js', + 'web/static/src/legacy/js/core/mixins.js', + 'web/static/src/legacy/js/core/ram_storage.js', + 'web/static/src/legacy/js/core/registry.js', + 'web/static/src/legacy/js/core/rpc.js', + 'web/static/src/legacy/js/core/service_mixins.js', + 'web/static/src/legacy/js/core/session.js', + 'web/static/src/legacy/js/core/session_storage.js', + 'web/static/src/legacy/js/core/time.js', + 'web/static/src/legacy/js/core/translation.js', + 'web/static/src/legacy/js/core/utils.js', + 'web/static/src/legacy/js/core/widget.js', + 'web/static/src/legacy/js/services/config.js', + 'web/static/src/legacy/js/services/core.js', + 'web/static/src/legacy/js/common_env.js', + 'web/static/src/legacy/js/widgets/name_and_signature.js', + 'web/static/src/legacy/xml/name_and_signature.xml', ('include', 'web._assets_bootstrap_backend'), 'base/static/src/css/modules.css', @@ -115,7 +201,6 @@ 'web/static/src/views/view_dialogs/**/*', 'web/static/src/views/widgets/**/*', 'web/static/src/webclient/**/*', - ('remove', 'web/static/src/webclient/navbar/navbar.scss'), # already in assets_common ('remove', 'web/static/src/webclient/clickbot/clickbot.js'), # lazy loaded ('remove', 'web/static/src/views/form/button_box/*.scss'), ('remove', 'web/static/src/core/emoji_picker/emoji_data.js'), @@ -151,6 +236,13 @@ 'web/static/src/legacy/js/env.js', 'web/static/src/legacy/js/owl_compatibility.js', + 'web_editor/static/src/js/editor/odoo-editor/src/base_style.scss', + 'web_editor/static/lib/vkbeautify/**/*', + 'web_editor/static/src/js/common/**/*', + 'web_editor/static/src/js/editor/odoo-editor/src/utils/utils.js', + 'web_editor/static/src/js/wysiwyg/fonts.js', + 'web_editor/static/src/xml/ace.xml', + 'web_editor/static/src/components/**/*', 'web_editor/static/src/scss/web_editor.common.scss', 'web_editor/static/src/scss/web_editor.backend.scss', diff --git a/addons/project/views/project_sharing_project_task_templates.xml b/addons/project/views/project_sharing_project_task_templates.xml index 1e23d82b837..b883f0d3291 100644 --- a/addons/project/views/project_sharing_project_task_templates.xml +++ b/addons/project/views/project_sharing_project_task_templates.xml @@ -24,10 +24,7 @@ odoo.loadMenusPromise = Promise.resolve(); - - - - + diff --git a/addons/stock/__manifest__.py b/addons/stock/__manifest__.py index 104c1dbfb75..e89b9472cc6 100644 --- a/addons/stock/__manifest__.py +++ b/addons/stock/__manifest__.py @@ -100,9 +100,6 @@ 'stock/static/src/scss/report_stock_reception.scss', 'stock/static/src/scss/report_stock_rule.scss', ], - 'web.assets_common': [ - 'stock/static/src/scss/stock_traceability_report.scss', - ], 'web.assets_backend': [ 'stock/static/src/**/*.js', 'stock/static/src/**/*.xml', diff --git a/addons/survey/__manifest__.py b/addons/survey/__manifest__.py index 516e5c702e6..45364e3c95d 100644 --- a/addons/survey/__manifest__.py +++ b/addons/survey/__manifest__.py @@ -98,6 +98,7 @@ sent mails with personal token for the invitation of the survey. 'survey/static/src/scss/survey_survey_views.scss', 'survey/static/src/scss/survey_question_views.scss', 'survey/static/src/scss/survey_templates_results.scss', + 'survey/static/src/js/tours/survey_tour.js', ], "web.dark_mode_assets_backend": [ 'survey/static/src/scss/*.dark.scss', @@ -108,9 +109,6 @@ sent mails with personal token for the invitation of the survey. 'web.qunit_suite_tests': [ 'survey/static/tests/components/*.js', ], - 'web.assets_common': [ - 'survey/static/src/js/tours/survey_tour.js', - ], 'web.assets_frontend': [ 'survey/static/src/js/tours/survey_tour.js', ], diff --git a/addons/web/__manifest__.py b/addons/web/__manifest__.py index 323748b8914..0ac54b77e6e 100644 --- a/addons/web/__manifest__.py +++ b/addons/web/__manifest__.py @@ -36,21 +36,19 @@ This module provides the core of the Odoo Web Client. # 3) an arbitrary name, relevant to the content of the bundle. # # Examples: - # > web.assets_common = assets common to backend clients and others - # (not frontend). # > web_editor.assets_legacy_wysiwyg = assets needed by components defined in the "web_editor" module. - # Warning: Layouts using "assets_frontend" assets do not have the - # "assets_common" assets anymore. So, if it make sense, files added in - # "assets_common" should also be added in "assets_frontend". - # TODO in the future, probably remove "assets_common" definition - # entirely and let all "main" bundles evolve on their own, including the - # files they need in their bundle. - 'web.assets_common': [ + 'web.assets_emoji': [ + 'web/static/src/core/emoji_picker/emoji_data.js' + ], + 'web.assets_backend': [ ('include', 'web._assets_helpers'), - + ('include', 'web._assets_backend_helpers'), 'web/static/src/scss/pre_variables.scss', 'web/static/lib/bootstrap/scss/_variables.scss', + ('include', 'web._assets_bootstrap_backend'), + + ('include', 'web._assets_core'), 'web/static/lib/jquery.ui/jquery-ui.css', 'web/static/src/libs/fontawesome/css/font-awesome.css', @@ -61,22 +59,15 @@ This module provides the core of the Odoo Web Client. 'web/static/src/scss/animation.scss', 'web/static/src/scss/fontawesome_overridden.scss', 'web/static/src/scss/mimetypes.scss', - 'web/static/src/core/colorpicker/colorpicker.scss', 'web/static/src/views/fields/translation_dialog.scss', 'web/static/src/legacy/scss/ui.scss', 'web/static/src/legacy/scss/modal.scss', 'web/static/src/legacy/scss/name_and_signature.scss', 'web/static/src/legacy/js/promise_extension.js', - 'web/static/src/boot.js', - 'web/static/src/session.js', 'web/static/src/legacy/js/core/cookie_utils.js', 'web/static/lib/moment/moment.js', - 'web/static/lib/luxon/luxon.js', - 'web/static/lib/owl/owl.js', - 'web/static/lib/owl/odoo_module.js', - 'web/static/src/owl2_compatibility/*.js', 'web/static/src/legacy/js/component_extension.js', 'web/static/src/legacy/legacy_component.js', 'web/static/lib/jquery/jquery.js', @@ -113,7 +104,6 @@ This module provides the core of the Odoo Web Client. 'web/static/src/legacy/js/libs/download.js', 'web/static/src/legacy/js/libs/jquery.js', 'web/static/src/legacy/js/libs/moment.js', - 'web/static/src/legacy/js/libs/pdfjs.js', 'web/static/src/legacy/js/libs/jSignatureCustom.js', 'web/static/src/legacy/js/core/ajax.js', 'web/static/src/legacy/js/core/bus.js', @@ -139,40 +129,24 @@ This module provides the core of the Odoo Web Client. 'web/static/src/legacy/js/common_env.js', 'web/static/src/legacy/js/widgets/name_and_signature.js', 'web/static/src/legacy/xml/name_and_signature.xml', - ], - 'web.assets_emoji': [ - 'web/static/src/core/emoji_picker/emoji_data.js' - ], - 'web.assets_backend': [ - ('include', 'web._assets_helpers'), - ('include', 'web._assets_backend_helpers'), - - 'web/static/src/scss/pre_variables.scss', - 'web/static/lib/bootstrap/scss/_variables.scss', - - ('include', 'web._assets_bootstrap_backend'), 'base/static/src/css/modules.css', 'web/static/src/core/utils/transitions.scss', - 'web/static/src/core/**/*', 'web/static/src/model/**/*', 'web/static/src/search/**/*', 'web/static/src/webclient/icons.scss', # variables required in list_controller.scss 'web/static/src/views/**/*', 'web/static/src/webclient/**/*', - ('remove', 'web/static/src/webclient/navbar/navbar.scss'), # already in assets_common ('remove', 'web/static/src/webclient/clickbot/clickbot.js'), # lazy loaded ('remove', 'web/static/src/views/form/button_box/*.scss'), - ('remove', 'web/static/src/core/file_viewer/file_viewer.dark.scss'), - ('remove', 'web/static/src/core/emoji_picker/emoji_data.js'), # remove the report code and whitelist only what's needed ('remove', 'web/static/src/webclient/actions/reports/**/*'), 'web/static/src/webclient/actions/reports/*.js', 'web/static/src/webclient/actions/reports/*.xml', - 'web/static/src/env.js', + 'web/static/src/libs/pdfjs.js', 'web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js', @@ -295,7 +269,6 @@ This module provides the core of the Odoo Web Client. 'web/static/src/legacy/js/libs/download.js', 'web/static/src/legacy/js/libs/jquery.js', 'web/static/src/legacy/js/libs/moment.js', - 'web/static/src/legacy/js/libs/pdfjs.js', 'web/static/src/legacy/js/libs/jSignatureCustom.js', 'web/static/src/legacy/js/core/ajax.js', 'web/static/src/legacy/js/core/bus.js', @@ -330,6 +303,7 @@ This module provides the core of the Odoo Web Client. ('remove', 'web/static/src/core/file_viewer/file_viewer.dark.scss'), ('remove', 'web/static/src/core/emoji_picker/emoji_data.js'), 'web/static/src/public/error_notifications.js', + 'web/static/src/libs/pdfjs.js', 'web/static/src/legacy/utils.js', 'web/static/src/legacy/js/core/dates.js', @@ -425,10 +399,6 @@ This module provides the core of the Odoo Web Client. # --------------------------------------------------------------------- # COLOR SCHEME BUNDLES # --------------------------------------------------------------------- - "web.dark_mode_assets_common": [ - ('include', 'web.assets_common'), - 'web/static/src/core/file_viewer/file_viewer.dark.scss', - ], "web.dark_mode_assets_backend": [ ('include', 'web.assets_backend'), 'web/static/src/**/*.dark.scss', @@ -443,10 +413,23 @@ This module provides the core of the Odoo Web Client. # Their naming conventions are similar to those of the main bundles, # with the addition of a prefixed underscore to reflect the "private" # aspect. - # - # Examples: - # > web._assets_helpers = define assets needed in most main bundles + # Bare javascript essentials: module loader, core folder and core libs + 'web._assets_core': [ + # module loader + 'web/static/src/boot.js', + # libs + 'web/static/lib/luxon/luxon.js', + 'web/static/lib/owl/owl.js', + 'web/static/src/owl2_compatibility/*.js', + 'web/static/lib/owl/odoo_module.js', + # core + 'web/static/src/env.js', + 'web/static/src/session.js', + 'web/static/src/core/utils/transitions.scss', + 'web/static/src/core/**/*', + ('remove', 'web/static/src/core/emoji_picker/emoji_data.js'), # always lazy-loaded + ], 'web._assets_primary_variables': [ 'web/static/src/scss/primary_variables.scss', 'web/static/src/**/*.variables.scss', @@ -504,8 +487,8 @@ This module provides the core of the Odoo Web Client. 'web/static/tests/ignore_missing_deps_stop.js', ], # remove this bundle alongside the owl2 compatibility layer - 'web.tests_assets_common': [ - ('include', 'web.assets_common'), + 'web.assets_backend_tests': [ + ('include', 'web.assets_backend'), ('after', 'web/static/src/owl2_compatibility/app.js', 'web/static/tests/owl2_compatibility_app.js'), ], 'web.tests_assets': [ diff --git a/addons/web/static/src/legacy/js/libs/pdfjs.js b/addons/web/static/src/legacy/js/libs/pdfjs.js deleted file mode 100644 index a7d60209f33..00000000000 --- a/addons/web/static/src/legacy/js/libs/pdfjs.js +++ /dev/null @@ -1,66 +0,0 @@ -/** @odoo-module **/ - -import config from '@web/legacy/js/services/config'; - -/** - * Until we have our own implementation of the /web/static/lib/pdfjs/web/viewer.{html,js,css} - * (currently based on Firefox), this method allows us to hide the buttons that we do not want: - * * "Open File" - * * "View Bookmark" - * * "Print" (Hidden on mobile device like Android, iOS, ...) - * * "Download" (Hidden on mobile device like Android, iOS, ...) - * - * @link https://mozilla.github.io/pdf.js/getting_started/ - * - * @param {Element} rootElement - */ -export function hidePDFJSButtons(rootElement) { - const cssStyle = document.createElement("style"); - cssStyle.rel = "stylesheet"; - cssStyle.innerHTML = `button#secondaryOpenFile.secondaryToolbarButton, button#openFile.toolbarButton, -a#secondaryViewBookmark.secondaryToolbarButton, a#viewBookmark.toolbarButton { -display: none !important; -}`; - if (config.device.isMobileDevice) { - cssStyle.innerHTML = `${cssStyle.innerHTML} -button#secondaryDownload.secondaryToolbarButton, button#download.toolbarButton, -button#secondaryPrint.secondaryToolbarButton, button#print.toolbarButton{ -display: none !important; -}`; - } - const iframe = rootElement.tagName === 'IFRAME' ? rootElement : rootElement.querySelector('iframe'); - if (iframe) { - if (!iframe.dataset.hideButtons) { - iframe.dataset.hideButtons = 'true'; - iframe.addEventListener('load', event => { - if (iframe.contentDocument && iframe.contentDocument.head) { - iframe.contentDocument.head.appendChild(cssStyle); - } - }); - } - } else { - console.warn('No IFRAME found'); - } -} - -/* -* List of changes made in the library -* There is no changes to pdf.js in this section, but only a note about changes that has been done in /web/static/lib/pdfjs/. -* -* In the module account_invoice_extract, the code need to react to the 'pagerendered' event triggered by -* pdf.js. However in recent version of pdf.js, event are not visible outside of the library, except if the -* 'eventBusDispatchToDOM' has been set to true. -* -* We tried to set this option from outside of the library but without success, as our pdf viewer is in an iframe. -* There is no state of the iframe in which we can add an event listener to set the option. -* pdf.js has an event used to signal when we can set settings, called 'webviewerloaded'. -* This event is triggered in an EventListener attached to the 'DOMContentLoaded' event. -* So, to list options we had, we could: -* a) add an eventListener to the iframe document or window to react to 'webviewerloaded'. This doesn't work as -* document and windows are not the definitive ones and won't catche the event later. -* b) add an eventListener to the iframe to react to 'DOMContentLoaded', which doens't work too as our listener will be called -* after the pdf.js one. -* -* Finally the option was choosed to modify the default value of this option directly in pdf.js as no hook worked in the -* 'account_invoice_extract' module. -*/ diff --git a/addons/web/static/src/legacy/scss/ui.scss b/addons/web/static/src/legacy/scss/ui.scss index 1a90e27be0e..c5410a0cf91 100644 --- a/addons/web/static/src/legacy/scss/ui.scss +++ b/addons/web/static/src/legacy/scss/ui.scss @@ -206,9 +206,8 @@ span.o_force_ltr { color: #FFFFFF; font-size: 1rem; - // Needed as the parent button could be using font-awesome. - // Can't be put to a BS variable here as we are in assets common (will be - // overridden for backend but left with 'sans-serif' for frontend to not - // have an useless frontend rule. + // Needed as the parent button could be using font-awesome. Can't be put to a BS variable here + // as this file will be included in both backend and frontend, and will be overridden for + // backend but left with 'sans-serif' for frontend to not have an useless frontend rule. font-family: sans-serif; } diff --git a/addons/web/static/src/libs/pdfjs.js b/addons/web/static/src/libs/pdfjs.js new file mode 100644 index 00000000000..fae2115ddcf --- /dev/null +++ b/addons/web/static/src/libs/pdfjs.js @@ -0,0 +1,67 @@ +/** @odoo-module **/ + +import { isMobileOS } from "@web/core/browser/feature_detection"; + +/** + * Until we have our own implementation of the /web/static/lib/pdfjs/web/viewer.{html,js,css} + * (currently based on Firefox), this method allows us to hide the buttons that we do not want: + * * "Open File" + * * "View Bookmark" + * * "Print" (Hidden on mobile device like Android, iOS, ...) + * * "Download" (Hidden on mobile device like Android, iOS, ...) + * + * @link https://mozilla.github.io/pdf.js/getting_started/ + * + * @param {Element} rootElement + */ +export function hidePDFJSButtons(rootElement) { + const cssStyle = document.createElement("style"); + cssStyle.rel = "stylesheet"; + cssStyle.textContent = `button#secondaryOpenFile.secondaryToolbarButton, button#openFile.toolbarButton, +a#secondaryViewBookmark.secondaryToolbarButton, a#viewBookmark.toolbarButton { +display: none !important; +}`; + if (isMobileOS()) { + cssStyle.textContent = `${cssStyle.innerHTML} +button#secondaryDownload.secondaryToolbarButton, button#download.toolbarButton, +button#secondaryPrint.secondaryToolbarButton, button#print.toolbarButton{ +display: none !important; +}`; + } + const iframe = + rootElement.tagName === "IFRAME" ? rootElement : rootElement.querySelector("iframe"); + if (iframe) { + if (!iframe.dataset.hideButtons) { + iframe.dataset.hideButtons = "true"; + iframe.addEventListener("load", (event) => { + if (iframe.contentDocument && iframe.contentDocument.head) { + iframe.contentDocument.head.appendChild(cssStyle); + } + }); + } + } else { + console.warn("No IFRAME found"); + } +} + +/* + * List of changes made in the library + * There is no changes to pdf.js in this section, but only a note about changes that has been done in /web/static/lib/pdfjs/. + * + * In the module account_invoice_extract, the code need to react to the 'pagerendered' event triggered by + * pdf.js. However in recent version of pdf.js, event are not visible outside of the library, except if the + * 'eventBusDispatchToDOM' has been set to true. + * + * We tried to set this option from outside of the library but without success, as our pdf viewer is in an iframe. + * There is no state of the iframe in which we can add an event listener to set the option. + * pdf.js has an event used to signal when we can set settings, called 'webviewerloaded'. + * This event is triggered in an EventListener attached to the 'DOMContentLoaded' event. + * So, to list options we had, we could: + * a) add an eventListener to the iframe document or window to react to 'webviewerloaded'. This doesn't work as + * document and windows are not the definitive ones and won't catche the event later. + * b) add an eventListener to the iframe to react to 'DOMContentLoaded', which doens't work too as our listener will be called + * after the pdf.js one. + * + * Finally the option was choosed to modify the default value of this option directly in pdf.js as no hook worked in the + * 'account_invoice_extract' module. + */ diff --git a/addons/web/static/src/scss/bs_mixins_overrides.scss b/addons/web/static/src/scss/bs_mixins_overrides.scss index 01992118eef..a23ba2860da 100644 --- a/addons/web/static/src/scss/bs_mixins_overrides.scss +++ b/addons/web/static/src/scss/bs_mixins_overrides.scss @@ -4,7 +4,7 @@ //------------------------------------------------------------------------------ // This variable must be defined here instead of bootstrap overridden files -// otherwise we will have deprecation messages for assets_common generation +// otherwise we will have deprecation messages during assets generation $enable-deprecation-messages: false !default; // Override color-contrast function to handle the alpha component of colors diff --git a/addons/web/static/src/views/fields/file_handler.xml b/addons/web/static/src/views/fields/file_handler.xml index c5ed3cb6b96..58a35fbee71 100644 --- a/addons/web/static/src/views/fields/file_handler.xml +++ b/addons/web/static/src/views/fields/file_handler.xml @@ -11,7 +11,7 @@ type="file" t-att-name="props.inputName" t-ref="fileInput" - t-attf-class="o_input_file o_hidden {{ props.fileUploadClass or '' }}" + t-attf-class="o_input_file d-none {{ props.fileUploadClass or '' }}" t-att-multiple="props.multiUpload ? 'multiple' : false" t-att-accept="props.acceptedFileExtensions or '*'" t-on-change="onFileChange" /> diff --git a/addons/web/views/webclient_templates.xml b/addons/web/views/webclient_templates.xml index b924c1560fb..cfb2b8acf43 100644 --- a/addons/web/views/webclient_templates.xml +++ b/addons/web/views/webclient_templates.xml @@ -210,10 +210,7 @@ Web Tests - - - - + @@ -232,10 +229,7 @@ - - - - + @@ -271,15 +265,11 @@ } - - + - - + - - diff --git a/addons/web_editor/__manifest__.py b/addons/web_editor/__manifest__.py index 402824f48e6..3b8f7fe3bbc 100644 --- a/addons/web_editor/__manifest__.py +++ b/addons/web_editor/__manifest__.py @@ -28,7 +28,97 @@ Odoo Web Editor widget. 'web_editor/static/src/js/editor/smooth_scroll_on_drag.js', ], 'web_editor.wysiwyg_iframe_editor_assets': [ - ('include', 'web.assets_common'), + ('include', 'web._assets_helpers'), + + 'web/static/src/scss/pre_variables.scss', + 'web/static/lib/bootstrap/scss/_variables.scss', + + 'web/static/lib/jquery.ui/jquery-ui.css', + 'web/static/src/libs/fontawesome/css/font-awesome.css', + 'web/static/lib/odoo_ui_icons/*', + 'web/static/lib/select2/select2.css', + 'web/static/lib/select2-bootstrap-css/select2-bootstrap.css', + 'web/static/src/webclient/navbar/navbar.scss', + 'web/static/src/scss/animation.scss', + 'web/static/src/core/colorpicker/colorpicker.scss', + 'web/static/src/scss/mimetypes.scss', + 'web/static/src/legacy/scss/ui.scss', + 'web/static/src/legacy/scss/modal.scss', + 'web/static/src/views/fields/translation_dialog.scss', + 'web/static/src/legacy/scss/name_and_signature.scss', + 'web/static/src/scss/fontawesome_overridden.scss', + + 'web/static/src/legacy/js/promise_extension.js', + 'web/static/src/boot.js', + 'web/static/src/session.js', + 'web/static/src/legacy/js/core/cookie_utils.js', + + 'web/static/lib/moment/moment.js', + 'web/static/lib/luxon/luxon.js', + 'web/static/lib/owl/owl.js', + 'web/static/lib/owl/odoo_module.js', + 'web/static/src/owl2_compatibility/*.js', + 'web/static/src/legacy/js/component_extension.js', + 'web/static/src/legacy/legacy_component.js', + 'web/static/lib/jquery/jquery.js', + 'web/static/lib/jquery.ui/jquery-ui.js', + 'web/static/lib/jquery/jquery.browser.js', + 'web/static/lib/jquery.blockUI/jquery.blockUI.js', + 'web/static/lib/jquery.hotkeys/jquery.hotkeys.js', + 'web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js', + 'web/static/lib/jquery.mjs.nestedSortable/jquery.mjs.nestedSortable.js', + 'web/static/lib/popper/popper.js', + 'web/static/lib/bootstrap/js/dist/dom/data.js', + 'web/static/lib/bootstrap/js/dist/dom/event-handler.js', + 'web/static/lib/bootstrap/js/dist/dom/manipulator.js', + 'web/static/lib/bootstrap/js/dist/dom/selector-engine.js', + 'web/static/lib/bootstrap/js/dist/base-component.js', + 'web/static/lib/bootstrap/js/dist/alert.js', + 'web/static/lib/bootstrap/js/dist/button.js', + 'web/static/lib/bootstrap/js/dist/carousel.js', + 'web/static/lib/bootstrap/js/dist/collapse.js', + 'web/static/lib/bootstrap/js/dist/dropdown.js', + 'web/static/lib/bootstrap/js/dist/modal.js', + 'web/static/lib/bootstrap/js/dist/offcanvas.js', + 'web/static/lib/bootstrap/js/dist/tooltip.js', + 'web/static/lib/bootstrap/js/dist/popover.js', + 'web/static/lib/bootstrap/js/dist/scrollspy.js', + 'web/static/lib/bootstrap/js/dist/tab.js', + 'web/static/lib/bootstrap/js/dist/toast.js', + 'web/static/lib/select2/select2.js', + 'web/static/lib/clipboard/clipboard.js', + 'web/static/lib/jSignature/jSignatureCustom.js', + 'web/static/src/legacy/js/libs/autocomplete.js', + 'web/static/src/legacy/js/libs/bootstrap.js', + 'web/static/src/legacy/js/libs/content-disposition.js', + 'web/static/src/legacy/js/libs/download.js', + 'web/static/src/legacy/js/libs/jquery.js', + 'web/static/src/legacy/js/libs/moment.js', + 'web/static/src/legacy/js/libs/jSignatureCustom.js', + 'web/static/src/legacy/js/core/ajax.js', + 'web/static/src/legacy/js/core/bus.js', + 'web/static/src/legacy/js/core/class.js', + 'web/static/src/legacy/js/core/concurrency.js', + 'web/static/src/legacy/js/core/dialog.js', + 'web/static/src/legacy/xml/dialog.xml', + 'web/static/src/legacy/js/core/dom.js', + 'web/static/src/legacy/js/core/local_storage.js', + 'web/static/src/legacy/js/core/mixins.js', + 'web/static/src/legacy/js/core/ram_storage.js', + 'web/static/src/legacy/js/core/registry.js', + 'web/static/src/legacy/js/core/rpc.js', + 'web/static/src/legacy/js/core/service_mixins.js', + 'web/static/src/legacy/js/core/session.js', + 'web/static/src/legacy/js/core/session_storage.js', + 'web/static/src/legacy/js/core/time.js', + 'web/static/src/legacy/js/core/translation.js', + 'web/static/src/legacy/js/core/utils.js', + 'web/static/src/legacy/js/core/widget.js', + 'web/static/src/legacy/js/services/config.js', + 'web/static/src/legacy/js/services/core.js', + 'web/static/src/legacy/js/common_env.js', + 'web/static/src/legacy/js/widgets/name_and_signature.js', + 'web/static/src/legacy/xml/name_and_signature.xml', ('include', 'web_editor.assets_wysiwyg'), ('include', 'web_editor.assets_legacy_wysiwyg'), ], @@ -107,15 +197,14 @@ Odoo Web Editor widget. 'web_editor/static/src/xml/wysiwyg.xml', 'web_editor/static/src/xml/wysiwyg_colorpicker.xml', ], - 'web.assets_common': [ + 'web.assets_backend': [ 'web_editor/static/src/js/editor/odoo-editor/src/base_style.scss', 'web_editor/static/lib/vkbeautify/**/*', 'web_editor/static/src/js/common/**/*', 'web_editor/static/src/js/editor/odoo-editor/src/utils/utils.js', 'web_editor/static/src/js/wysiwyg/fonts.js', 'web_editor/static/src/xml/ace.xml', - ], - 'web.assets_backend': [ + ('include', 'web_editor.assets_media_dialog'), # TODO: remove when refactoring 'DatetimePickerUserValueWidget' diff --git a/addons/web_tour/__manifest__.py b/addons/web_tour/__manifest__.py index 0be3c54cd92..71ad0884b8a 100644 --- a/addons/web_tour/__manifest__.py +++ b/addons/web_tour/__manifest__.py @@ -17,14 +17,8 @@ Odoo Web tours. 'views/tour_views.xml' ], 'assets': { - 'web.assets_common': [ - 'web_tour/static/src/tour_pointer/**/*', - 'web_tour/static/src/tour_service/**/*', - ], 'web.assets_backend': [ - 'web_tour/static/src/debug/debug_manager.js', - 'web_tour/static/src/debug/tour_dialog_component.js', - 'web_tour/static/src/debug/tour_dialog_component.xml', + 'web_tour/static/src/**/*', ], 'web.assets_frontend': [ 'web_tour/static/src/tour_pointer/**/*', diff --git a/addons/website/__manifest__.py b/addons/website/__manifest__.py index eafe252c127..183db7fb8cf 100644 --- a/addons/website/__manifest__.py +++ b/addons/website/__manifest__.py @@ -173,6 +173,7 @@ 'website/static/src/scss/website.backend.scss', 'website/static/src/scss/website_visitor_views.scss', 'website/static/src/js/backend/**/*', + 'website/static/src/js/tours/tour_utils.js', 'website/static/src/client_actions/*/*', ('remove', 'website/static/src/client_actions/website_preview/website_preview_test_mode.js'), 'website/static/src/components/fields/*', @@ -195,9 +196,6 @@ 'website/static/src/client_actions/*/*.dark.scss', 'website/static/src/components/website_loader/website_loader.dark.scss' ], - 'web.assets_common': [ - 'website/static/src/js/tours/tour_utils.js', - ], 'web.qunit_suite_tests': [ 'website/static/tests/redirect_field_tests.js', ], diff --git a/addons/website_event/__manifest__.py b/addons/website_event/__manifest__.py index aec751560fc..7c5342b0823 100644 --- a/addons/website_event/__manifest__.py +++ b/addons/website_event/__manifest__.py @@ -49,7 +49,7 @@ ], 'application': True, 'assets': { - 'web.assets_common': [ + 'web.assets_backend': [ 'website_event/static/src/js/tours/**/*', ], 'web.assets_tests': [ diff --git a/addons/website_forum/__manifest__.py b/addons/website_forum/__manifest__.py index 529353ecb91..0cf203744da 100644 --- a/addons/website_forum/__manifest__.py +++ b/addons/website_forum/__manifest__.py @@ -66,7 +66,7 @@ Ask questions, get answers, no distractions 'web.assets_tests': [ 'website_forum/static/tests/**/*', ], - 'web.assets_common': [ + 'web.assets_backend': [ 'website_forum/static/src/js/tours/website_forum.js', ], 'web.assets_frontend': [ diff --git a/addons/website_sale/__manifest__.py b/addons/website_sale/__manifest__.py index a44e0de3640..617a1f00ab7 100644 --- a/addons/website_sale/__manifest__.py +++ b/addons/website_sale/__manifest__.py @@ -87,6 +87,7 @@ 'website_sale/static/src/scss/primary_variables.scss', ], 'web.assets_backend': [ + 'website_sale/static/src/js/tours/tour_utils.js', 'website_sale/static/src/js/website_sale_video_field_preview.js', 'website_sale/static/src/scss/website_sale_backend.scss', 'website_sale/static/src/js/tours/website_sale_shop.js', @@ -104,9 +105,6 @@ 'website_sale/static/src/js/components/wysiwyg_adapter/wysiwyg_adapter.js', 'website_sale/static/src/xml/website_sale_utils.xml', ], - 'web.assets_common': [ - 'website_sale/static/src/js/tours/tour_utils.js', - ], 'web.assets_tests': [ 'website_sale/static/tests/**/*', ], diff --git a/addons/website_slides/__manifest__.py b/addons/website_slides/__manifest__.py index 0fe431130c7..a36666980f4 100644 --- a/addons/website_slides/__manifest__.py +++ b/addons/website_slides/__manifest__.py @@ -196,7 +196,6 @@ Featuring 'web/static/src/legacy/js/libs/download.js', 'web/static/src/legacy/js/libs/jquery.js', 'web/static/src/legacy/js/libs/moment.js', - 'web/static/src/legacy/js/libs/pdfjs.js', 'website/static/src/libs/zoomodoo/zoomodoo.js', 'web/static/src/legacy/js/libs/jSignatureCustom.js', 'web/static/src/legacy/js/core/ajax.js', @@ -225,6 +224,7 @@ Featuring 'web/static/src/legacy/xml/name_and_signature.xml', 'web/static/src/core/**/*.js', 'web/static/src/env.js', + 'web/static/src/libs/pdfjs.js', 'web/static/src/legacy/js/services/session.js', ('remove', 'web/static/src/core/emoji_picker/emoji_data.js'), diff --git a/addons/website_slides/views/website_slides_templates_lesson_embed.xml b/addons/website_slides/views/website_slides_templates_lesson_embed.xml index 7de33d130df..5e1ae8f6fd2 100644 --- a/addons/website_slides/views/website_slides_templates_lesson_embed.xml +++ b/addons/website_slides/views/website_slides_templates_lesson_embed.xml @@ -9,7 +9,6 @@ <t t-esc="slide.name"/> - diff --git a/odoo/addons/base/models/assetsbundle.py b/odoo/addons/base/models/assetsbundle.py index fe631138734..e39d6c43982 100644 --- a/odoo/addons/base/models/assetsbundle.py +++ b/odoo/addons/base/models/assetsbundle.py @@ -55,7 +55,7 @@ class AssetsBundle(object): rx_preprocess_imports = re.compile("""(@import\s?['"]([^'"]+)['"](;?))""") rx_css_split = re.compile("\/\*\! ([a-f0-9-]+) \*\/") - TRACKED_BUNDLES = ['web.assets_common', 'web.assets_backend'] + TRACKED_BUNDLES = ['web.assets_backend'] def __init__(self, name, files, external_assets=(), env=None, css=True, js=True, debug_assets=False, rtl=False, assets_params=None): """