Initial commit: Angular frontend and Expressjs backend
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
import moment, { Moment } from "moment";
|
||||
import WorklenzControllerBase from "../worklenz-controller-base";
|
||||
import momentTime from "moment-timezone";
|
||||
|
||||
export const GroupBy = {
|
||||
STATUS: "status",
|
||||
PRIORITY: "priority",
|
||||
LABELS: "labels",
|
||||
PHASE: "phase"
|
||||
};
|
||||
|
||||
export interface IRMTaskGroup {
|
||||
id?: string;
|
||||
name: string;
|
||||
color_code: string;
|
||||
category_id: string | null;
|
||||
old_category_id?: string;
|
||||
tasks: any[];
|
||||
is_expanded: boolean;
|
||||
}
|
||||
|
||||
export default class RoadmapTasksControllerV2Base extends WorklenzControllerBase {
|
||||
|
||||
public static updateTaskViewModel(task: any, globalStartDate: Moment, globalDateWidth: number , timeZone: string) {
|
||||
|
||||
if (typeof task.sub_tasks_count === "undefined") task.sub_tasks_count = "0";
|
||||
|
||||
task.is_sub_task = !!task.parent_task_id;
|
||||
|
||||
task.show_sub_tasks = false;
|
||||
|
||||
if (task.start_date)
|
||||
task.start_date = momentTime.tz(task.start_date, `${timeZone}`).format("YYYY-MM-DD");
|
||||
|
||||
if (task.end_date)
|
||||
task.end_date = momentTime.tz(task.end_date, `${timeZone}`).format("YYYY-MM-DD");
|
||||
|
||||
this.setTaskCss(task, globalStartDate, globalDateWidth);
|
||||
|
||||
task.isVisible = true;
|
||||
|
||||
return task;
|
||||
}
|
||||
|
||||
private static setTaskCss(task: any, globalStartDate: Moment, globalDateWidth: number ) {
|
||||
let startDate = task.start_date ? moment(task.start_date).format("YYYY-MM-DD") : moment();
|
||||
let endDate = task.end_date ? moment(task.end_date).format("YYYY-MM-DD") : moment();
|
||||
|
||||
if (!task.start_date) {
|
||||
startDate = moment(task.end_date).format("YYYY-MM-DD");
|
||||
}
|
||||
if (!task.end_date) {
|
||||
endDate = moment(task.start_date).format("YYYY-MM-DD");
|
||||
}
|
||||
if (!task.start_date && !task.end_date) {
|
||||
startDate = moment().format("YYYY-MM-DD");
|
||||
endDate = moment().format("YYYY-MM-DD");
|
||||
}
|
||||
|
||||
const fStartDate = moment(startDate);
|
||||
const fEndDate = moment(endDate);
|
||||
const fGlobalStartDate = moment(globalStartDate).format("YYYY-MM-DD");
|
||||
|
||||
const daysDifferenceFromStart = fStartDate.diff(fGlobalStartDate, "days");
|
||||
task.offset_from = daysDifferenceFromStart * globalDateWidth;
|
||||
|
||||
if (moment(fStartDate).isSame(moment(fEndDate), "day")) {
|
||||
task.width = globalDateWidth;
|
||||
} else {
|
||||
const taskWidth = fEndDate.diff(fStartDate, "days");
|
||||
task.width = (taskWidth + 1) * globalDateWidth;
|
||||
}
|
||||
|
||||
return task;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user