OnProfNext/OnProfNext.Client/wwwroot/js/dragDrop.js
2025-10-17 10:41:53 +02:00

37 lines
1.5 KiB
JavaScript

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);
}
};