diff --git a/rezervace-aut.html b/rezervace-aut.html
index 5b60eed..08e1b9b 100644
--- a/rezervace-aut.html
+++ b/rezervace-aut.html
@@ -1440,51 +1440,11 @@
// Initialize calendar
const calendarEl = document.getElementById('calendar');
let selectedVehicle = 'all';
+ let calendar; // Make calendar global
- // Filter events function
- function filterEvents() {
- const events = calendar.getEvents();
- events.forEach(event => {
- const eventEl = event.el;
- if (eventEl) {
- if (selectedVehicle === 'all' || event.extendedProps.vehicle === selectedVehicle) {
- eventEl.classList.remove('hidden-vehicle');
- } else {
- eventEl.classList.add('hidden-vehicle');
- }
- }
- });
-
- // Filter reservation list
- const reservationItems = document.querySelectorAll('#reservationsList .reservation-item');
- reservationItems.forEach(item => {
- const vehicleBadge = item.querySelector('.reservation-vehicle-badge');
- if (vehicleBadge) {
- const vehicle = vehicleBadge.textContent.trim();
- if (selectedVehicle === 'all' || vehicle === selectedVehicle) {
- item.classList.remove('hidden-vehicle');
- } else {
- item.classList.add('hidden-vehicle');
- }
- }
- });
-
- // Update active filter button
- document.querySelectorAll('.vehicle-filter-btn').forEach(btn => {
- btn.classList.toggle('active', btn.dataset.vehicle === selectedVehicle);
- });
- }
-
- // Add click handlers for filter buttons
- document.querySelectorAll('.vehicle-filter-btn').forEach(btn => {
- btn.addEventListener('click', () => {
- selectedVehicle = btn.dataset.vehicle;
- filterEvents();
- });
- });
-
- // Calendar configuration
- const calendarConfig = { initialView: 'dayGridMonth',
+ // Fix calendar initialization
+ const calendarConfig = {
+ initialView: 'dayGridMonth',
headerToolbar: {
left: 'prev,next today',
center: 'title',
@@ -1520,32 +1480,68 @@
},
eventClassNames: function(arg) {
return ['event-' + arg.event.extendedProps.vehicle.toLowerCase().replace(/\s+/g, '-')];
+ },
+ eventClick: function(info) {
+ showEventModal(info.event);
+ },
+ dateClick: function(info) {
+ showReservationForm(info.date);
}
};
calendar = new FullCalendar.Calendar(calendarEl, calendarConfig);
calendar.render();
-
- const reservationModal = document.getElementById('reservationModal');
- const closeReservationModal = document.getElementById('closeReservationModal'); function showReservationForm(date) {
- // Format the date for the form inputs using local timezone
- const formattedDate = date.getFullYear() + '-' +
- String(date.getMonth() + 1).padStart(2, '0') + '-' +
- String(date.getDate()).padStart(2, '0');
- const formattedTime = String(date.getHours()).padStart(2, '0') + ':' +
- String(date.getMinutes()).padStart(2, '0');
- // Set the form values
+ // Fix reservation form show/hide
+ const reservationModal = document.getElementById('reservationModal');
+ const closeReservationModal = document.getElementById('closeReservationModal');
+ const newReservationBtn = document.getElementById('newReservationBtn');
+
+ newReservationBtn.addEventListener('click', () => {
+ showReservationForm(new Date());
+ });
+
+ closeReservationModal.addEventListener('click', () => {
+ reservationModal.style.display = 'none';
+ });
+
+ // Fix calendar filtering
+ function filterEvents() {
+ const events = calendar.getEvents();
+ events.forEach(event => {
+ const eventEl = event.el;
+ if (eventEl) {
+ if (selectedVehicle === 'all' || event.extendedProps.vehicle === selectedVehicle) {
+ eventEl.style.display = 'block';
+ } else {
+ eventEl.style.display = 'none';
+ }
+ }
+ });
+ updateReservationsList();
+ }
+
+ // Add click handlers for filter buttons
+ document.querySelectorAll('.vehicle-filter-btn').forEach(btn => {
+ btn.addEventListener('click', () => {
+ selectedVehicle = btn.dataset.vehicle;
+ filterEvents();
+ });
+ });
+
+ // Fix reservation form show function
+ function showReservationForm(date) {
+ const formattedDate = date.toISOString().split('T')[0];
+ const formattedTime = date.toTimeString().substring(0, 5);
+
document.getElementById('startDate').value = formattedDate;
document.getElementById('startTime').value = formattedTime;
- // Set end time to 1 hour after start time by default
const endDate = new Date(date);
endDate.setHours(endDate.getHours() + 1);
document.getElementById('endDate').value = formattedDate;
document.getElementById('endTime').value = endDate.toTimeString().substring(0, 5);
- // Show the modal
reservationModal.style.display = 'block';
}
@@ -1725,9 +1721,6 @@
// Initial update of reservations list
calendar.on('eventSourceSuccess', updateReservationsList);
- // Update initial state
- updateReservationsList();
-
// Event modal functions
function showEventModal(event) {
currentEventId = event.id;