summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/framework/widget.js
AgeCommit message (Collapse)Author
2017-04-11[REF] web, *: redesign all JS viewsGéry Debongnie
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
2016-04-21[REF] web: stop duplicating webAaron Bohy
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
2015-09-14[IMP] web: improve Widget.proxy's error reportingXavier Morel
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.
2015-07-29[FIX] web,mail: widgets: replace $el.toggle() by do_toggle()Aaron Bohy
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.
2015-07-23[ADD] web: framework: do_toggle on widgetSimon Lejeune
2015-07-23[IMP] web: New notification systemqsm-odoo
Backport of the Notification system
2015-07-17[IMP] web: use a classname to show/hide widgetsAaron Bohy
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.
2015-07-10[IMP] web_editor: adapt css, js and xml to use web_editorChristophe Matthieu
2015-05-15[IMP] web: introduces event bubbling in widgetsGéry Debongnie
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.
2015-03-20[ADD] Web: openerpframework.js: willStart() functionAaron Bohy
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.
2015-03-18[IMP] web+addons: improvement to module systemGéry Debongnie
The module system needs to know the dependencies of a given module before executing the function. This is why the dependencies were defined once in an array, and then were described one more times in the call to require. But a trick can simplify this: the boot function can parse the string representation of the module and extract the calls to require from it. It is more work for the processor, but it leads to simpler module definitions.
2015-03-18[REF] web: add module system to the web clientGéry Debongnie
This commit introduces a new module system for the javascript code. Instead of using global (namespaced) variables everywhere (like openerp.web.whatever, ...), each file declare one (or more) module with its dependencies. Each module will be loaded after its dependencies, and will be given a reference to the return values. This change is a massive departure from the way the client worked previously. It will sadly break some/most history, but I am sure that the future git ecosystem will allow you to easily browse the history past this revision (one can dream). This commit feature: * main namespace is now odoo instead of openerp * a way to define modules and dependencies (inspired by requirejs) * many files have been splitted in simpler subfiles * basic support for debugging in odoo.__DEBUG__ * no global variable (i.e. nothing in window.openerp) * many bug fixes, many new bugs Future vision: this modularization should simplify future code development, simplify debugging and will allow a serious testing effort