This commit is contained in:
Tomas Dvorak
2025-06-17 09:10:54 +02:00
parent 871c1304b9
commit b1c5de7d7c
2 changed files with 44 additions and 62 deletions
+31 -23
View File
@@ -4629,18 +4629,22 @@ async function deleteReservation(id) {
}
try {
const response = await fetch(`/api/delete-reservation`, {
method: 'POST',
const token = localStorage.getItem('token');
if (!token) {
window.location.href = '/login.html';
return;
}
const response = await fetch(`/api/reservations/${id}`, {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ id: id })
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
const result = await response.json();
if (!response.ok) {
throw new Error(result.error || 'Nepodařilo se smazat rezervaci');
throw new Error('Nepodařilo se smazat rezervaci');
}
// Remove the reservation from the local array and update the display
@@ -4700,29 +4704,32 @@ async function saveReservation(event) {
return;
}
// Create ISO date strings
const start = new Date(`${startDate}T${startTime}`).toISOString();
const end = new Date(`${endDate}T${endTime}`).toISOString();
try {
const response = await fetch('/api/update-reservation', {
method: 'POST',
const token = localStorage.getItem('token');
if (!token) {
window.location.href = '/login.html';
return;
}
const response = await fetch(`/api/reservations/${id}`, {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
id,
driverName,
vehicle,
start,
end,
startDate,
startTime,
endDate,
endTime,
purpose
})
});
const result = await response.json();
if (!response.ok) {
const result = await response.json();
throw new Error(result.error || 'Nepodařilo se uložit změny');
}
@@ -4733,8 +4740,10 @@ async function saveReservation(event) {
...window.allReservations[index],
driverName,
vehicle,
start,
end,
startDate,
startTime,
endDate,
endTime,
purpose
};
@@ -4792,7 +4801,6 @@ document.addEventListener('DOMContentLoaded', function() {
// Load reservations when page loads
document.addEventListener('DOMContentLoaded', () => {
// ...existing code...
loadReservations();
});
</script>
+7 -33
View File
@@ -1467,18 +1467,7 @@
eventDidMount: function(info) {
const vehicle = info.event.extendedProps.vehicle;
const vehicleClass = 'event-' + vehicle.toLowerCase().replace(/\s+/g, '-');
// Apply vehicle-specific styling
info.el.classList.add(vehicleClass);
// Apply initial filtering
if (selectedVehicle !== 'all' && vehicle !== selectedVehicle) {
info.el.style.display = 'none';
info.el.style.visibility = 'hidden';
} else {
info.el.style.display = 'block';
info.el.style.visibility = 'visible';
}
},
eventSourceSuccess: function(content, xhr) {
// This runs after events are successfully loaded from the API
@@ -1516,37 +1505,22 @@
function filterEvents() {
const events = calendar.getEvents();
events.forEach(event => {
const eventEl = event.el;
const eventEl = calendar.getEventById(event.id);
if (eventEl) {
if (selectedVehicle === 'all' || event.extendedProps.vehicle === selectedVehicle) {
eventEl.style.display = 'block';
eventEl.style.visibility = 'visible';
// Show event
eventEl.setProp('display', 'auto');
} else {
eventEl.style.display = 'none';
eventEl.style.visibility = 'hidden';
// Hide event
eventEl.setProp('display', 'none');
}
}
});
updateReservationsList();
}
// Update vehicle filter buttons to show active state
document.querySelectorAll('.vehicle-filter-btn').forEach(btn => {
btn.addEventListener('click', function() {
// Update active state
document.querySelectorAll('.vehicle-filter-btn').forEach(b => {
b.classList.remove('active');
b.querySelector('.vehicle-badge').classList.remove('ring-2', 'ring-brand-blue');
});
this.classList.add('active');
this.querySelector('.vehicle-badge').classList.add('ring-2', 'ring-brand-blue');
// Update selected vehicle and filter
selectedVehicle = this.dataset.vehicle;
filterEvents();
});
});
// Update eventDidMount to not handle filtering
// (eventDidMount is already defined in calendarConfig above)
// Fix reservation form show function
function showReservationForm(date) {