Nikola auto commit.

Source commit: ec1b4fefac
Nikola version: 8.3.3
master
Patricio García 2025-10-04 09:19:48 +01:00
parent 99cada59b8
commit 23c0552efb
3 changed files with 67 additions and 34 deletions

View File

@ -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) { function ActiveNext(tab_next, tab_past) {
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) {
const nexttab = document.getElementById("tab-" + tab_next); const nexttab = document.getElementById("tab-" + tab_next);
const next = document.getElementById("tab-pane-" + tab_next); const next = document.getElementById("tab-pane-" + tab_next);
const pasttab = document.getElementById("tab-" + tab_past); const pasttab = document.getElementById("tab-" + tab_past);
const past = document.getElementById("tab-pane-" + tab_past); const past = document.getElementById("tab-pane-" + tab_past);
if (nexttab != null && next !== null){ if (nexttab != null && next !== null){
next.classList.remove("active"); past.classList.remove("active");
nexttab.classList.remove("active"); pasttab.classList.remove("active");
next.classList.add("fade"); past.classList.add("fade");
} }
if (pasttab != null && past !== null){ if (pasttab != null && past !== null){
past.classList.remove("fade"); next.classList.remove("fade");
past.classList.add("active"); next.classList.add("active");
pasttab.classList.add("active"); nexttab.classList.add("active");
} }
} }
function ShowElement(id) { function HideElement(id) {
const element = document.getElementById(id); const element = document.getElementById(id);
if (element) { if (element) {
element.style.display = "block"; element.style.display = "none";
} }
} }
function ActivePastEventsIfNotNexts(ge_id, tab_next, tab_past, msg_id) { function ActiveNextEvents(tab_next, tab_past, msg_id) {
if (GetNextEventsCount(ge_id) == 0) { ActiveNext(tab_next, tab_past);
ActivePastEvents(tab_next, tab_past); HideElement(msg_id);
} }
ShowElement(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('<div> 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 <div>
if (node.nodeType === Node.ELEMENT_NODE && node.nodeName === 'DIV') {
// console.log('New <div> added to ShadowRoot');
callbackifdiv();
}
});
}
}
};
// Instance a MutationObserver
const observer = new MutationObserver(callback);
// Start to observ the ShadowRoot
observer.observe(shadowRoot, config);
}
}
return false;
} }

View File

@ -100,23 +100,23 @@ bg-dark
</p> </p>
<ul class="nav nav-pills nav-fill"> <ul class="nav nav-pills nav-fill">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#tab-pane-0" id="tab-0"> <a class="nav-link" data-toggle="tab" href="#tab-pane-0" id="tab-0">
Próximos Próximos
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#tab-pane-1" id="tab-1"> <a class="nav-link active" data-toggle="tab" href="#tab-pane-1" id="tab-1">
Pasados Pasados
</a> </a>
</li> </li>
</ul> </ul>
<!-- Tab panes --><div class="tab-content"> <!-- Tab panes --><div class="tab-content">
<div id="tab-pane-0" class="container-xl tab-pane active"> <div id="tab-pane-0" class="container-xl tab-pane fade">
<br><gancio-events baseurl="https://eventos.txs.es" title="Próximos eventos" theme="light" sidebar="false" tags="educatic" id="nextevents"></gancio-events><div id="msg_non_nexts" style="display:none"> <br><gancio-events baseurl="https://eventos.txs.es" title="Próximos eventos" theme="light" sidebar="false" tags="educatic" id="nextevents"></gancio-events><div id="msg_non_nexts" style="display:none">
<p>No existen próximos eventos programados actualmente.</p> <p>No existen próximos eventos programados actualmente.</p>
</div> </div>
</div> </div>
<div id="tab-pane-1" class="container-xl tab-pane fade"> <div id="tab-pane-1" class="container-xl tab-pane active">
<br><gancio-events baseurl="https://eventos.txs.es" title="Eventos pasados" theme="light" sidebar="false" tags="educatic" past="true"></gancio-events> <br><gancio-events baseurl="https://eventos.txs.es" title="Eventos pasados" theme="light" sidebar="false" tags="educatic" past="true"></gancio-events>
</div> </div>
</div> </div>
@ -129,6 +129,7 @@ bg-dark
<!-- site.template_hooks['body_end'].append('<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>') -->
@ -237,6 +238,6 @@ bg-dark
for (let i = 0; i < document.forms.length; i++) for (let i = 0; i < document.forms.length; i++)
document.forms[i].onsubmit = submit; document.forms[i].onsubmit = submit;
})(); })();
</script><script src="../assets/js/gancio-events-detect.js"></script><script> $(document).ready(function(){ ActivePastEventsIfNotNexts("nextevents", "0", "1", "msg_non_nexts"); });</script> </script><script src="../assets/js/gancio-events-detect.js"></script><script> $(document).ready(function(){ CheckNextEvents("nextevents", () => ActiveNextEvents("0", "1", "msg_non_nexts")); }); </script>
</body> </body>
</html> </html>

View File

@ -10,7 +10,7 @@
.. hidemastodon: True .. hidemastodon: True
--> -->
{{% tabpannel active='1' %}} {{% tabpannel active='2' %}}
Próximos Próximos
<gancio-events baseurl='https://eventos.txs.es' title='Próximos eventos' theme='light' sidebar='false' tags='educatic' id='nextevents'></gancio-events> <gancio-events baseurl='https://eventos.txs.es' title='Próximos eventos' theme='light' sidebar='false' tags='educatic' id='nextevents'></gancio-events>
<div id="msg_non_nexts" style="display:none"> <div id="msg_non_nexts" style="display:none">
@ -28,7 +28,6 @@ Para que puedas estar al tanto de los nuevos eventos que organizamos, sin la nec
Si quieres organizar un evento con nosotros {{% doc %}}contáctanos <contact>{{% /doc %}}. Si quieres organizar un evento con nosotros {{% doc %}}contáctanos <contact>{{% /doc %}}.
<script src='/assets/js/gancio-events.es.js'></script> <script src='/assets/js/gancio-events.es.js'></script>
{{% gancio-events-detect ge_id='nextevents' tab_next='0' tab_past='1' msg_id='msg_non_nexts' %}} {{% gancio-events-detect ge_id='nextevents' tab_next='0' tab_past='1' msg_id='msg_non_nexts' %}}