${projectName}
@@ -2304,7 +2314,7 @@
@@ -2660,6 +2670,21 @@
addEventListener("beforeunload", beforeUnloadListener, { capture: true });
}
}
+ function getTaskDeadline(taskId, internId = floGlobals.myFloID) {
+ const [projectCode, branch, task] = taskId.split('_');
+ const { title, description, duration, durationType } = RIBC.getTaskDetails(projectCode, branch, task)
+ const { assignedTasks } = RIBC.getInternRecord(internId)
+ const assignedOn = assignedTasks[taskId].assignedOn || assignedTasks[taskId]
+ const durationMilliseconds = durationType === 'days' ? duration * 24 * 60 * 60 * 1000 : duration * 60 * 60 * 1000
+ const taskDeadline = assignedOn + durationMilliseconds
+ const elapsedPercentage = Math.round((Date.now() - assignedOn) / durationMilliseconds * 100)
+ const hasDeadlinePassed = Date.now() > taskDeadline
+ return {
+ taskDeadline,
+ elapsedPercentage,
+ hasDeadlinePassed
+ }
+ }
const filterTasks = debounce((e) => {
const searchQuery = getRef('task_search_input')?.value.trim() || '';