jetsum_dhtmlx_gantt
Version:
An open source JavaScript Gantt chart that helps you illustrate a project schedule in a nice-looking chart.
111 lines (93 loc) • 4.15 kB
HTML
<!DOCTYPE html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Rollup tasks and milestones</title>
<script src="../../codebase/dhtmlxgantt.js?v=7.1.9"></script>
<link rel="stylesheet" href="../../codebase/dhtmlxgantt.css?v=7.1.9">
<script src="../common/testdata.js?v=7.1.9"></script>
<style>
html, body {
height: 100%;
padding: 0px;
margin: 0px;
overflow: hidden;
}
</style>
</head>
<body>
<div id="gantt_here" style='width:100%; height:100%;'></div>
<script>
gantt.message({
text:[
"Note that milestones are displayed on over Summary rows.",
"Double click any task to see available options."
].join("<br><br>"),
expire: -1
});
gantt.config.scale_height = 50;
gantt.config.scales = [
{unit: "month", step: 1, format: "%F, %Y"},
{unit: "day", step: 1, format: "%j, %D"}
];
gantt.templates.rightside_text = function (start, end, task) {
if (task.type == "milestone") {
return task.text;
}
return "";
};
gantt.locale.labels.section_rollup = "Rollup";
gantt.locale.labels.section_hide_bar = "Hide bar";
gantt.config.lightbox.sections = [
{name: "description", height: 70, map_to: "text", type: "textarea", focus: true},
{name: "rollup", type: "checkbox", map_to: "rollup"},
{name: "hide_bar", type: "checkbox", map_to: "hide_bar"},
{name: "type", type: "typeselect", map_to: "type"},
{name: "time", type: "duration", map_to: "auto"}
];
gantt.config.lightbox.milestone_sections = [
{name: "description", height: 70, map_to: "text", type: "textarea", focus: true},
{name: "rollup", type: "checkbox", map_to: "rollup"},
{name: "hide_bar", type: "checkbox", map_to: "hide_bar"},
{name: "type", type: "typeselect", map_to: "type"},
{name: "time", type: "duration", map_to: "auto"}
];
gantt.config.lightbox.project_sections = [
{name: "description", height: 70, map_to: "text", type: "textarea", focus: true},
{name: "hide_bar", type: "checkbox", map_to: "hide_bar"},
{name: "type", type: "typeselect", map_to: "type"},
{name: "time", type: "duration", map_to: "auto"}
];
gantt.init("gantt_here");
gantt.parse({
data:[
{id:11, text:"Project #1", type:"project", progress: 0.6, open: true},
{id:12, text:"Task #1", start_date:"03-04-2018", duration:"5", parent:"11", progress: 1, open: true},
{id:13, text:"Task #2", start_date:"03-04-2018", type:"project", parent:"11", progress: 0.5, open: true},
{id:14, text:"Task #3", start_date:"02-04-2018", duration:"6", parent:"11", progress: 0.8, open: true},
{id:15, text:"Task #4", type:"project", parent:"11", progress: 0.2, open: true},
{id:16, text:"Final milestone", start_date:"15-04-2018", type:"milestone", rollup: true, parent:"11", progress: 0, open: true},
{id:17, text:"Task #2.1", start_date:"03-04-2018", duration:"2", parent:"13", progress: 1, open: true},
{id:18, text:"Task #2.2", start_date:"06-04-2018", duration:"3", parent:"13", progress: 0.8, open: true},
{id:19, text:"Task #2.3", start_date:"10-04-2018", duration:"4", parent:"13", progress: 0.2, open: true},
{id:20, text:"Task #2.4", start_date:"10-04-2018", duration:"4", parent:"13", progress: 0, open: true},
{id:21, text:"Task #4.1", start_date:"03-04-2018", duration:"4", parent:"15", progress: 0.5, open: true},
{id:22, text:"Task #4.2", start_date:"03-04-2018", duration:"4", parent:"15", progress: 0.1, open: true},
{id:23, text:"Mediate milestone", start_date:"13-04-2018", type:"milestone", parent:"15", rollup: true, progress: 0, open: true}
],
links:[
{id:"10",source:"11",target:"12",type:"1"},
{id:"11",source:"11",target:"13",type:"1"},
{id:"12",source:"11",target:"14",type:"1"},
{id:"13",source:"11",target:"15",type:"1"},
{id:"14",source:"23",target:"16",type:"0"},
{id:"15",source:"13",target:"17",type:"1"},
{id:"16",source:"17",target:"18",type:"0"},
{id:"17",source:"18",target:"19",type:"0"},
{id:"18",source:"19",target:"20",type:"0"},
{id:"19",source:"15",target:"21",type:"2"},
{id:"20",source:"15",target:"22",type:"2"},
{id:"21",source:"15",target:"23",type:"0"}
]
});
</script>
</body>