Keep active multimedia player visible in product list

This commit is contained in:
snt 2026-03-29 17:48:13 +02:00
parent 074b4b7281
commit c98d360726
3 changed files with 44 additions and 1 deletions

View file

@ -21,6 +21,7 @@ Modifica la tienda online con los campos de product_library.
"data": ["views/website_sale_views.xml"],
"assets": {
"web.assets_frontend": [
"website_sale_product_library/static/src/js/multimedia_hover_player.js",
"website_sale_product_library/static/src/scss/custom.scss",
],
},

View file

@ -0,0 +1,40 @@
/** @odoo-module */
(function () {
const ACTIVE_CLASS = 'o_multimedia_player_active';
function getProductCard(el) {
return el && el.closest('.oe_product_cart');
}
function activateCard(card) {
if (!card) {
return;
}
const cards = document.querySelectorAll('.oe_product_cart.' + ACTIVE_CLASS);
cards.forEach((c) => {
if (c !== card) {
c.classList.remove(ACTIVE_CLASS);
}
});
card.classList.add(ACTIVE_CLASS);
}
document.addEventListener('click', (ev) => {
const player = ev.target.closest('.o_multimedia_hover_player');
if (!player) {
return;
}
activateCard(getProductCard(player));
});
document.addEventListener('focusin', (ev) => {
const iframe = ev.target.closest('.o_multimedia_hover_player iframe');
if (!iframe) {
return;
}
activateCard(getProductCard(iframe));
});
})();

View file

@ -18,7 +18,9 @@
}
.oe_product_cart:hover .o_multimedia_hover_player,
.o_multimedia_hover_player:hover {
.o_multimedia_hover_player:hover,
.oe_product_cart.o_multimedia_player_active .o_multimedia_hover_player,
.o_multimedia_hover_player:focus-within {
max-height: 60px;
opacity: 1;
pointer-events: auto;