XML files are now declared in python module manifests. During the qweb 't-call-asset' directive, assetbundle will fetch the declared xml files, apply the inheritance (t-inherit) and create a javascript service (for eg: 'web.assets_backend.bundle.xml') which is added at the end of the *.js mimifier file. When the debug mode is activated, comments are added in the template indicating which file the template comes from as well as the inheritances applied to it. **** JavaScript: assets.js (module @web/core/assets) takes care of loading libraries, javascripts and styles. `loadJS(url)` (loads the javascript and returns a resolved promise when the templates are also loaded via the '*.bundle.xml' service) `loadCSS(url)` (loads the style a resolved promise when the file is loaded) `loadXML(xml, app=assets.defaultApp)` (load template into application/owl, used by the `*.bundle.xml` services) `getBundle(bundleName)` (get the bundle descriptor) `loadBundle(desc)` (load the files and bundle from a descriptor) templates (XML element content all owl templates) A new `ready(serviceName)` method on boot.js lets you know when a service is loaded are the require. The xmlDependencies attribute no longer exists. Python: The xmls taken into account by assetbundle.py, applying `t-inherit` inheritances and adding an `name_of_the_bundle.bundle.xml` service in the generated JavaScript file. **** Every manifest changes is into the next commit, except 'web_tour' in this current commit as example. Part-of: odoo/odoo#95500
39 lines
948 B
JavaScript
39 lines
948 B
JavaScript
/** @odoo-module */
|
|
|
|
import { buildQuery } from 'web.rpc';
|
|
|
|
const testEnvServices = {
|
|
getCookie() {},
|
|
httpRequest(/* route, params = {}, readMethod = 'json' */) {
|
|
return Promise.resolve('');
|
|
},
|
|
hotkey: { add: () => () => {} }, // fake service
|
|
notification: { notify() {} },
|
|
};
|
|
|
|
/**
|
|
* Creates services for the test environment. object
|
|
*
|
|
* @param {Object} [env]
|
|
* @returns {Object}
|
|
*/
|
|
function makeTestEnvServices(env) {
|
|
return Object.assign({}, testEnvServices, {
|
|
ajax: {
|
|
rpc() {
|
|
return env.session.rpc(...arguments); // Compatibility Legacy Widgets
|
|
},
|
|
},
|
|
rpc(params, options) {
|
|
const query = buildQuery(params);
|
|
return env.session.rpc(query.route, query.params, options);
|
|
},
|
|
ui: { activeElement: document }, // fake service
|
|
}, env.services);
|
|
}
|
|
|
|
export {
|
|
makeTestEnvServices,
|
|
testEnvServices,
|
|
};
|