summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/chrome/web_client.js
AgeCommit message (Collapse)Author
2018-04-17[FIX] web: fix issue with initial action in web clientGéry Debongnie
Here is a scenario that could happen before this commit: 1. web client is started 2. it binds a callback on hashchange 3. it performs some async work (read initial action for user) 4. the user (or more likely, a tour) changes the url 5. the hashchange handler is called, and it starts a new action 6. the async work for the web client is over, it then executes the default action and/or clicks on the first menu 7. we are now in the default action state, instead of the desired action state (the one from the new url) With this fix, we simply do nothing when there was an hashchange before the initial action was done.
2018-03-19[FIX] web: pick correct menu item on hashchangeAlexandre Kühn
Before this commit, we had the following issue: 1. install CRM and Sales 2. Sales > Customers > (open any form) 3. Click on browser's "back" button We are redirected to the contact kanban view in CRM instead of Sales. This is due to the fact that both menu items share the same action. When the user uses the browser's "back" button (AKA. it triggers an hashchange event), the web_client opens the first menu_item that matches the action. This commit fixes the issue by allowing us to open an action by providing a menu ID: 1. If it matches the action, then it opens this menu instead of the first match. 2. If we do not provide any menuID, or this menuID does not match with the action, it falls back to the first menu matching this action. Fixes #23639
2018-03-19[FIX] web: set correct menu_id on menu actionAlexandre Kühn
Before this commit, the menu_id displayed in the url was incorrect when we click on a menu item for the first time. This is due to the fact that the web_client was mistakenly using the previous menu_id as the action's menu_id: the JS widget menu is not up-to-date with the value of the current menuID, and the web client was relying on its internal state instead of the server's response. With this commit, the web client uses the server's reponse to register the correct menuID that has been clicked.
2018-02-20[FIX] web: WebClient: reload company logo after editionAaron Bohy
This commit only concerns the community webclient. The user can edit the company data by clicking on the company logo displayed in the submenu (left bar). When it does, the logo's url must be updated to force the logo to be reloaded. The last part doesn't work since the new views, as it uses an hook of the form view (called when it is saved) that doesn't exist anymore. This rev. adapts the code so that the logo is reloaded when the edit menu dialog is closed. It also ensures that the logo is properly reloaded by specifying the timestamp in the img url as a query string parameter instead of an hash param, since changing the hash doesn't seem to be enough to fool the browser's cache anymore.
2017-04-11[REF] web, *: simplify our RPC system (in JS)Géry Debongnie
The RPC system was not completely satisfactory, we decided to prepare the future and do it properly. This commit introduces the new rpc system, which replace the previous new one. We now simply have a method, this._rpc, which takes a dictionary of parameters. The idea is that depending on the parameters, it is able to add correct default value when necessary. For situations where we don't have the this._rpc method, we can use the rpc.query method, which takes the same arguments, but directly calls ajax.rpc instead of triggering up some events.
2017-04-11[REF] *: use _rpc method for all rpcsGéry Debongnie
The _rpc method is now the preferred method to do a rpc, so we need to update all calls.
2017-04-11[REF] web,*: remove 'web.model' and 'web.dataModelGéry Debongnie
Use this.rpc instead of Model object, with web.ajax if necessary. nb: EventDispatcherMixin include now the custom_events managment instead of widget
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