From d2a17ffdfb149115086797c0b45815a734312915 Mon Sep 17 00:00:00 2001 From: iziram Date: Fri, 2 Jun 2023 17:19:55 +0200 Subject: [PATCH] Assiduites : Correction bug timeline --- app/templates/assiduites/timeline.j2 | 66 ++++++++++++++-------------- app/views/assiduites.py | 3 +- app/views/scodoc.py | 2 +- 3 files changed, 36 insertions(+), 35 deletions(-) diff --git a/app/templates/assiduites/timeline.j2 b/app/templates/assiduites/timeline.j2 index 78e219db0..ce8e59e72 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; @@ -46,26 +46,28 @@ } } - i = j + i = j; + } else { + i++; } } } 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; } @@ -76,7 +78,7 @@ } function setupTimeLine(callback) { - const func_call = callback ? callback : () => { } + const func_call = callback ? callback : () => { }; timelineContainer.addEventListener("mousedown", (event) => { const startX = event.clientX; @@ -96,9 +98,9 @@ "mouseup", () => { generateAllEtudRow(); - snapHandlesToQuarters() + snapHandlesToQuarters(); document.removeEventListener("mousemove", onMouseMove); - func_call() + func_call(); }, { once: true } ); @@ -125,12 +127,12 @@ document.addEventListener( "mouseup", () => { - snapHandlesToQuarters() + snapHandlesToQuarters(); generateAllEtudRow(); document.removeEventListener("mousemove", onMouseMove); - func_call() + func_call(); }, { once: true } @@ -162,40 +164,40 @@ 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) { 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; } @@ -205,11 +207,11 @@ } 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);