37 lines
1.5 KiB
JavaScript
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);
|
|
}
|
|
}; |