HTMLcopy
1
<div id="container"></div>
CSScopy
6
1
html, body, #container {
2
width: 100%;
3
height: 100%;
4
margin: 0;
5
padding: 0;
6
}
JavaScriptcopy
x
1
anychart.onDocumentReady(function () {
2
// create data tree on our data
3
var treeData = anychart.data.tree(getData(), anychart.enums.TreeFillingMethod.AS_TABLE);
4
5
// create project gantt chart
6
var chart = anychart.ganttProject();
7
8
// set container id for the chart
9
chart.container('container');
10
11
// set data for the chart
12
chart.data(treeData);
13
14
// set start splitter position settings
15
chart.splitterPosition(370);
16
17
// get chart data grid link to set column settings
18
var dataGrid = chart.dataGrid();
19
20
// set first column settings
21
var firstColumn = dataGrid.column(0);
22
firstColumn.title('#');
23
firstColumn.width(30);
24
firstColumn.cellTextSettings().hAlign('center');
25
26
// set second column settings
27
var secondColumn = dataGrid.column(1);
28
secondColumn.cellTextSettings().hAlign('left');
29
secondColumn.width(180);
30
31
// set third column settings
32
var thirdColumn = dataGrid.column(2);
33
thirdColumn.title('Start Time');
34
thirdColumn.width(70);
35
thirdColumn.cellTextSettings().hAlign('right');
36
thirdColumn.format(function (item) {
37
var actStart = item.get(anychart.enums.GanttDataFields.ACTUAL_START);
38
var date = new Date(actStart || item.meta('autoStart'));
39
var month = date.getUTCMonth() + 1;
40
var strMonth = (month > 9) ? month : '0' + month;
41
var utcDate = date.getUTCDate();
42
var strDate = (utcDate > 9) ? utcDate : '0' + utcDate;
43
return date.getUTCFullYear() + '.' + strMonth + '.' + strDate;
44
45
});
46
47
// set fourth column settings
48
var fourthColumn = dataGrid.column(3);
49
fourthColumn.title('End Time');
50
fourthColumn.width(80);
51
fourthColumn.cellTextSettings().hAlign('right');
52
fourthColumn.format(function (item) {
53
var actEnd = item.get(anychart.enums.GanttDataFields.ACTUAL_END);
54
var date = new Date(actEnd || item.meta('autoEnd'));
55
var month = date.getUTCMonth() + 1;
56
var strMonth = (month > 9) ? month : '0' + month;
57
var utcDate = date.getUTCDate();
58
var strDate = (utcDate > 9) ? utcDate : '0' + utcDate;
59
return date.getUTCFullYear() + '.' + strMonth + '.' + strDate;
60
});
61
var now = (new Date()).getTime();
62
var sec = 1000;
63
var min = 60 * sec;
64
var hour = 60 * min;
65
var day = 24 * hour;
66
67
var tl = chart.getTimeline();
68
// creating a line marker
69
tl.lineMarker(0).value(anychart.enums.GanttDateTimeMarkers.CURRENT);
70
// creating a text marker
71
tl.textMarker(0).value(anychart.enums.GanttDateTimeMarkers.CURRENT).text('TODAY').fontSize(20);
72
// creating a range marker
73
tl.rangeMarker(0).from(Date.UTC(2016, 0, 1)).to(anychart.enums.GanttDateTimeMarkers.END);
74
tl.rangeMarker(1).from(now - 7 * day).to(anychart.enums.GanttDateTimeMarkers.CURRENT);
75
76
// initiate chart drawing
77
chart.draw();
78
79
// zoom chart to specified date
80
chart.fitAll();
81
});
82
83
function getData() {
84
var now = (new Date()).getTime();
85
var sec = 1000;
86
var min = 60 * sec;
87
var hour = 60 * min;
88
var day = 24 * hour;
89
return [
90
{"id": "1", "name": "Phase 1 - Strategic Plan", "progressValue": "14%"},
91
{"id": "2", "name": "Self-Assessment", parent: "1", "progressValue": "25%"},
92
{
93
"id": "3",
94
"name": "Define business vision",
95
parent: "2",
96
"progressValue": "0%",
97
"actualStart": (now - 9 * day),
98
"actualEnd": (now - 2 * day),
99
"connectTo": "4",
100
"connectorType": "FinishStart"
101
},
102
{
103
"id": "4",
104
"name": "Identify available skills, information and support",
105
parent: "2",
106
"progressValue": "0%",
107
"actualStart": (now + 5 * day),
108
"actualEnd": (now + 10*day),
109
"connectTo": "5",
110
"connectorType": "FinishStart"
111
},
112
{
113
"id": "5",
114
"name": "Decide whether to proceed",
115
parent: "2",
116
"progressValue": "0%",
117
"actualStart": (now + 3*day),
118
"actualEnd": (now + 5 * day),
119
"connectTo": "7",
120
"connectorType": "FinishStart"
121
},
122
{"id": "6", "name": "Define the Opportunity", parent: "1", "progressValue": "27%"},
123
{
124
"id": "7",
125
"name": "Research the market and competition",
126
parent: "6",
127
"progressValue": "0%",
128
"actualStart": (now + 6*day),
129
"actualEnd": (now + 13 * day),
130
"connectTo": "8",
131
"connectorType": "FinishStart"
132
},
133
{
134
"id": "8",
135
"name": "Interview owners of similar businesses",
136
parent: "6",
137
"progressValue": "60%",
138
"actualStart": (now + 5 * day),
139
"actualEnd": (now + 15 * day),
140
"connectTo": "9",
141
"connectorType": "FinishStart"
142
},
143
{
144
"id": "9",
145
"name": "Identify needed resources",
146
parent: "6",
147
"progressValue": "0%",
148
"actualStart": (now + 5 * day),
149
"actualEnd": (now + 10 * day),
150
"connectTo": "10",
151
"connectorType": "FinishStart"
152
},
153
{
154
"id": "10",
155
"name": "Identify operating cost elements",
156
parent: "6",
157
"progressValue": "0%",
158
"actualStart": (now + 15 * day),
159
"actualEnd": (now + 29 * day),
160
"connectTo": "12",
161
"connectorType": "FinishStart"
162
}
163
];
164
}