Add files via upload

This commit is contained in:
Tomáš Dvořák
2025-05-23 10:22:31 +02:00
committed by GitHub
parent 2ac4b2ec03
commit d64fe7e56a
+19 -45
View File
@@ -88,15 +88,12 @@
<!-- Contacts Grid -->
<div class="container">
<h1>Kontakty</h1>
<div class="section">
<h2>Hlavní kontakty</h2>
<div id="contacts" class="grid gap-6 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"></div>
</div>
<div class="section">
<h2>Interní kontakty</h2>
<div id="internal-contacts" class="grid gap-6 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"></div>
</div>
</div>
@@ -136,32 +133,37 @@
async function loadContacts() {
try {
showLoading();
const response = await fetch('/contacts');
const apiData = await response.json();
if (!response.ok) throw new Error(`HTTP ${response.status}`);
// Directly use the API data structure
const apiData = await response.json();
currentData = {
Contacts: apiData.contacts || [],
InternalContacts: apiData.internal_contacts || [],
last_updated: apiData.last_updated
};
hideLoading();
showContactsList();
updateStats(currentData);
} catch (error) {
hideLoading();
showError('Chyba při načítání kontaktů');
console.error('Error loading contacts:', error);
console.error('Error:', error);
}
}
function showLoading() {
document.getElementById('loading').classList.remove('hidden');
document.getElementById('contactsList').classList.add('hidden');
document.getElementById('error').classList.add('hidden');
const loading = document.getElementById('loading');
const contactsList = document.getElementById('contactsList');
if (loading) loading.classList.remove('hidden');
if (contactsList) contactsList.classList.add('hidden');
}
function hideLoading() {
document.getElementById('loading').classList.add('hidden');
const loading = document.getElementById('loading');
if (loading) loading.classList.add('hidden');
}
function showContactsList() {
@@ -307,48 +309,20 @@
async function reloadContacts() {
const btn = document.getElementById('reloadBtn');
const originalText = btn.innerHTML;
if (!btn) return;
btn.disabled = true;
btn.innerHTML = `
<i class="fas fa-sync-alt animate-spin"></i>
Načítání...
`;
const originalText = btn.innerHTML;
btn.innerHTML = '<i class="fas fa-sync-alt animate-spin mr-2"></i> Aktualizace...';
try {
showLoading();
const response = await fetch('/reload', { method: 'POST' });
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
}
// Small delay to show the loading state
await new Promise(resolve => setTimeout(resolve, 500));
if (!response.ok) throw new Error(`HTTP ${response.status}`);
await loadContacts();
// Show success feedback
btn.innerHTML = `
<i class="fas fa-check text-green-500"></i>
Obnoveno
`;
setTimeout(() => {
btn.innerHTML = originalText;
}, 2000);
} catch (error) {
console.error('Error reloading:', error);
btn.innerHTML = `
<i class="fas fa-times text-red-500"></i>
Chyba
`;
setTimeout(() => {
btn.innerHTML = originalText;
}, 2000);
alert('Chyba při obnovování: ' + error.message);
showError(error.message);
} finally {
btn.disabled = false;
btn.innerHTML = originalText;
}
}