From 0ea99e1a069551ae952fc4cb16606951ea5c5fa6 Mon Sep 17 00:00:00 2001 From: iziram Date: Fri, 2 Jun 2023 16:58:15 +0200 Subject: [PATCH] avec les ; --- app/templates/assiduites/timeline.j2 | 92 +++++++++++++++------------- app/views/assiduites.py | 2 +- app/views/scodoc.py | 2 +- 3 files changed, 52 insertions(+), 44 deletions(-) diff --git a/app/templates/assiduites/timeline.j2 b/app/templates/assiduites/timeline.j2 index 78e219db..635a9ce7 100644 --- a/app/templates/assiduites/timeline.j2 +++ b/app/templates/assiduites/timeline.j2 @@ -12,13 +12,13 @@ const t_start = {{ t_start }}; const t_end = {{ t_end }}; - const tick_time = 60 / {{ tick_time }} - const tick_delay = 1 / tick_time + const tick_time = 60 / {{ tick_time }}; + const tick_delay = 1 / tick_time; const period_default = {{ periode_defaut }}; function createTicks() { - let i = t_start + let i = t_start; while (i <= t_end) { const hourTick = document.createElement("div"); @@ -33,7 +33,7 @@ timelineContainer.appendChild(tickLabel); if (i < t_end) { - let j = Math.floor(i + 1) + let j = Math.floor(i + 1); while (i < j) { i += tick_delay; @@ -44,39 +44,35 @@ quarterTick.style.left = `${computePercentage(i, t_start)}%`; timelineContainer.appendChild(quarterTick); } - } - i = j + i = j; } } } function numberToTime(num) { - const integer = Math.floor(num) - const decimal = (num % 1) * 60 + const integer = Math.floor(num); + const decimal = (num % 1) * 60; - let dec = `:${decimal}` + let dec = `:${decimal}`; if (decimal < 10) { - dec = `:0${decimal}` + dec = `:0${decimal}`; } - let int = `${integer}` + let int = `${integer}`; if (integer < 10) { - int = `0${integer}` + int = `0${integer}`; } - return int + dec - + return int + dec; } function snapToQuarter(value) { - - return Math.round(value * tick_time) / tick_time; } function setupTimeLine(callback) { - const func_call = callback ? callback : () => { } + const func_call = callback ? callback : () => { }; timelineContainer.addEventListener("mousedown", (event) => { const startX = event.clientX; @@ -96,9 +92,9 @@ "mouseup", () => { generateAllEtudRow(); - snapHandlesToQuarters() + snapHandlesToQuarters(); document.removeEventListener("mousemove", onMouseMove); - func_call() + func_call(); }, { once: true } ); @@ -111,7 +107,8 @@ const deltaX = moveEvent.clientX - startX; const containerWidth = timelineContainer.clientWidth; const newWidth = - startWidth + ((isLeftHandle ? -deltaX : deltaX) / containerWidth) * 100; + startWidth + + ((isLeftHandle ? -deltaX : deltaX) / containerWidth) * 100; if (isLeftHandle) { const newLeft = startLeft + (deltaX / containerWidth) * 100; @@ -125,13 +122,12 @@ document.addEventListener( "mouseup", () => { - snapHandlesToQuarters() + snapHandlesToQuarters(); generateAllEtudRow(); document.removeEventListener("mousemove", onMouseMove); - func_call() - + func_call(); }, { once: true } ); @@ -140,7 +136,6 @@ } function adjustPeriodPosition(newLeft, newWidth) { - const snappedLeft = snapToQuarter(newLeft); const snappedWidth = snapToQuarter(newWidth); const minLeft = 0; @@ -157,59 +152,72 @@ const widthPercentage = parseFloat(periodTimeLine.style.width); const startHour = (leftPercentage / 100) * (t_end - t_start) + t_start; - const endHour = ((leftPercentage + widthPercentage) / 100) * (t_end - t_start) + t_start; + const endHour = + ((leftPercentage + widthPercentage) / 100) * (t_end - t_start) + t_start; const startValue = snapToQuarter(startHour); const endValue = snapToQuarter(endHour); - const computedValues = [Math.max(startValue, t_start), Math.min(t_end, endValue)] + const computedValues = [ + Math.max(startValue, t_start), + Math.min(t_end, endValue), + ]; if (computedValues[0] > t_end || computedValues[1] < t_start) { - return [t_start, min(t_end, t_start + period_default)] + return [t_start, min(t_end, t_start + period_default)]; } - if (computedValues[1] - computedValues[0] <= tick_delay && computedValues[1] < t_end - tick_delay) { + if ( + computedValues[1] - computedValues[0] <= tick_delay && + computedValues[1] < t_end - tick_delay + ) { computedValues[1] += tick_delay; } - return computedValues + return computedValues; } function setPeriodValues(deb, fin) { - deb = snapToQuarter(deb) - fin = snapToQuarter(fin) - let leftPercentage = (deb - t_start) / (t_end - t_start) * 100 - let widthPercentage = (fin - deb) / (t_end - t_start) * 100 - periodTimeLine.style.left = `${leftPercentage}%` - periodTimeLine.style.width = `${widthPercentage}%` + deb = snapToQuarter(deb); + fin = snapToQuarter(fin); + let leftPercentage = ((deb - t_start) / (t_end - t_start)) * 100; + let widthPercentage = ((fin - deb) / (t_end - t_start)) * 100; + periodTimeLine.style.left = `${leftPercentage}%`; + periodTimeLine.style.width = `${widthPercentage}%`; - snapHandlesToQuarters() + snapHandlesToQuarters(); generateAllEtudRow(); } function snapHandlesToQuarters() { const periodValues = getPeriodValues(); - let lef = Math.min(computePercentage(periodValues[0], t_start), computePercentage(t_end, tick_delay)) + let lef = Math.min( + computePercentage(periodValues[0], t_start), + computePercentage(t_end, tick_delay) + ); if (lef < 0) { lef = 0; } - const left = `${lef}%` + const left = `${lef}%`; - let wid = Math.max(computePercentage(periodValues[1], periodValues[0]), computePercentage(tick_delay, 0)) + let wid = Math.max( + computePercentage(periodValues[1], periodValues[0]), + computePercentage(tick_delay, 0) + ); if (wid > 100) { wid = 100; } - const width = `${wid}%` + const width = `${wid}%`; periodTimeLine.style.left = left; periodTimeLine.style.width = width; } function computePercentage(a, b) { - return ((a - b) / (t_end - t_start)) * 100 + return ((a - b) / (t_end - t_start)) * 100; } createTicks(); - setPeriodValues(t_start, t_start + period_default) + setPeriodValues(t_start, t_start + period_default);