86 lines
3.1 KiB
JavaScript
86 lines
3.1 KiB
JavaScript
// Folder Toggle Function
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
function toggleFolder(folderId, buttonId) {
|
|
const folder = document.getElementById(folderId);
|
|
const button = document.getElementById(buttonId);
|
|
|
|
// Close other folders and deactivate buttons
|
|
document.querySelectorAll('.links').forEach(link => {
|
|
if (link.id !== folderId) {
|
|
link.style.display = 'none';
|
|
}
|
|
});
|
|
document.querySelectorAll('.button').forEach(btn => {
|
|
if (btn.id !== buttonId) {
|
|
btn.classList.remove('active');
|
|
}
|
|
});
|
|
|
|
// Toggle the selected folder
|
|
if (folder.style.display === 'block') {
|
|
folder.style.display = 'none';
|
|
button.classList.remove('active');
|
|
} else {
|
|
folder.style.display = 'block';
|
|
button.classList.add('active');
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Footer Loader and Event Listeners
|
|
fetch('/parts/footer.html')
|
|
.then(response => response.text())
|
|
.then(data => {
|
|
const footer = document.getElementById('footer');
|
|
if (!footer) return;
|
|
|
|
footer.innerHTML = data;
|
|
|
|
const onChainButton = document.getElementById('onChainButton');
|
|
const lightningButton = document.getElementById('lightningButton');
|
|
const qrCodes = document.getElementById('qrCodes');
|
|
const onChainQRCode = document.getElementById('onChainQRCode');
|
|
const lightningQRCode = document.getElementById('lightningQRCode');
|
|
|
|
if (qrCodes) qrCodes.style.display = 'none';
|
|
|
|
if (onChainButton && lightningButton && qrCodes && onChainQRCode && lightningQRCode) {
|
|
onChainButton.addEventListener('click', function () {
|
|
const isOnChainVisible = onChainQRCode.style.display === 'block';
|
|
qrCodes.style.display = 'block';
|
|
onChainQRCode.style.display = isOnChainVisible ? 'none' : 'block';
|
|
lightningQRCode.style.display = 'none';
|
|
});
|
|
|
|
lightningButton.addEventListener('click', function () {
|
|
const isLightningVisible = lightningQRCode.style.display === 'block';
|
|
qrCodes.style.display = 'block';
|
|
lightningQRCode.style.display = isLightningVisible ? 'none' : 'block';
|
|
onChainQRCode.style.display = 'none';
|
|
});
|
|
}
|
|
})
|
|
.catch(error => console.error('Error loading footer:', error));
|
|
|
|
// --- 5. Fetch and Display Last Update from Gitea -----------------------
|
|
fetch('https://gitea.btcforplebs.com/api/v1/repos/btcforplebs/BTCforPlebs.com')
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
const lastUpdate = new Date(data.updated_at);
|
|
const formattedDate = lastUpdate.toLocaleDateString();
|
|
const formattedTime = lastUpdate.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
|
|
|
|
const updateText = document.getElementById('last-updated-text');
|
|
if (updateText) {
|
|
updateText.textContent = `Website last updated: ${formattedDate} ${formattedTime}`;
|
|
}
|
|
})
|
|
.catch(error => {
|
|
console.error('Error fetching last update:', error);
|
|
const updateText = document.getElementById('last-updated-text');
|
|
if (updateText) {
|
|
updateText.textContent = 'Last update: Error fetching data.';
|
|
}
|
|
});
|
|
}); |