- ${formatDateTime(event.start)} - ${formatDateTime(event.end)}
+ try {
+ // Filter and sort events
+ const currentAndFutureEvents = events
+ .filter(event => event && event.end && event.end >= now)
+ .filter(event => selectedVehicle === 'all' || (event.extendedProps && event.extendedProps.vehicle === selectedVehicle))
+ .sort((a, b) => a.start - b.start);
+
+ // Update count and list
+ if (!currentAndFutureEvents || currentAndFutureEvents.length === 0) {
+ if (reservationsCount) {
+ reservationsCount.textContent = 'Žádné aktuální ani budoucí rezervace';
+ }
+ if (reservationsList) {
+ reservationsList.innerHTML = `
+
+ Žádné aktuální ani budoucí rezervace
- ${event.extendedProps.purpose ? `
-
- Účel: ${event.extendedProps.purpose}
+ `;
+ }
+ return;
+ }
+
+ if (reservationsCount) {
+ reservationsCount.textContent = `Počet rezervací: ${currentAndFutureEvents.length}`;
+ }
+
+ const html = currentAndFutureEvents.map(event => {
+ if (!event || !event.extendedProps) return '';
+ const vehicleClass = 'vehicle-' + (event.extendedProps.vehicle || '').toLowerCase().replace(/\s+/g, '-');
+ return `
+
+
+ ${event.extendedProps.vehicle || ''}
+
+
+
${event.extendedProps.driverName || ''}
+
+ ${event.start ? formatDateTime(event.start) : ''} - ${event.end ? formatDateTime(event.end) : ''}
- ` : ''}
+ ${event.extendedProps.purpose ? `
+
+ Účel: ${event.extendedProps.purpose}
+
+ ` : ''}
+
-
- `;
- }).join('');
-
- reservationsList.innerHTML = html;
+ `;
+ }).join('');
+
+ if (reservationsList) {
+ reservationsList.innerHTML = html;
+ }
+ } catch (error) {
+ console.error('Error updating reservations list:', error);
+ if (reservationsList) {
+ reservationsList.innerHTML = `
+
+ Chyba při načítání rezervací
+
+ `;
+ }
+ }
}
// Enhanced date/time formatting function
@@ -1905,9 +1932,33 @@
reservationForm.addEventListener('submit', async function(e) {
e.preventDefault();
- // ... existing validation code ...
+ // Get form values
+ const driverName = document.getElementById('driverName').value;
+ const vehicle = document.getElementById('vehicle').value;
+ const startDate = document.getElementById('startDate').value;
+ const startTime = document.getElementById('startTime').value;
+ const endDate = document.getElementById('endDate').value;
+ const endTime = document.getElementById('endTime').value;
+ const purpose = document.getElementById('purpose')?.value || '';
+
+ // Validate form
+ if (!validateDriverName(driverName)) {
+ showMessage('Prosím zadejte platné jméno a příjmení', 'error');
+ return;
+ }
try {
+ // Prepare reservation data
+ const reservationData = {
+ driverName: driverName,
+ vehicle: vehicle,
+ startDate: startDate,
+ startTime: startTime,
+ endDate: endDate,
+ endTime: endTime,
+ purpose: purpose
+ };
+
const response = await fetch('/api/reservations', {
method: 'POST',
headers: {