From 7661232569327ab57607c26aee4d9c7b78c7e9c5 Mon Sep 17 00:00:00 2001 From: Wahyu Ramadhan Date: Wed, 2 Aug 2023 15:20:47 +0700 Subject: [PATCH] Fix horizontal scroll --- edit-mode/function/function.js | 29 ++++++++++++++++++++++++++ edit-mode/function/ganttEvent.js | 4 ++-- edit-mode/function/restActivityLink.js | 6 ++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/edit-mode/function/function.js b/edit-mode/function/function.js index 2e7aa28..7ce02f1 100644 --- a/edit-mode/function/function.js +++ b/edit-mode/function/function.js @@ -636,4 +636,33 @@ function expandTask() { function resetActivity() { localStorage.setItem('batchEntity', ''); gantt.alert("Actiivity Saved"); +} +// Function to get the earliest planned start date among all tasks +function getEarliestTaskDate() { + var earliestDate = null; + gantt.eachTask(function (task) { + var taskStartDate = task.planned_start || task.start_date; + if (!earliestDate || task.planned_start < earliestDate) { + earliestDate = taskStartDate; + if (task.start_date < earliestDate) { + earliestDate = task.start_date; + } + } + }); + return earliestDate; +} + +// Function to get the latest planned end date among all tasks +function getLatestTaskDate() { + var latestDate = null; + gantt.eachTask(function (task) { + var taskEndDate = task.planned_end || task.end_date; + if (!latestDate || task.planned_end > latestDate) { + latestDate = taskEndDate; + if (task.end_date > latestDate) { + latestDate = task.end_date; + } + } + }); + return latestDate; } \ No newline at end of file diff --git a/edit-mode/function/ganttEvent.js b/edit-mode/function/ganttEvent.js index b58d96a..3aa4710 100644 --- a/edit-mode/function/ganttEvent.js +++ b/edit-mode/function/ganttEvent.js @@ -168,11 +168,11 @@ gantt.attachEvent("onGanttScroll", function (left, top){ var max_allowed_date = gantt.date.add(gantt.config.end_date, -1, "day"); var repaint = false; - if (+left_date <= +min_allowed_date){ + if (earliest && +left_date <= +min_allowed_date && +left_date >= +earliest){ gantt.config.start_date = gantt.date.add(gantt.config.start_date, -1, "day"); repaint = true; } - if (+right_date >= +max_allowed_date){ + if (latest && +right_date >= +max_allowed_date && +right_date <= +latest){ gantt.config.end_date = gantt.date.add(gantt.config.end_date, 1, "day"); repaint = true; } diff --git a/edit-mode/function/restActivityLink.js b/edit-mode/function/restActivityLink.js index bf23dc5..84d2f05 100644 --- a/edit-mode/function/restActivityLink.js +++ b/edit-mode/function/restActivityLink.js @@ -1,4 +1,6 @@ let geom = []; +let latest; +let earliest; $("body").addClass("loading"); gantt.ajax.get({ url: `${base_url}activity/${ganttId}/${proyekId}/get`, @@ -33,6 +35,8 @@ gantt.ajax.get({ gantt.parse(data); getGanttOpen(); gantt.parse(data); + earliest = getEarliestTaskDate(); + latest = getLatestTaskDate(); }); }).catch(function (error) { $("body").removeClass("loading"); @@ -77,6 +81,8 @@ function refresData(id) { gantt.parse(data); getGanttOpen(); gantt.parse(data); + earliest = getEarliestTaskDate(); + latest = getLatestTaskDate(); }); if (id) { if (gantt.isTaskExists(id)) {