Buchungsseite + Fancy Kalender

This commit is contained in:
Marc Wieland
2025-10-17 10:41:53 +02:00
parent de2c369350
commit 059218eb19
77 changed files with 1725 additions and 55 deletions

View File

@@ -42,6 +42,8 @@
<script src="js/init.js"></script>
<script src="_framework/blazor.webassembly.js"></script>
<script src="_content/Blazor.Bootstrap/blazor.bootstrap.js"></script>
<script src="js/onProfNext.js"></script>
<script src="js/dragDrop.js"></script>
</body>

View File

@@ -0,0 +1,37 @@
window.onProfNext = {
preventDefault: function (event) {
if (event) {
event.preventDefault();
event.stopPropagation();
}
},
startResize: function (event, bookingId, onResizeCallback) {
event.preventDefault();
const element = event.target.closest('.booking-item');
if (!element) return;
let startY = event.clientY;
let startHeight = parseInt(element.style.height) || 50; // Default 50px (1 hour)
const minHeight = 25; // Minimum 0.5 hours
const maxHeight = 400; // Maximum 8 hours
function onMouseMove(e) {
const deltaY = e.clientY - startY;
let newHeight = Math.max(minHeight, Math.min(maxHeight, startHeight + deltaY));
newHeight = Math.round(newHeight / 25) * 25; // Round to nearest 0.5 hours
element.style.height = `${newHeight}px`;
const hours = newHeight / 50; // 50px = 1 hour
window.onProfNext.currentHours = hours;
}
function onMouseUp() {
document.removeEventListener('mousemove', onMouseMove);
document.removeEventListener('mouseup', onMouseUp);
DotNet.invokeMethodAsync('OnProfNext.Client', 'UpdateBookingHours', bookingId, window.onProfNext.currentHours);
}
document.addEventListener('mousemove', onMouseMove);
document.addEventListener('mouseup', onMouseUp);
}
};

View File

@@ -0,0 +1,15 @@
window.onProfNext = {
preventDefault: function () {
// Diese Funktion wird von Blazor aufgerufen, um preventDefault zu setzen
// Sie muss an einem Ort aufgerufen werden, wo das Event verfügbar ist
// In Blazor wird sie über @ondragover aufgerufen
return true; // Signalisiert, dass der Aufruf erfolgreich war
}
};
// Event-Listener für dragover, um preventDefault zu setzen
document.addEventListener('dragover', (event) => {
event.preventDefault();
event.dataTransfer.dropEffect = 'move';
});