From 23c0552efbfc50369f499d1380d61773f81fc26d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patricio=20Garc=C3=ADa?= Date: Sat, 4 Oct 2025 09:19:48 +0100 Subject: [PATCH] Nikola auto commit. Source commit: ec1b4fefacf201e06d1e62ab2bdecdc043870ad2 Nikola version: 8.3.3 --- assets/js/gancio-events-detect.js | 85 +++++++++++++++++++++---------- events/index.html | 13 ++--- events/index.md | 3 +- 3 files changed, 67 insertions(+), 34 deletions(-) diff --git a/assets/js/gancio-events-detect.js b/assets/js/gancio-events-detect.js index 517bb1d..8bfef9a 100644 --- a/assets/js/gancio-events-detect.js +++ b/assets/js/gancio-events-detect.js @@ -1,45 +1,78 @@ /* -* Detect no next Gancio events and deactivate Next events +* Detect next Gancio events and activate Next events */ -function GetNextEventsCount(ge_id) { - const entryComponent = document.querySelector('#' + ge_id); - const shadowRoot = entryComponent.shadowRoot; - const app = shadowRoot.querySelector('div'); - if (app != null) { - return app.children.length; - } else { - return 0; - } -} - -function ActivePastEvents(tab_next, tab_past) { +function ActiveNext(tab_next, tab_past) { const nexttab = document.getElementById("tab-" + tab_next); const next = document.getElementById("tab-pane-" + tab_next); const pasttab = document.getElementById("tab-" + tab_past); const past = document.getElementById("tab-pane-" + tab_past); if (nexttab != null && next !== null){ - next.classList.remove("active"); - nexttab.classList.remove("active"); - next.classList.add("fade"); + past.classList.remove("active"); + pasttab.classList.remove("active"); + past.classList.add("fade"); } if (pasttab != null && past !== null){ - past.classList.remove("fade"); - past.classList.add("active"); - pasttab.classList.add("active"); + next.classList.remove("fade"); + next.classList.add("active"); + nexttab.classList.add("active"); } } -function ShowElement(id) { +function HideElement(id) { const element = document.getElementById(id); if (element) { - element.style.display = "block"; + element.style.display = "none"; } } -function ActivePastEventsIfNotNexts(ge_id, tab_next, tab_past, msg_id) { - if (GetNextEventsCount(ge_id) == 0) { - ActivePastEvents(tab_next, tab_past); - } - ShowElement(msg_id); +function ActiveNextEvents(tab_next, tab_past, msg_id) { + ActiveNext(tab_next, tab_past); + HideElement(msg_id); +} + +// Using MutationObserver + +function CheckNextEvents(ge_id, callbackifdiv) { + // Select element with ge_id + const targetNode = document.getElementById(ge_id); + + // Verify existence of element and that it has ShadowRoot + if (targetNode && targetNode.shadowRoot) { + const shadowRoot = targetNode.shadowRoot; + + // Look for a div element in shadowRoot + const divElement = shadowRoot.querySelector('div'); + if (divElement) { + // console.log('
is present in ShadowRoot'); + callbackifdiv(); + return true; + } else { // In there are not div, keep looking + // MutationObserver configuration + const config = { childList: true }; + + // Callback to execute when changes in shadowRoot + const callback = (mutationsList) => { + for (const mutation of mutationsList) { + if (mutation.type === 'childList') { + // Verify new child nodes + mutation.addedNodes.forEach((node) => { + // Check in node is
+ if (node.nodeType === Node.ELEMENT_NODE && node.nodeName === 'DIV') { + // console.log('New
added to ShadowRoot'); + callbackifdiv(); + } + }); + } + } + }; + + // Instance a MutationObserver + const observer = new MutationObserver(callback); + + // Start to observ the ShadowRoot + observer.observe(shadowRoot, config); + } + } + return false; } diff --git a/events/index.html b/events/index.html index 16eb742..005dc0c 100644 --- a/events/index.html +++ b/events/index.html @@ -100,23 +100,23 @@ bg-dark

-
+

-
+

@@ -128,7 +128,8 @@ bg-dark - + + @@ -237,6 +238,6 @@ bg-dark for (let i = 0; i < document.forms.length; i++) document.forms[i].onsubmit = submit; })(); - + diff --git a/events/index.md b/events/index.md index 7ef7ad9..ca7206b 100644 --- a/events/index.md +++ b/events/index.md @@ -10,7 +10,7 @@ .. hidemastodon: True --> - {{% tabpannel active='1' %}} + {{% tabpannel active='2' %}} Próximos