[FIX] web_editor: fix dropzones with invisible element
Before this commit, dropzones were created around invisible elements (e.g. the snippet popup). So we had 2 dropzones instead of one at some locations. After this commit, we avoid creating dropzones around elements that must not have dropzones. task-2312878 closes odoo/odoo#65230 X-original-commit: ad56d50e3da000cacdc70d9230cad308d03680bf Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
This commit is contained in:
@@ -1351,16 +1351,26 @@ var SnippetsMenu = Widget.extend({
|
||||
$selectorSiblings = $(_.uniq(($selectorSiblings || $()).add($selectorChildren.children()).get()));
|
||||
}
|
||||
|
||||
var noDropZonesSelector = '[data-invisible="1"], .o_we_no_overlay, :not(:visible)';
|
||||
if ($selectorSiblings) {
|
||||
$selectorSiblings.not('.oe_drop_zone, .oe_drop_clone').each(function () {
|
||||
$selectorSiblings.not(`.oe_drop_zone, .oe_drop_clone, ${noDropZonesSelector}`).each(function () {
|
||||
var data;
|
||||
var $zone = $(this);
|
||||
var $zoneToCheck = $zone;
|
||||
|
||||
if (!$zone.prev('.oe_drop_zone:visible, .oe_drop_clone').length) {
|
||||
while ($zoneToCheck.prev(noDropZonesSelector).length) {
|
||||
$zoneToCheck = $zoneToCheck.prev();
|
||||
}
|
||||
if (!$zoneToCheck.prev('.oe_drop_zone:visible, .oe_drop_clone').length) {
|
||||
data = setDropZoneDirection($zone, $zone.parent());
|
||||
self._insertDropzone($('<we-hook/>').insertBefore($zone), data.vertical, data.style);
|
||||
}
|
||||
if (!$zone.next('.oe_drop_zone:visible, .oe_drop_clone').length) {
|
||||
|
||||
$zoneToCheck = $zone;
|
||||
while ($zoneToCheck.next(noDropZonesSelector).length) {
|
||||
$zoneToCheck = $zoneToCheck.next();
|
||||
}
|
||||
if (!$zoneToCheck.next('.oe_drop_zone:visible, .oe_drop_clone').length) {
|
||||
data = setDropZoneDirection($zone, $zone.parent());
|
||||
self._insertDropzone($('<we-hook/>').insertAfter($zone), data.vertical, data.style);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user