[FIX] website: fix the scrolling of table of content in website slides

Steps to reproduce the bug:

- Install the Website Slides module.
- Got to the /slides page.
- Click on a course.
- Click on the "Add Content" button.
- Choose "Web Page" in the modal.
- Once in edit mode, drag and drop a "Table of Content" snippet onto the
page.
- Save the page.
- Scroll the page and observe that the navbar items are updated as you
scroll.
- Click on the "Fullscreen" button.
- Bug: When scrolling the page, the navbar items are no longer updated
as you scroll.

This commit fixes the issue by detecting the scrolling element by
traversing up the ancestors from the 'table of content' snippet, instead
of using the 'getScrollingElement' function, which always returned the
'#wrapwrap' when a Website Slides page is in fullscreen.

opw-3302118

closes odoo/odoo#124935

X-original-commit: 1ac274c3cdddca3e6caf76d9b30b9efaa38bc09f
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Signed-off-by: Vray Benjamin (bvr) <bvr@odoo.com>
This commit is contained in:
Benjamin Vray
2023-06-14 10:54:40 +02:00
parent 156625b86e
commit 059841d870
@@ -13,7 +13,7 @@ const TableOfContent = publicWidget.Widget.extend({
async start() {
this._stripNavbarStyles();
await this._super(...arguments);
this.$scrollingElement = $().getScrollingElement();
this.$scrollingElement = this.$target.closest(".s_table_of_content").closestScrollable();
this.previousPosition = -1;
this._updateTableOfContentNavbarPosition();
this._updateTableOfContentNavbarPositionBound = this._updateTableOfContentNavbarPosition.bind(this);