mirror of
https://github.com/Dvorinka/PPve.git
synced 2026-06-04 20:42:59 +00:00
Add files via upload
This commit is contained in:
+33
-32
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user