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
// set stage
3
var stage = anychart.graphics.create("container");
4
5
// create data tree on our data
6
var treeDataResource = anychart.data.tree(getResourceData(), "as-table");
7
8
// create resource gantt chart
9
var resource = anychart.ganttResource();
10
11
// set splitter position
12
resource.splitterPosition("22%");
13
14
// chart size and position
15
resource.bounds("0%", "50%", "100%", "50%");
16
17
// set data for the chart
18
resource.data(treeDataResource);
19
20
var treeDataGantt = anychart.data.tree(getGanttData(), "as-tree");
21
var gantt = anychart.ganttProject();
22
gantt.splitterPosition("22%");
23
gantt.bounds(0, 0, "100%", "50%")
24
25
var ganttScale = gantt.xScale();
26
27
gantt.data(treeDataGantt);
28
gantt.container(stage);
29
gantt.draw();
30
31
// enable the scroller
32
var scroller = anychart.standalones.scroller();
33
34
// set scale maximum and minimum
35
var min = Date.UTC(2007, 0, 22);
36
var max = Date.UTC(2007, 4, 22);
37
var dif = max - min;
38
39
// set event listener on resource scroller
40
resource.getTimeline().horizontalScrollBar().listen('scrollChange', function(e) {
41
var startDate = Math.round(e.startRatio*dif)+min;
42
console.log(dif)
43
var endDate = Math.round(e.endRatio*dif)+min;
44
gantt.zoomTo(startDate, endDate);
45
});
46
47
// disable gantt scroller
48
gantt.getTimeline().horizontalScrollBar().enabled(false);
49
50
resource.container(stage);
51
resource.draw();
52
});
53
54
function getGanttData(){
55
return [
56
{
57
"name": "Activities",
58
"actualStart": Date.UTC(2007, 0, 25),
59
"actualEnd": Date.UTC(2007, 2, 14),
60
"children": [
61
{
62
"name": "Draft plan",
63
"actualStart": Date.UTC(2007, 0, 25),
64
"actualEnd": Date.UTC(2007, 1, 3)
65
},
66
{
67
"name": "Board meeting",
68
"actualStart": Date.UTC(2007, 1, 4),
69
"actualEnd": Date.UTC(2007, 1, 4)
70
},
71
{
72
"name": "Research option",
73
"actualStart": Date.UTC(2007, 1, 4),
74
"actualEnd": Date.UTC(2007, 1, 24)
75
},
76
{
77
"name": "Final plan",
78
"actualStart": Date.UTC(2007, 1, 24),
79
"actualEnd": Date.UTC(2007, 2, 14)
80
}
81
]
82
}];
83
}
84
85
function getResourceData() {
86
return [
87
{
88
"id": "1",
89
"name": "Alex Exler",
90
"periods": [
91
{"id": "1_1", "start": 1171468800000, "end": 1171987200000}]
92
},
93
{
94
"id": "2",
95
"name": "Philip Kineyko",
96
"periods": [
97
{"id": "2_1", "start": 1173024000000, "end": 1173715200000},
98
{"id": "2_2", "start": 1173888000000, "end": 1174406400000}]
99
},
100
{
101
"id": "3",
102
"name": "Luke Liakos",
103
"periods": [
104
{"id": "3_1", "start": 1169740800000, "end": 1170172800000},
105
{"id": "3_2", "start": 1171987200000, "end": 1172505600000}]
106
},
107
{
108
"id": "4",
109
"name": "Judy Penfold",
110
"periods": [
111
{"id": "4_1", "start": 1171814400000, "end": 1172419200000},
112
{"id": "4_2", "start": 1173628800000, "end": 1174320000000}]
113
},
114
{
115
"id": "5",
116
"name": "Patricia Darmon",
117
"periods": [
118
{"id": "5_1", "start": 1171296000000, "end": 1171382400000},
119
{"id": "5_2", "start": 1174233600000, "end": 1174579200000}]
120
}
121
];
122
}