Skip to content

Commit

Permalink
Fix timezone issues (#134)
Browse files Browse the repository at this point in the history
  • Loading branch information
dimasciput authored Jan 22, 2024
1 parent 30b74eb commit 4f02d06
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 30 deletions.

Large diffs are not rendered by default.

27 changes: 15 additions & 12 deletions dashboard/src/components/TimelinePlanner.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,6 @@ const TimelinePlanner = forwardRef((props: TimelinePlannerInterface, ref) => {
const filterGroups = (searchText: string) => {
const searchValue = searchText.toLowerCase()
updateRenderedItems(searchValue);
console.log(renderedGroups, openGroups);
const updatedGroups = groups.filter((group) => {
const groupTitle = group.rightTitle ? group.rightTitle.toLowerCase() : ''
if (group.root && !groupTitle.includes(searchValue)) {
Expand Down Expand Up @@ -364,17 +363,21 @@ const TimelinePlanner = forwardRef((props: TimelinePlannerInterface, ref) => {
const schedules: any = await fetchSchedules();
setItems(schedules.map(schedule => {
const _canEdit = canEdit && schedule.task_label !== '-';
let startTime = new Date(schedule.start_time)
let endTime = new Date(schedule.end_time)
startTime = new Date(Date.UTC(startTime.getFullYear(), startTime.getMonth(), startTime.getDate()));
endTime = new Date(Date.UTC(endTime.getFullYear(), endTime.getMonth(), endTime.getDate()));
startTime.setHours(0)
startTime.setMinutes(0)
startTime.setSeconds(0)
endTime.setHours(0)
endTime.setMinutes(0)
endTime.setSeconds(0)
endTime.setDate(endTime.getDate() + 1);
let startTimeStr = schedule.start_time.split('T')[0].split('-');
let year = parseInt(startTimeStr[0], 10);
let month = parseInt(startTimeStr[1], 10) - 1;
let day = parseInt(startTimeStr[2], 10);
let startTime = new Date(year, month, day);
startTime.setHours(0, 0, 0, 0);

let endTimeStr = schedule.end_time.split('T')[0].split('-');
year = parseInt(endTimeStr[0], 10);
month = parseInt(endTimeStr[1], 10) - 1;
day = parseInt(endTimeStr[2], 10);
let endTime = new Date(year, month, day);
endTime.setHours(0, 0, 0, 0);

endTime.setDate(endTime.getDate() + 1)
return Object.assign({}, schedule, {
title: schedule.task_name,
info: schedule.project_name + ' : ' + schedule.task_label + schedule.user,
Expand Down
31 changes: 23 additions & 8 deletions dashboard/src/utils/schedule_data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,22 @@ import {getColorFromTaskLabel} from "./Theme";

const publicTimelineId = (window as any).publicTimelineId;

export function resetTimeInDate(timestamp: number, addDate = 0) {
let dateTime = new Date(new Date(timestamp))
dateTime = new Date(Date.UTC(dateTime.getFullYear(), dateTime.getMonth(), dateTime.getDate()));
dateTime.setHours(0)
dateTime.setMinutes(0)
dateTime.setSeconds(0)
export function resetTimeInDate(timestamp: any, addDate = 0) {
let dateTime;
if (typeof timestamp === 'number') {
dateTime = new Date(new Date(timestamp))
dateTime = new Date(Date.UTC(dateTime.getFullYear(), dateTime.getMonth(), dateTime.getDate()));
dateTime.setHours(0)
dateTime.setMinutes(0)
dateTime.setSeconds(0)
} else {
let timestampStr = timestamp.split('T')[0].split('-');
let year = parseInt(timestampStr[0], 10);
let month = parseInt(timestampStr[1], 10) - 1;
let day = parseInt(timestampStr[2], 10);
dateTime = new Date(year, month, day);
dateTime.setHours(0, 0, 0, 0);
}
if (addDate) {
dateTime.setDate(dateTime.getDate() + addDate)
}
Expand All @@ -17,6 +27,9 @@ export function resetTimeInDate(timestamp: number, addDate = 0) {

export function getDateString(timestamp: number, addDate = 0) {
let dateTime = new Date(new Date(timestamp).toLocaleString('en'))
if (dateTime.getTimezoneOffset() >= 0) {
addDate -= 1
}
if (addDate) {
dateTime.setDate(dateTime.getDate() + addDate)
}
Expand Down Expand Up @@ -65,9 +78,11 @@ export function deleteSchedule(scheduleId: string) {

export function updateSchedule(scheduleId: number, startTime: number, endTime: number, notes: string = "", taskId: string | null = null, hoursPerDay: number | null = null) {
const formData = new FormData()
const adjustedStartTime = getDateString(startTime, 1)
const adjustedEndTime = getDateString(endTime)
formData.append('schedule_id', scheduleId + '')
formData.append('start_time', getDateString(startTime, 1))
formData.append('end_time', getDateString(endTime))
formData.append('start_time', adjustedStartTime)
formData.append('end_time', adjustedEndTime)
formData.append('notes', notes)
if (hoursPerDay) {
formData.append('hours_per_day', hoursPerDay + '')
Expand Down
14 changes: 7 additions & 7 deletions dashboard/webpack-stats.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
"name": "PublicSummary.534fdb6a8615c073da59.js",
"path": "/Users/user/Documents/Kartoza/timesheet-project/dashboard/assets/webpack_bundles/PublicSummary.534fdb6a8615c073da59.js"
},
"Planner.a4e0148d0d7b122496eb.js": {
"name": "Planner.a4e0148d0d7b122496eb.js",
"path": "/Users/user/Documents/Kartoza/timesheet-project/dashboard/assets/webpack_bundles/Planner.a4e0148d0d7b122496eb.js"
"Planner.a86ae151f34ff2d41624.js": {
"name": "Planner.a86ae151f34ff2d41624.js",
"path": "/Users/user/Documents/Kartoza/timesheet-project/dashboard/assets/webpack_bundles/Planner.a86ae151f34ff2d41624.js"
},
"810.58c49beed12cd4a509ea.js": {
"name": "810.58c49beed12cd4a509ea.js",
Expand Down Expand Up @@ -177,9 +177,9 @@
"name": "App.a1d3fd9e6b8e063e666a.js.LICENSE.txt",
"path": "/Users/user/Documents/Kartoza/timesheet-project/dashboard/assets/webpack_bundles/App.a1d3fd9e6b8e063e666a.js.LICENSE.txt"
},
"Planner.a4e0148d0d7b122496eb.js.LICENSE.txt": {
"name": "Planner.a4e0148d0d7b122496eb.js.LICENSE.txt",
"path": "/Users/user/Documents/Kartoza/timesheet-project/dashboard/assets/webpack_bundles/Planner.a4e0148d0d7b122496eb.js.LICENSE.txt"
"Planner.a86ae151f34ff2d41624.js.LICENSE.txt": {
"name": "Planner.a86ae151f34ff2d41624.js.LICENSE.txt",
"path": "/Users/user/Documents/Kartoza/timesheet-project/dashboard/assets/webpack_bundles/Planner.a86ae151f34ff2d41624.js.LICENSE.txt"
},
"PublicSummary.534fdb6a8615c073da59.js.LICENSE.txt": {
"name": "PublicSummary.534fdb6a8615c073da59.js.LICENSE.txt",
Expand Down Expand Up @@ -208,7 +208,7 @@
"PublicSummary.534fdb6a8615c073da59.js"
],
"Planner": [
"Planner.a4e0148d0d7b122496eb.js"
"Planner.a86ae151f34ff2d41624.js"
]
}
}

0 comments on commit 4f02d06

Please sign in to comment.