Skip to content

Commit 7c1d2e8

Browse files
[dashboard][Study Progression] Add tooltip visualising of Total in line chart (#8123)
Added total scan and recruitment data in their respective chart visualisations Added total calculation Updated related CSS Updated scale of chart appropriately Minor Spelling mistake fixes Resolves #8122
1 parent 0721c33 commit 7c1d2e8

File tree

2 files changed

+31
-6
lines changed

2 files changed

+31
-6
lines changed

modules/statistics/css/recruitment.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@
1111
background-color: #2FA4E7;
1212
}
1313

14+
.c3-chart-line.c3-target.c3-target-Total{
15+
display: none !important;
16+
}

modules/statistics/js/studyprogression.js

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,38 @@ $(document).ready(function() {
3838
dataset.push(data.datasets[i].name);
3939
processedData.push(dataset.concat(data.datasets[i].data));
4040
}
41+
var totals = new Array();
42+
totals.push("Total");
43+
for(var j=0; j<data.datasets[0].data.length; j++){
44+
var total=0;
45+
for(var i=0;i<data.datasets.length;i++){
46+
total+=parseInt(data.datasets[i].data[j]);
47+
}
48+
totals.push(total);
49+
}
50+
processedData.push(totals);
4151
return processedData;
4252
}
4353

54+
function maxY(data){
55+
var maxi=0;
56+
for(var j=0; j<data.datasets[0].data.length; j++){
57+
for(var i=0;i<data.datasets.length;i++){
58+
maxi=Math.max(maxi,parseInt(data.datasets[i].data[j]));
59+
}
60+
}
61+
return maxi;
62+
}
63+
4464

4565
// AJAX to get scan line chart data
4666
$.ajax({
4767
url: loris.BaseURL + '/statistics/charts/scans_bymonth',
4868
type: 'get',
4969
success: function(data) {
50-
let lengendNames = [];
70+
let legendNames = [];
5171
for (let j=0; j<data.datasets.length; j++) {
52-
lengendNames.push(data.datasets[j].name);
72+
legendNames.push(data.datasets[j].name);
5373
}
5474
let scanLineData = formatLineData(data);
5575
scanLineChart = c3.generate({
@@ -74,6 +94,7 @@ $(document).ready(function() {
7494
}
7595
},
7696
y: {
97+
max: maxY(data),
7798
label: 'Scans'
7899
}
79100
},
@@ -87,7 +108,7 @@ $(document).ready(function() {
87108
d3.select('.scanChartLegend')
88109
.insert('div', '.scanChart')
89110
.attr('class', 'legend')
90-
.selectAll('div').data(lengendNames).enter()
111+
.selectAll('div').data(legendNames).enter()
91112
.append('div')
92113
.attr('data-id', function(id) {
93114
return id;
@@ -119,9 +140,9 @@ $(document).ready(function() {
119140
url: loris.BaseURL + '/statistics/charts/siterecruitment_line',
120141
type: 'get',
121142
success: function(data) {
122-
let lengendNames = [];
143+
let legendNames = [];
123144
for (let j=0; j<data.datasets.length; j++) {
124-
lengendNames.push(data.datasets[j].name);
145+
legendNames.push(data.datasets[j].name);
125146
}
126147
let recruitmentLineData = formatLineData(data);
127148
recruitmentLineChart = c3.generate({
@@ -146,6 +167,7 @@ $(document).ready(function() {
146167
}
147168
},
148169
y: {
170+
max: maxY(data),
149171
label: 'Candidates registered'
150172
}
151173
},
@@ -159,7 +181,7 @@ $(document).ready(function() {
159181
d3.select('.recruitmentChartLegend')
160182
.insert('div', '.recruitmentChart')
161183
.attr('class', 'legend')
162-
.selectAll('div').data(lengendNames).enter()
184+
.selectAll('div').data(legendNames).enter()
163185
.append('div')
164186
.attr('data-id', function(id) {
165187
return id;

0 commit comments

Comments
 (0)