Add files via upload

This commit is contained in:
Tomáš Dvořák
2025-05-23 09:47:33 +02:00
committed by GitHub
parent 1135591787
commit bf45d7627a
+33 -32
View File
@@ -126,28 +126,36 @@
</footer> </footer>
<script> <script>
let currentData = {}; let currentData = {
let filteredContacts = []; Contacts: [],
InternalContacts: [],
last_updated: new Date().toISOString()
};
async function loadContacts() { async function loadContacts() {
try { try {
showLoading(); showLoading();
const response = await fetch('/contacts'); const response = await fetch('/contacts');
if (!response.ok) { if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${response.statusText}`); throw new Error(`HTTP ${response.status}: ${response.statusText}`);
} }
currentData = await response.json(); const newData = await response.json();
currentData = {
Contacts: newData.Contacts || [],
InternalContacts: newData.InternalContacts || [],
last_updated: newData.last_updated || new Date().toISOString()
};
hideLoading(); hideLoading();
showContactsList(); showContactsList();
updateStats(currentData); updateStats(currentData);
filterContacts(); filterContacts();
} catch (error) { } catch (error) {
console.error('Error loading contacts:', error); console.error('Error loading contacts:', error);
hideLoading(); hideLoading();
showError('Chyba při načítání kontaktů: ' + error.message); showError(error.message);
} }
} }
@@ -173,15 +181,6 @@
} }
function updateStats(data) { function updateStats(data) {
if (!data || !data.Contacts) {
// Initialize with empty arrays if data is not loaded yet
data = {
Contacts: [],
InternalContacts: [],
last_updated: new Date().toISOString()
};
}
const lastUpdated = new Date(data.last_updated).toLocaleString('cs-CZ'); const lastUpdated = new Date(data.last_updated).toLocaleString('cs-CZ');
const totalContacts = (data.Contacts?.length || 0) + (data.InternalContacts?.length || 0); const totalContacts = (data.Contacts?.length || 0) + (data.InternalContacts?.length || 0);
@@ -236,26 +235,28 @@
return text.replace(regex, '<span class="search-highlight">$1</span>'); return text.replace(regex, '<span class="search-highlight">$1</span>');
} }
function displayContacts(contacts, searchQuery = '') { function displayContacts(contacts = [], searchQuery = '') {
const mainContacts = contacts.filter(contact => !contact.internal); const container = document.getElementById('contacts');
const internalContacts = contacts.filter(contact => contact.internal); const internalContainer = document.getElementById('internal-contacts');
const noResults = document.getElementById('noResults');
const mainContactsDiv = document.getElementById('contacts'); if (!contacts || !contacts.length) {
const internalContactsDiv = document.getElementById('internal-contacts'); container.innerHTML = '';
internalContainer.innerHTML = '';
mainContactsDiv.innerHTML = mainContacts.map(contact => noResults.classList.remove('hidden');
formatContactCard(contact, searchQuery) return;
).join('');
internalContactsDiv.innerHTML = internalContacts.map(contact =>
formatContactCard(contact, searchQuery)
).join('');
if (mainContacts.length === 0 && internalContacts.length === 0) {
document.getElementById('noResults').classList.remove('hidden');
} else {
document.getElementById('noResults').classList.add('hidden');
} }
noResults.classList.add('hidden');
container.innerHTML = contacts
.filter(contact => !contact.internal)
.map(contact => formatContactCard(contact, searchQuery))
.join('');
internalContainer.innerHTML = contacts
.filter(contact => contact.internal)
.map(contact => formatContactCard(contact, searchQuery))
.join('');
} }
function formatContactCard(contact, searchQuery) { function formatContactCard(contact, searchQuery) {