mirror of
https://github.com/Dvorinka/PPve.git
synced 2026-06-03 20:12:59 +00:00
Add files via upload
This commit is contained in:
+19
-45
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user