edc4a09ceff2f437cb7cf449c9f77f4fc412e27e
This commit reworks the way the edit mode is left, from the client action. It does 2 things: 1/ It keeps the SnippetsMenu as long as the iframe is reloading. Once everything is ready, the SnippetsMenu is removed with a transition. 2/ It prompts the "Discard your changes" modal when switching language in edit mode. 1/ Before this commit, the WysiwygAdapter was dismounted before reloading the iframe. It was simpler this way, because the OdooEditor has set some listeners on the editable document, which will crash during a reload of the iframe. Now, in a leaveEditMode method, the WysiwygAdapter will make a copy of the snippet's menu html element, and display that skeleton while the editor is destroyed. It will also check if the editable is dirty and prompt a modal to the user if needed, as it was before. Some of the code to display that "fake" snippets menu is shared with the Editor component which uses it to unmount and remount the WysiwygAdapter while reloading the iframe (in a _getDummySnippetsEl method). 2/ With that, the quit method, passed as a prop to the WysiwygAdapter, and played in the new leaveEditMode method, is updated with two parameters: an onLeave function that will be played when the component is unmounted, and a reloadIframe boolean. As the WysiwygAdapter listens to a new 'LEAVE-EDIT-MODE' event using these parameters, it allows for any website component to request leaving the edit mode, with a reload or not, and execute an action after that. This fixes [1], which was leaving the edit mode without going through the WysiwygAdapter, and so, without checking if the editable was dirty or not (i.e. without prompting the "Discard your changes" modal). Related to https://github.com/odoo/odoo/commit/31cc10b91dc7762e23b4bde9b945be0c4ce3fe3b [1]: https://github.com/odoo/odoo/commit/11429329b8dea2dd0b2496dc8c1c8627751cccff task-2687506 Part-of: odoo/odoo#97408
…
…
…
…
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%