1a84970f1fb01bf68ca63f74bfb6ce645470e3e0
The table of content (TOC) has two mechanisms that interest us here: The first one is scrollSpy (from Bootstrap) which allows (among other things) to bold the menu elements according to the scroll. The second one is a mutation observer which is implemented to regenerate the menu when the content of the TOC changes. This being said, when we edit the TOC and scroll at the same time, there is a race condition that makes scrollSpy want to add a class to a menu element while this menu has just been regenerated by the observer. The error is only visible since the migration from Bootstrap 4 to Bootstrap 5 because to add the class, Bootstrap 4 did it with the jQuery `addClass()` function which does not cause an error if the element on which it is called does not exist. Now, Bootstrap 5 does the same thing in pure JS with `classList.add()` which causes an error if the element on which it is called is not defined. This commit fixes this error by disposing the scrollSpy when the menu is regenerated. Steps to reproduce the error: - drop a table of content block - drag a snippet around and go over the drop zones => traceback. It can appear directly or after some tries. opw-3047375 opw-3035502 task-2948895 X-original-commit: a05f782871c61b2d58ca2fd4277cb7aed65a301d Part-of: odoo/odoo#107732
…
…
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%