mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
[IMP] config: add enableTransitions flag to config
It is useful to be able to disable the t-transition directive for testing purposes. This commit introduces a global config flag to do just that. closes #768
This commit is contained in:
+19
-2
@@ -2,9 +2,10 @@
|
|||||||
|
|
||||||
The Owl framework is designed to work in many situations. However, it is
|
The Owl framework is designed to work in many situations. However, it is
|
||||||
sometimes necessary to customize some behaviour. This is done by using the
|
sometimes necessary to customize some behaviour. This is done by using the
|
||||||
global `config` object. It currently has one key:
|
global `config` object. It provides two settings:
|
||||||
|
|
||||||
- [`mode`](#mode).
|
- [`mode`](#mode) (default value: `prod`),
|
||||||
|
- [`enableTransitions`](#enabletransitions) (default value: `true`).
|
||||||
|
|
||||||
## Mode
|
## Mode
|
||||||
|
|
||||||
@@ -25,3 +26,19 @@ So, changing this setting is best done at startup.
|
|||||||
|
|
||||||
An important job done by the `dev` mode is to validate props for each component
|
An important job done by the `dev` mode is to validate props for each component
|
||||||
creation and update. Also, extra props will cause an error.
|
creation and update. Also, extra props will cause an error.
|
||||||
|
|
||||||
|
## `enableTransitions`
|
||||||
|
|
||||||
|
Transitions are usually nice, but they can cause issues in some specific cases,
|
||||||
|
such as automated tests. It is uncomfortable having to wait for a transition
|
||||||
|
to end before moving to the next step.
|
||||||
|
|
||||||
|
To solve this issue, Owl can be configured to ignore the `t-transition` directive.
|
||||||
|
To do that, one only needs to set the `enableTransitions` flag to false:
|
||||||
|
|
||||||
|
```js
|
||||||
|
owl.config.enableTransitions = false;
|
||||||
|
```
|
||||||
|
|
||||||
|
Note that it suffers from the same drawback as the "dev" mode: all compiled
|
||||||
|
templates, if any, will keep their current behaviours.
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import { QWeb } from "./qweb/index";
|
|||||||
|
|
||||||
interface Config {
|
interface Config {
|
||||||
mode: string;
|
mode: string;
|
||||||
|
enableTransitions: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const config = {} as Config;
|
export const config = {} as Config;
|
||||||
@@ -28,3 +29,12 @@ Object.defineProperty(config, "mode", {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Object.defineProperty(config, "enableTransitions", {
|
||||||
|
get() {
|
||||||
|
return QWeb.enableTransitions;
|
||||||
|
},
|
||||||
|
set(value: boolean) {
|
||||||
|
QWeb.enableTransitions = value;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|||||||
@@ -205,6 +205,9 @@ QWeb.addDirective({
|
|||||||
name: "transition",
|
name: "transition",
|
||||||
priority: 96,
|
priority: 96,
|
||||||
atNodeCreation({ ctx, value, addNodeHook }) {
|
atNodeCreation({ ctx, value, addNodeHook }) {
|
||||||
|
if (!QWeb.enableTransitions) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
ctx.rootContext.shouldDefineUtils = true;
|
ctx.rootContext.shouldDefineUtils = true;
|
||||||
let name = value;
|
let name = value;
|
||||||
const hooks = {
|
const hooks = {
|
||||||
|
|||||||
@@ -212,6 +212,7 @@ export class QWeb extends EventBus {
|
|||||||
h = h;
|
h = h;
|
||||||
// dev mode enables better error messages or more costly validations
|
// dev mode enables better error messages or more costly validations
|
||||||
static dev: boolean = false;
|
static dev: boolean = false;
|
||||||
|
static enableTransitions: boolean = true;
|
||||||
|
|
||||||
// slots contains sub templates defined with t-set inside t-component nodes, and
|
// slots contains sub templates defined with t-set inside t-component nodes, and
|
||||||
// are meant to be used by the t-slot directive.
|
// are meant to be used by the t-slot directive.
|
||||||
|
|||||||
Reference in New Issue
Block a user