<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Odoo/addons/web/static/src/js/framework/widget.js, branch 14.0</title>
<subtitle>The current checkout of upstream Odoo</subtitle>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/'/>
<entry>
<title>[REF] web, *: redesign all JS views</title>
<updated>2017-04-11T17:44:38+00:00</updated>
<author>
<name>Géry Debongnie</name>
<email>ged@odoo.com</email>
</author>
<published>2017-03-05T09:05:56+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=905e01921f3c3ef43ace6fc537d1d8c0d280002c'/>
<id>905e01921f3c3ef43ace6fc537d1d8c0d280002c</id>
<content type='text'>
This commit introduce a full redesign of all JS views.  We started
basically from scratch.  The goal was to unify all the various views
under a common framework, to make them testable, to make then usable in
different conditions (in studio, or in the frontend), and to make our
lives easier.

Some important points are:
- we introduced new coding guidelines (camelCase, 80 chars width, ...)
- we have a brand new testing framework (still QUnit based)
- kanban view moved to the web addon
- calendar view (formerly web_calender) moved to web as well
- the tree view was removed
- all new code should be documented

We hope that this code is the start of a new era for the Odoo web
client, we want to have a high quality codebase, well documented, well
tested, well designed.

Work done by the framework team: mostly aab, ged, chm, dmo, qsm
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit introduce a full redesign of all JS views.  We started
basically from scratch.  The goal was to unify all the various views
under a common framework, to make them testable, to make then usable in
different conditions (in studio, or in the frontend), and to make our
lives easier.

Some important points are:
- we introduced new coding guidelines (camelCase, 80 chars width, ...)
- we have a brand new testing framework (still QUnit based)
- kanban view moved to the web addon
- calendar view (formerly web_calender) moved to web as well
- the tree view was removed
- all new code should be documented

We hope that this code is the start of a new era for the Odoo web
client, we want to have a high quality codebase, well documented, well
tested, well designed.

Work done by the framework team: mostly aab, ged, chm, dmo, qsm
</pre>
</div>
</content>
</entry>
<entry>
<title>[REF] web: stop duplicating web</title>
<updated>2016-04-21T13:21:39+00:00</updated>
<author>
<name>Aaron Bohy</name>
<email>aab@odoo.com</email>
</author>
<published>2016-04-08T12:53:34+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=977db823c7c84e9edc7c8cf8384eb9cf47275b3a'/>
<id>977db823c7c84e9edc7c8cf8384eb9cf47275b3a</id>
<content type='text'>
Avoid duplicating web addon in enterprise by extracting a common basis.
Enterprise features stay in enterprise, but use that common basis.

Mainly:
 - JS refactoring and linting
 - Conversion of .sass into .less split into multiple files
 - Templates cleaning and DOM simplification
 - Re-generation of web.pot, and update of .po files
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Avoid duplicating web addon in enterprise by extracting a common basis.
Enterprise features stay in enterprise, but use that common basis.

Mainly:
 - JS refactoring and linting
 - Conversion of .sass into .less split into multiple files
 - Templates cleaning and DOM simplification
 - Re-generation of web.pot, and update of .po files
</pre>
</div>
</content>
</entry>
<entry>
<title>[IMP] web: improve Widget.proxy's error reporting</title>
<updated>2015-09-14T08:20:30+00:00</updated>
<author>
<name>Xavier Morel</name>
<email>xmo@odoo.com</email>
</author>
<published>2015-09-14T08:10:11+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=9882c8826edcf2f36608a18fc7c85f89da856837'/>
<id>9882c8826edcf2f36608a18fc7c85f89da856837</id>
<content type='text'>
Provide a more informative error message than "undefined is not a
function" when a method passed by name to the events object is missing
on the widget.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Provide a more informative error message than "undefined is not a
function" when a method passed by name to the events object is missing
on the widget.
</pre>
</div>
</content>
</entry>
<entry>
<title>[FIX] web,mail: widgets: replace $el.toggle() by do_toggle()</title>
<updated>2015-07-29T12:36:03+00:00</updated>
<author>
<name>Aaron Bohy</name>
<email>aab@odoo.com</email>
</author>
<published>2015-07-29T07:11:53+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=aa887ed02ce864cd1036f39f7bc6b984b60578d0'/>
<id>aa887ed02ce864cd1036f39f7bc6b984b60578d0</id>
<content type='text'>
Since rev. 16eb36ff, do_show() and do_hide() on widgets toggle the classname
o_hidden on which the rule 'display: none' is defined, instead of calling
jQuery's show() and hide().

The method do_toggle(), sharing the same logic, has been introduced in rev.
74c5f772.

From now on, every widgets should call do_toggle() instead of $el.toggle() as
it will have undesiderable effects (they should call do_show() and do_hide()
instead of $el.show() and $el.hide() as well, this as been done in 16eb36ff).

This rev. replaces all calls to $el.toggle() by do_toggle(). It also adds
an optional argument to do_toggle() to force hidding or showing the widget.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since rev. 16eb36ff, do_show() and do_hide() on widgets toggle the classname
o_hidden on which the rule 'display: none' is defined, instead of calling
jQuery's show() and hide().

The method do_toggle(), sharing the same logic, has been introduced in rev.
74c5f772.

From now on, every widgets should call do_toggle() instead of $el.toggle() as
it will have undesiderable effects (they should call do_show() and do_hide()
instead of $el.show() and $el.hide() as well, this as been done in 16eb36ff).

This rev. replaces all calls to $el.toggle() by do_toggle(). It also adds
an optional argument to do_toggle() to force hidding or showing the widget.
</pre>
</div>
</content>
</entry>
<entry>
<title>[ADD] web: framework: do_toggle on widget</title>
<updated>2015-07-23T12:02:40+00:00</updated>
<author>
<name>Simon Lejeune</name>
<email>sle@openerp.com</email>
</author>
<published>2015-07-22T09:10:45+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=74c5f772f3d6debf7e791c703a5ee31cf3fb39a3'/>
<id>74c5f772f3d6debf7e791c703a5ee31cf3fb39a3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[IMP] web: New notification system</title>
<updated>2015-07-23T08:51:12+00:00</updated>
<author>
<name>qsm-odoo</name>
<email>qsm@odoo.com</email>
</author>
<published>2015-07-22T13:37:13+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=86c399f3bde4efb271677914bc9f2721d77a681b'/>
<id>86c399f3bde4efb271677914bc9f2721d77a681b</id>
<content type='text'>
Backport of the Notification system
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Backport of the Notification system
</pre>
</div>
</content>
</entry>
<entry>
<title>[IMP] web: use a classname to show/hide widgets</title>
<updated>2015-07-17T07:53:30+00:00</updated>
<author>
<name>Aaron Bohy</name>
<email>aab@odoo.com</email>
</author>
<published>2015-07-16T13:24:02+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=16eb36ff45bec31cfb98865b739c34e0a513a02f'/>
<id>16eb36ff45bec31cfb98865b739c34e0a513a02f</id>
<content type='text'>
The problem of $el.show()/hide() is that calling show() on a jQuery element on which
there is no display rule in the stylesheet automatically sets 'display: block'.

However, when a jQuery element is not yet in the DOM, the rules defined on it are not yet
applied, meaning that calling show() will set its display to block (in inline style),
even if there is different a css rule (e.g. 'dislay: flex'). As the inline style takes the
priority over the stylesheet, the correct display won't be applied, even when the widget
will be appended in the DOM, resulting in a possibly broken layout.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The problem of $el.show()/hide() is that calling show() on a jQuery element on which
there is no display rule in the stylesheet automatically sets 'display: block'.

However, when a jQuery element is not yet in the DOM, the rules defined on it are not yet
applied, meaning that calling show() will set its display to block (in inline style),
even if there is different a css rule (e.g. 'dislay: flex'). As the inline style takes the
priority over the stylesheet, the correct display won't be applied, even when the widget
will be appended in the DOM, resulting in a possibly broken layout.
</pre>
</div>
</content>
</entry>
<entry>
<title>[IMP] web_editor: adapt css, js and xml to use web_editor</title>
<updated>2015-07-10T15:00:12+00:00</updated>
<author>
<name>Christophe Matthieu</name>
<email>chm@odoo.com</email>
</author>
<published>2015-07-07T14:03:01+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=9665882fbadafbaed0fb56f218c9c74696f71815'/>
<id>9665882fbadafbaed0fb56f218c9c74696f71815</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[IMP] web: introduces event bubbling in widgets</title>
<updated>2015-05-15T07:16:34+00:00</updated>
<author>
<name>Géry Debongnie</name>
<email>ged@odoo.com</email>
</author>
<published>2015-04-21T07:52:17+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=a9522cb46ffc750faece04bb2cb96fa2b22a7131'/>
<id>a9522cb46ffc750faece04bb2cb96fa2b22a7131</id>
<content type='text'>
This commit adds event bubbling in the event dispatcher mixin (which
inherits from parentedmixins).  To do this, it introduces a new small
class 'OdooEvent', which register the target and if the event is stopped.

Also, widgets have a new 'custom_events' dictionary to easily register
callbacks like the event dictionary.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit adds event bubbling in the event dispatcher mixin (which
inherits from parentedmixins).  To do this, it introduces a new small
class 'OdooEvent', which register the target and if the event is stopped.

Also, widgets have a new 'custom_events' dictionary to easily register
callbacks like the event dictionary.
</pre>
</div>
</content>
</entry>
<entry>
<title>[ADD] Web: openerpframework.js: willStart() function</title>
<updated>2015-03-20T15:17:05+00:00</updated>
<author>
<name>Aaron Bohy</name>
<email>aab@odoo.com</email>
</author>
<published>2015-02-20T10:18:54+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=db592efca282d12f6fcef38a13dc2cbff31522b8'/>
<id>db592efca282d12f6fcef38a13dc2cbff31522b8</id>
<content type='text'>
Add the willStart() function to Widgets. This function is executed
between init() and start() and its purpose is to perform various
asynchronous calls required for start() to be executed.

It is automatically called after rendering a Widget, and start() is
called once the Deferred returned by willStart() is resolved.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add the willStart() function to Widgets. This function is executed
between init() and start() and its purpose is to perform various
asynchronous calls required for start() to be executed.

It is automatically called after rendering a Widget, and start() is
called once the Deferred returned by willStart() is resolved.
</pre>
</div>
</content>
</entry>
</feed>
