diff --git a/static/js/tasks.js b/static/js/tasks.js index d214212..8a6dc25 100644 --- a/static/js/tasks.js +++ b/static/js/tasks.js @@ -76,19 +76,14 @@ async function loadTasks() { } async function persistSelectedTask(taskId) { - console.log("persistSelectedTask called:", taskId, "selectedGoalId=", selectedGoalId, "isInitializing=", isInitializing); - if (!selectedGoalId || isInitializing) { - console.log("persistSelectedTask: SKIPPED due to", !selectedGoalId ? "no goal" : "initializing"); - return; - } + if (!selectedGoalId || isInitializing) return; try { - console.log("persistSelectedTask: PATCH /api/goals/", selectedGoalId, "/selected-task with", taskId); await patch(`/api/goals/${selectedGoalId}/selected-task`, { task_id: taskId }); const goal = goals.find(g => g.id === selectedGoalId); if (goal) { goal.selected_task_id = taskId; } - console.log("persistSelectedTask: SUCCESS, saved task", taskId); + console.log("Saved selected task:", taskId); } catch (error) { console.error("Failed to persist selected task:", error); } @@ -151,16 +146,11 @@ function initSortable() { } function scrollToTask(taskId) { - console.log("scrollToTask called:", taskId); const taskElement = document.querySelector(`[data-task-id="${taskId}"]`); if (taskElement) { const scrollView = document.getElementById("scroll-view"); const taskTop = taskElement.offsetTop; - // Align task to top of scroll view instead of center scrollView.scrollTop = taskTop; - console.log("scrollTop set to taskTop:", taskTop); - } else { - console.log("Task element not found for id:", taskId); } } @@ -213,31 +203,12 @@ function handleScrollFocus() { } function handleScrollSave() { - const scrollView = document.getElementById("scroll-view"); - const taskItems = document.querySelectorAll(".task-item"); - const scrollViewRect = scrollView.getBoundingClientRect(); + // Save the task that has in-focus class (determined by handleScrollFocus) + const inFocusTask = document.querySelector(".task-item.in-focus"); + console.log("handleScrollSave: inFocusTask=", inFocusTask?.dataset.taskId, "isInitializing=", isInitializing); - console.log("handleScrollSave: isInitializing=", isInitializing, "task count=", taskItems.length); - - // Find the task closest to the top of the scroll view - let topTask = null; - let minTopDistance = Infinity; - - taskItems.forEach(item => { - const itemRect = item.getBoundingClientRect(); - const distanceFromTop = Math.abs(itemRect.top - scrollViewRect.top); - console.log(`Task ${item.dataset.taskId}: rect.top=${itemRect.top}, distance=${distanceFromTop}`); - - if (distanceFromTop < minTopDistance) { - minTopDistance = distanceFromTop; - topTask = item; - } - }); - - console.log("handleScrollSave: selected topTask=", topTask?.dataset.taskId, "saving=", topTask && !isInitializing); - - if (topTask && !isInitializing) { - const taskId = parseInt(topTask.dataset.taskId); + if (inFocusTask && !isInitializing) { + const taskId = parseInt(inFocusTask.dataset.taskId); clearTimeout(persistTimer); persistTimer = setTimeout(() => persistSelectedTask(taskId), 400); }