Aaron Bohy
2e3e8cd603
[FIX] component: destroy not yet mounted components (2)
...
Following 2922cee6ea
Previous commit was not correct: used children with a cancelled
fiber (for instance, with a new currentFiber) could be destroyed.
This commit fixes the issue differently, by directly detecting
children that are not used anymore (and not mounted), and destroy
them directly (no need to wait for willStart promise to be resolved
anymore).
2019-11-20 14:31:03 +01:00
Aaron Bohy
2922cee6ea
[FIX] component: can destroy not yet mounted components
...
Sub-issue of #476
2019-11-20 11:43:14 +01:00
Géry Debongnie
c7773bfd2a
[FIX] qweb/component: fix scoping issue with t-model and t-foreach
...
Without this fix, the handler set by t-model did not capture properly
the expression that needs to be updated.
closes #474
2019-11-19 13:15:34 +01:00
Aaron Bohy
e5940b4b6b
[FIX] component: concurrent calls to mount and render
...
Closes #450
2019-11-14 15:12:31 +01:00
Aaron Bohy
e47f604449
[FIX] component: concurrent rendering issue
...
Resolved rendering with cancelled fiber for (not yet) destroyed
component -> Cannot read property 'sel' of null
Closes #421
2019-11-12 10:01:12 +01:00
Géry Debongnie
3c38bbc076
[REF] component: large cleanup of concurrency branch
...
We remove here old comments, add some tests and documentation, and in
general, make sure the state of the code is in a good shape
part of #330
2019-10-25 16:01:52 +02:00
Aaron Bohy
9c5cad15c1
[IMP] component: refactor rendering pipeline
...
This commit introduces a brand new rendering system based on a fiber
class and a scheduler.
closes #330
2019-10-25 16:01:52 +02:00
Géry Debongnie
f6d6da8393
[FIX] component: fix issues with component internal template key
...
closes #298
2019-10-21 09:41:27 +02:00
Géry Debongnie
895fe7c60f
[REF] store: replace ConnectedComponent by useStore hook
...
Closes #304
2019-10-14 11:06:59 +02:00
Géry Debongnie
41b0618c93
[FIX] qweb: improve generated compiled code
2019-10-11 14:10:44 +02:00
Géry Debongnie
cc82b3ffcd
[IMP] component: support dynamic t-component
2019-09-21 21:58:19 +02:00
Géry Debongnie
7a49b9d94e
[REF] component: move render props and promise to fiber
...
part of #293
2019-09-20 10:48:10 +02:00
Géry Debongnie
01eb338e69
[REF] component: move patchqueue management to fiber
...
part of #293
2019-09-20 10:47:58 +02:00
Géry Debongnie
3048c6f961
[REF] component: introduce fiber
...
part of #293
2019-09-20 10:47:55 +02:00
Géry Debongnie
9b589af75a
[REF] qweb: improve generated code in some cases
2019-09-12 09:43:09 +02:00
Géry Debongnie
ffb3263c79
[IMP] component: allow dynamic root nodes
...
closes #283
2019-09-11 13:12:57 +02:00
Géry Debongnie
e1acf66143
[IMP] component: components key is now static
...
This is a breaking change!
closes #279
2019-09-11 11:18:49 +02:00
Géry Debongnie
4cd08d25c8
[FIX] component: solve tricky concurrency issue
...
In some specific situation, a component could crash, because it was
destroyed before being mounted, but reused anyway for another rendering.
2019-09-01 21:24:54 +02:00
Géry Debongnie
5382e824b1
[REF] owl: reorganize src code in sub files
2019-07-16 13:12:08 +02:00
Géry Debongnie
591508e769
[IMP] component: allow top level widgets
...
closes #166
2019-07-12 14:31:34 +02:00
Géry Debongnie
ea015af741
[FIX] component: in slots, qweb was looking in wrong component
...
In slots, the actual parent is where the system should look for existing
widgets, not the rendering context.
closes #239
2019-07-11 15:00:05 +02:00
Géry Debongnie
bfc7c81c0d
[FIX] component: slots should preserve parented relation
...
closes #234
2019-07-10 11:01:15 +02:00
Géry Debongnie
9f1e64d399
[FIX] component: issue with t-slot,t-set,t-value, but no t-foreach
...
closes #232
2019-07-08 17:04:06 +02:00
Géry Debongnie
8e1aa71436
[FIX] component: scope issue with slots
...
Slot templates need to be able to access variables from the parent
scope.
closes #228
2019-07-08 16:24:57 +02:00
Géry Debongnie
7245ccf8f9
[IMP] component: various prop validation improvements
...
- add optional form for list props: ['optionalField?']
- accept undefined values for optional props
- allow declaring props with only boolean true
- throw error if extra prop is given to component
closes #223
2019-06-28 16:53:14 +02:00
Géry Debongnie
1b12cf9b91
[FIX] qweb/component: better handling of class attribute
...
This changes requires using the class module of vdom.
closes #192
2019-06-28 09:49:41 +02:00
Géry Debongnie
34695883c2
[REF] component: use __ for private methods
...
closes #202
2019-06-24 13:42:20 +02:00
Géry Debongnie
3d2e2a1873
[FIX] components: ignore slot if no definition is given
...
closes #203
2019-06-24 13:38:32 +02:00
Géry Debongnie
af6aca83a2
[IMP] components: allow multiple roots in slots
...
closes #199
2019-06-24 13:36:11 +02:00
Géry Debongnie
63a8fcd7e2
[FIX] component: scoping issue with t-on and t-foreach
...
closes #193
2019-06-21 16:31:24 +02:00
Géry Debongnie
e6a5934162
[REF] component: use 'component' instead of 'widget'
2019-06-20 12:31:00 +02:00
Géry Debongnie
35c1de26b8
[IMP] component: allow component name in templates
...
closes #186
2019-06-18 15:02:35 +02:00
Géry Debongnie
f013c57050
[REF] component: rename t-async into t-asyncroot
2019-06-14 15:40:32 +02:00
Géry Debongnie
c481a73a76
[ADD] component: implement t-model directive
...
closes #170
2019-06-14 15:01:29 +02:00
Aaron Bohy
e64e415b3b
[IMP] qweb: add t-async directive on t-widget
...
Closes #98
2019-06-14 14:58:24 +02:00
Aaron Bohy
3ebe985c3c
[FIX] qweb: no more duplicated nodes during transitions
...
If a node was re-added while being removed (i.e. during the remove
transition), the node was duplicated in the DOM for the delay of
the remove transition. This rev. removes the old occurence directly
in that case.
Fixes #121
2019-06-13 11:55:10 +02:00
Aaron Bohy
1c0d4b5832
[FIX] tests: update snapshots
2019-06-13 11:55:10 +02:00
Géry Debongnie
710f42d4e4
[IMP] qweb: add t-slot directive
...
Closes #67
2019-06-12 14:54:24 +02:00
Géry Debongnie
45a2b0122d
[FIX] qweb: add better support for template with only strings
2019-06-12 14:54:24 +02:00
Aaron Bohy
1ff3c32fe4
[IMP] store: allow connecting to another store
...
Closes #58
2019-06-11 11:41:29 +02:00
Géry Debongnie
7b887447da
[IMP] qweb: implements an expression evaluator
...
closes #5
2019-06-07 15:37:45 +02:00
Géry Debongnie
438b21df3f
[REF] qweb: improve variable handling
2019-06-07 15:37:45 +02:00
Aaron Bohy
49baf0de6e
[REF] qweb: t-foreach: remove integer support for t-value
...
Handling it complexifies the compiled code, and it is not really
useful (the same result can be achieved with t-foreach="Array(n)")
Part of #128
2019-06-07 14:52:12 +02:00
Aaron Bohy
e14a4fe338
[REF] qweb: t-foreach: remove x_parity
...
Part of #128
2019-06-07 14:52:12 +02:00
Aaron Bohy
32921ecc20
[IMP] qweb: t-on with t-widget: allow to bind args
2019-06-04 11:59:21 +02:00
Aaron Bohy
1c290c1172
[IMP] qweb: handle t-on modifiers with t-widget
2019-06-04 11:59:21 +02:00
Aaron Bohy
2f9d7ea58f
[REF] qweb: revamp event management
...
Closes #111
2019-06-04 11:59:21 +02:00
Géry Debongnie
187eb922c0
[IMP] component: define props as attribute (remove t-props)
2019-06-03 13:34:01 +02:00
Géry Debongnie
466c12a0e6
[FIX] component: reuse widget if possible
...
Previous code always destroy and recreate widgets.
2019-06-03 13:34:01 +02:00
Aaron Bohy
4d72a4f240
[FIX] qweb: enclose interpolated expr in parentheses
...
Since rev 53e53e9b ,
<div class="o_app" t-attf-class="{{ true ? 'o_extra' : '' }}"/>
produced
<div class="o_extra"/>
whereas it should have produced
<div class="o_app o_extra"/>
This is because there were missing parentheses around the string
returned by `interpolate`, which produced instructions like
var _1 = 'o_app ' + true ? 'o_extra' : '';
Fixes #132
2019-05-29 13:31:48 +02:00