[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:
@@ -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});
|
||||
|
||||
Reference in New Issue
Block a user