|
@@ -98,48 +98,41 @@ View::show_header('Detailed User Statistics', 'chart');
|
98
|
98
|
?>
|
99
|
99
|
<h3 id="User_Flow"><a href="#User_Flow">User Flow</a></h3>
|
100
|
100
|
<div class="box pad center">
|
101
|
|
- <canvas class="chart" id="chart_user_timeline"></canvas>
|
102
|
|
- <script>
|
103
|
|
- new Chart($('#chart_user_timeline').raw().getContext('2d'), {
|
104
|
|
- type: 'line',
|
105
|
|
- data: {
|
106
|
|
- labels: <? print '["'.implode('","',$Labels).'"]'; ?>,
|
107
|
|
- datasets: [ {
|
108
|
|
- label: "New Registrations",
|
109
|
|
- backgroundColor: "rgba(0,0,255,0.2)",
|
110
|
|
- borderColor: "rgba(0,0,255,0.8)",
|
111
|
|
- data: <? print "[".implode(",",$InFlow)."]"; ?>
|
112
|
|
- }, {
|
113
|
|
- label: "Disabled Users",
|
114
|
|
- backgroundColor: "rgba(255,0,0,0.2)",
|
115
|
|
- borderColor: "rgba(255,0,0,0.8)",
|
116
|
|
- data: <? print "[".implode(",",$OutFlow)."]"; ?>
|
117
|
|
- }]
|
118
|
|
- }
|
119
|
|
- })
|
120
|
|
- </script>
|
|
101
|
+ <canvas class="chart" id="chart_user_timeline" data-chart='{
|
|
102
|
+ "type": "line",
|
|
103
|
+ "data": {
|
|
104
|
+ "labels": <? print '["'.implode('","',$Labels).'"]'; ?>,
|
|
105
|
+ "datasets": [ {
|
|
106
|
+ "label": "New Registrations",
|
|
107
|
+ "backgroundColor": "rgba(0,0,255,0.2)",
|
|
108
|
+ "borderColor": "rgba(0,0,255,0.8)",
|
|
109
|
+ "data": <? print "[".implode(",",$InFlow)."]"; ?>
|
|
110
|
+ }, {
|
|
111
|
+ "label": "Disabled Users",
|
|
112
|
+ "backgroundColor": "rgba(255,0,0,0.2)",
|
|
113
|
+ "borderColor": "rgba(255,0,0,0.8)",
|
|
114
|
+ "data": <? print "[".implode(",",$OutFlow)."]"; ?>
|
|
115
|
+ }]
|
|
116
|
+ }
|
|
117
|
+ }'></canvas>
|
121
|
118
|
</div>
|
122
|
119
|
<br />
|
123
|
120
|
<h3 id="User_Classes"><a href="#User_Classes">User Classes</a></h3>
|
124
|
121
|
<div class="box pad center">
|
125
|
|
- <canvas class="chart" id="chart_user_classes"></canvas>
|
126
|
|
- <script>
|
127
|
|
- new Chart($('#chart_user_classes').raw().getContext('2d'), {
|
128
|
|
- type: 'pie',
|
129
|
|
- data: {
|
130
|
|
- labels: <? print '["'.implode('","', array_column($ClassDistribution, 'Name')).'"]'; ?>,
|
131
|
|
- datasets: [ {
|
132
|
|
- data: <? print "[".implode(",", array_column($ClassDistribution, 'Users'))."]"; ?>,
|
133
|
|
- backgroundColor: ['#8a00b8','#a944cb','#be71d8','#e8ccf1', '#f3e3f9', '#fbf6fd', '#ffffff']
|
134
|
|
- }]
|
135
|
|
- }
|
136
|
|
- })
|
137
|
|
- </script>
|
|
122
|
+ <canvas class="chart" id="chart_user_classes" data-chart='{
|
|
123
|
+ "type": "pie",
|
|
124
|
+ "data": {
|
|
125
|
+ "labels": <? print '["'.implode('","', array_column($ClassDistribution, 'Name')).'"]'; ?>,
|
|
126
|
+ "datasets": [ {
|
|
127
|
+ "data": <? print "[".implode(",", array_column($ClassDistribution, 'Users'))."]"; ?>,
|
|
128
|
+ "backgroundColor": ["#8a00b8","#a944cb","#be71d8","#e8ccf1","#f3e3f9","#fbf6fd","#ffffff"]
|
|
129
|
+ }]
|
|
130
|
+ }
|
|
131
|
+ }'></canvas>
|
138
|
132
|
</div>
|
139
|
133
|
<br />
|
140
|
134
|
<h3 id="User_Platforms"><a href="#User_Platforms">User Platforms</a></h3>
|
141
|
135
|
<div class="box pad center">
|
142
|
|
- <canvas class="chart" id="chart_user_platforms"></canvas>
|
143
|
136
|
<?
|
144
|
137
|
$AllPlatforms = array_column($PlatformDistribution, 'OperatingSystem');
|
145
|
138
|
$SlicedPlatforms = (count($AllPlatforms) > 14) ? array_slice($AllPlatforms,0,13)+[13=>'Other'] : $AllPlatforms;
|
|
@@ -164,23 +157,20 @@ View::show_header('Detailed User Statistics', 'chart');
|
164
|
157
|
}
|
165
|
158
|
}
|
166
|
159
|
?>
|
167
|
|
- <script>
|
168
|
|
- new Chart($('#chart_user_platforms').raw().getContext('2d'), {
|
169
|
|
- type: 'pie',
|
170
|
|
- data: {
|
171
|
|
- labels: ["<?=implode('","', $SlicedPlatforms)?>"],
|
172
|
|
- datasets: [ {
|
173
|
|
- data: [<?=implode(",", $SlicedUsers)?>],
|
174
|
|
- backgroundColor: ["<?=implode('","', $Colors)?>"]
|
175
|
|
- }]
|
176
|
|
- }
|
177
|
|
- })
|
178
|
|
- </script>
|
|
160
|
+ <canvas class="chart" id="chart_user_platforms" data-chart='{
|
|
161
|
+ "type": "pie",
|
|
162
|
+ "data": {
|
|
163
|
+ "labels": ["<?=implode('","', $SlicedPlatforms)?>"],
|
|
164
|
+ "datasets": [ {
|
|
165
|
+ "data": [<?=implode(",", $SlicedUsers)?>],
|
|
166
|
+ "backgroundColor": ["<?=implode('","', $Colors)?>"]
|
|
167
|
+ }]
|
|
168
|
+ }
|
|
169
|
+ }'></canvas>
|
179
|
170
|
</div>
|
180
|
171
|
<br />
|
181
|
172
|
<h3 id="User_Browsers"><a href="#User_Browsers">User Browsers</a></h3>
|
182
|
173
|
<div class="box pad center">
|
183
|
|
- <canvas class="chart" id="chart_user_browsers"></canvas>
|
184
|
174
|
<?
|
185
|
175
|
$AllBrowsers = array_column($BrowserDistribution, 'Browser');
|
186
|
176
|
$SlicedBrowsers = (count($AllBrowsers) > 7) ? array_slice($AllBrowsers,0,6)+[6=>'Other'] : $AllBrowsers;
|
|
@@ -205,18 +195,16 @@ View::show_header('Detailed User Statistics', 'chart');
|
205
|
195
|
}
|
206
|
196
|
}
|
207
|
197
|
?>
|
208
|
|
- <script>
|
209
|
|
- new Chart($('#chart_user_browsers').raw().getContext('2d'), {
|
210
|
|
- type: 'pie',
|
211
|
|
- data: {
|
212
|
|
- labels: ["<?=implode('","', $SlicedBrowsers)?>"],
|
213
|
|
- datasets: [ {
|
214
|
|
- data: [<?=implode(",", $SlicedUsers)?>],
|
215
|
|
- backgroundColor: ["<?=implode('","', $Colors)?>"],
|
216
|
|
- }]
|
217
|
|
- }
|
218
|
|
- })
|
219
|
|
- </script>
|
|
198
|
+ <canvas class="chart" id="chart_user_browsers" data-chart='{
|
|
199
|
+ "type": "pie",
|
|
200
|
+ "data": {
|
|
201
|
+ "labels": ["<?=implode('","', $SlicedBrowsers)?>"],
|
|
202
|
+ "datasets": [{
|
|
203
|
+ "data": [<?=implode(",", $SlicedUsers)?>],
|
|
204
|
+ "backgroundColor": ["<?=implode('","', $Colors)?>"]
|
|
205
|
+ }]
|
|
206
|
+ }
|
|
207
|
+ }'></canvas>
|
220
|
208
|
</div>
|
221
|
209
|
<br />
|
222
|
210
|
<h3 id="Geo_Dist_Map"><a href="#Geo_Dist_Map">Geographical Distribution Map</a></h3>
|