diff options
| author | Vincent Schippefilt <vsc@odoo.com> | 2019-11-05 14:28:19 +0000 |
|---|---|---|
| committer | Vincent Schippefilt <vsc@odoo.com> | 2019-12-09 11:09:10 +0000 |
| commit | d06e67e748ca9c5c538d5e1a1efc4ae798fee707 (patch) | |
| tree | 551b153833d7a6ba72d99798983ac475d200e3ce /addons/web/static/src/js/views/controller_adapter.js | |
| parent | 2cfa68b57158f6f4ac49549e79a5eb7f90cefb5f (diff) | |
[IMP] web: add Odoo view compatibility for OWL
Add a base class for a complete OWL renderer
Add a compatibility layer for a Odoo controller that uses a OWL renderer.
Co-authored-by: Pierre Rousseau <pro@odoo.com>
Diffstat (limited to 'addons/web/static/src/js/views/controller_adapter.js')
| -rw-r--r-- | addons/web/static/src/js/views/controller_adapter.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/addons/web/static/src/js/views/controller_adapter.js b/addons/web/static/src/js/views/controller_adapter.js new file mode 100644 index 00000000000..17973cd3b54 --- /dev/null +++ b/addons/web/static/src/js/views/controller_adapter.js @@ -0,0 +1,42 @@ +odoo.define('web.ControllerAdapter', function (require) { +"use strict"; + +var AbstractController = require('web.AbstractController'); + +var ControllerAdapter = AbstractController.extend({ + on_attach_callback: function () { + this.renderer.__callMounted(); + }, + on_detach_callback: function () { + this.renderer.__callWillUnmount(); + }, + + /** + * @override + * */ + updateRendererState: async function (props) { + let prom; + this.renderer.updateProps(props); + if (this.renderer.__owl__.isMounted) { + prom = this.renderer.render(); + } else { + prom = this.renderer.mount(this.$('.o_content')[0], true); + } + return prom; + }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + /** + * @override + * @private + */ + _startRenderer: async function () { + return this.renderer.mount(this.$('.o_content')[0]); + }, +}); + +return ControllerAdapter; + +}); |
