mirror of
https://github.com/Dvorinka/PPve.git
synced 2026-06-04 04:22:58 +00:00
Add files via upload
This commit is contained in:
+19
-45
@@ -88,15 +88,12 @@
|
|||||||
|
|
||||||
<!-- Contacts Grid -->
|
<!-- Contacts Grid -->
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h1>Kontakty</h1>
|
|
||||||
|
|
||||||
<div class="section">
|
<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 id="contacts" class="grid gap-6 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="section">
|
<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 id="internal-contacts" class="grid gap-6 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -136,32 +133,37 @@
|
|||||||
|
|
||||||
async function loadContacts() {
|
async function loadContacts() {
|
||||||
try {
|
try {
|
||||||
|
showLoading();
|
||||||
const response = await fetch('/contacts');
|
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 = {
|
currentData = {
|
||||||
Contacts: apiData.contacts || [],
|
Contacts: apiData.contacts || [],
|
||||||
InternalContacts: apiData.internal_contacts || [],
|
InternalContacts: apiData.internal_contacts || [],
|
||||||
last_updated: apiData.last_updated
|
last_updated: apiData.last_updated
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hideLoading();
|
||||||
showContactsList();
|
showContactsList();
|
||||||
updateStats(currentData);
|
updateStats(currentData);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
hideLoading();
|
||||||
showError('Chyba při načítání kontaktů');
|
showError('Chyba při načítání kontaktů');
|
||||||
console.error('Error loading contacts:', error);
|
console.error('Error:', error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function showLoading() {
|
function showLoading() {
|
||||||
document.getElementById('loading').classList.remove('hidden');
|
const loading = document.getElementById('loading');
|
||||||
document.getElementById('contactsList').classList.add('hidden');
|
const contactsList = document.getElementById('contactsList');
|
||||||
document.getElementById('error').classList.add('hidden');
|
if (loading) loading.classList.remove('hidden');
|
||||||
|
if (contactsList) contactsList.classList.add('hidden');
|
||||||
}
|
}
|
||||||
|
|
||||||
function hideLoading() {
|
function hideLoading() {
|
||||||
document.getElementById('loading').classList.add('hidden');
|
const loading = document.getElementById('loading');
|
||||||
|
if (loading) loading.classList.add('hidden');
|
||||||
}
|
}
|
||||||
|
|
||||||
function showContactsList() {
|
function showContactsList() {
|
||||||
@@ -307,48 +309,20 @@
|
|||||||
|
|
||||||
async function reloadContacts() {
|
async function reloadContacts() {
|
||||||
const btn = document.getElementById('reloadBtn');
|
const btn = document.getElementById('reloadBtn');
|
||||||
const originalText = btn.innerHTML;
|
if (!btn) return;
|
||||||
|
|
||||||
btn.disabled = true;
|
const originalText = btn.innerHTML;
|
||||||
btn.innerHTML = `
|
btn.innerHTML = '<i class="fas fa-sync-alt animate-spin mr-2"></i> Aktualizace...';
|
||||||
<i class="fas fa-sync-alt animate-spin"></i>
|
|
||||||
Načítání...
|
|
||||||
`;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
showLoading();
|
||||||
const response = await fetch('/reload', { method: 'POST' });
|
const response = await fetch('/reload', { method: 'POST' });
|
||||||
if (!response.ok) {
|
if (!response.ok) throw new Error(`HTTP ${response.status}`);
|
||||||
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Small delay to show the loading state
|
|
||||||
await new Promise(resolve => setTimeout(resolve, 500));
|
|
||||||
await loadContacts();
|
await loadContacts();
|
||||||
|
|
||||||
// Show success feedback
|
|
||||||
btn.innerHTML = `
|
|
||||||
<i class="fas fa-check text-green-500"></i>
|
|
||||||
Obnoveno
|
|
||||||
`;
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
btn.innerHTML = originalText;
|
|
||||||
}, 2000);
|
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error reloading:', error);
|
showError(error.message);
|
||||||
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);
|
|
||||||
} finally {
|
} finally {
|
||||||
btn.disabled = false;
|
btn.innerHTML = originalText;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user