[FIX] web, web_editor: fix scroll to hidden dropped snippets

Fix the scroll when the snippet is the dynamic one because it did not
work as we tried to get the offset of an element with the d-none class.

Remove the scrollValue variable because we don't need it anymore.
It was used before the code was reviewed in a previous commit.

task-2312878

closes odoo/odoo#58486

closes odoo/odoo#58530

X-original-commit: e6d32bc4bfa7f0c3c2f82c2eb99a562c1cb93d83
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
This commit is contained in:
Benjamin Vray
2020-09-25 13:43:26 +00:00
committed by qsm-odoo
parent be86b5afa8
commit 963f0ed02e
2 changed files with 8 additions and 5 deletions
+7 -1
View File
@@ -518,7 +518,13 @@ var dom = {
const isTopScroll = $scrollable.is($topLevelScrollable);
function _computeScrollTop() {
const elPosition = $scrollable[0].scrollTop + ($el.offset().top - $scrollable.offset().top);
let offsetTop = $el.offset().top;
if (el.classList.contains('d-none')) {
el.classList.remove('d-none');
offsetTop = $el.offset().top;
el.classList.add('d-none');
}
const elPosition = $scrollable[0].scrollTop + (offsetTop - $scrollable.offset().top);
let offset = options.forcedOffset;
if (offset === undefined) {
offset = (isTopScroll ? dom.scrollFixedOffset() : 0) + (options.extraOffset || 0);
@@ -1825,7 +1825,6 @@ var SnippetsMenu = Widget.extend({
_makeSnippetDraggable: function ($snippets) {
var self = this;
var $toInsert, dropped, $snippet;
let scrollValue;
let dragAndDropResolve;
@@ -1880,7 +1879,6 @@ var SnippetsMenu = Widget.extend({
over: function () {
if (!dropped) {
dropped = true;
scrollValue = $(this).first().offset().top;
$(this).first().after($toInsert).addClass('d-none');
$toInsert.removeClass('oe_snippet_body');
}
@@ -1905,7 +1903,6 @@ var SnippetsMenu = Widget.extend({
if (!dropped && ui.position.top > 3 && ui.position.left + ui.helper.outerHeight() < self.el.getBoundingClientRect().left) {
var $el = $.nearest({x: ui.position.left, y: ui.position.top}, '.oe_drop_zone', {container: document.body}).first();
if ($el.length) {
scrollValue = $el.offset().top;
$el.after($toInsert);
dropped = true;
}
@@ -1933,7 +1930,7 @@ var SnippetsMenu = Widget.extend({
}
var $target = $toInsert;
await self._scrollToSnippet($target, scrollValue);
await self._scrollToSnippet($target);
_.defer(async function () {
self.trigger_up('snippet_dropped', {$target: $target});