Skip to content

Commit a64fa36

Browse files
author
cristian-ungureanu
authored
Merge pull request #868 from Codeinwp/bugfix/867
Add latest chartJS library support in bar chart
2 parents b5c2ee8 + a6ac2f0 commit a64fa36

File tree

1 file changed

+68
-5
lines changed

1 file changed

+68
-5
lines changed

js/render-chartjs.js

Lines changed: 68 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@
4747
type = 'bar';
4848
break;
4949
case 'bar':
50-
type = 'horizontalBar';
50+
type = 'bar';
51+
settings.indexAxis = 'y';
5152
break;
5253
case 'pie':
5354
// donut is not a setting but a separate chart type.
@@ -200,10 +201,24 @@
200201
if(typeof settings['yAxes'] !== 'undefined' && typeof settings['xAxes'] !== 'undefined'){
201202
// stacking has to be defined on both axes.
202203
if(typeof settings['yAxes']['stacked_bool'] !== 'undefined'){
203-
settings['xAxes']['stacked_bool'] = 'true';
204+
settings['yAxes']['stacked_bool'] = 'true';
204205
}
205206
if(typeof settings['xAxes']['stacked_bool'] !== 'undefined'){
206-
settings['yAxes']['stacked_bool'] = 'true';
207+
settings['xAxes']['stacked_bool'] = 'true';
208+
}
209+
// Bar percentage.
210+
if (typeof settings['yAxes']['barPercentage_int'] !=='undefined' && ''!== settings['yAxes']['barPercentage_int']){
211+
settings['barPercentage'] = settings['yAxes']['barPercentage_int'];
212+
}
213+
if (typeof settings['xAxes']['barPercentage_int'] !=='undefined' && ''!== settings['xAxes']['barPercentage_int']){
214+
settings['barPercentage'] = settings['xAxes']['barPercentage_int'];
215+
}
216+
// Bar thickness.
217+
if (typeof settings['yAxes']['barThickness'] !=='undefined' && ''!== settings['yAxes']['barThickness']){
218+
settings['barThickness'] = settings['yAxes']['barThickness'];
219+
}
220+
if (typeof settings['xAxes']['barThickness'] !=='undefined' && ''!== settings['xAxes']['barThickness']){
221+
settings['barThickness'] = settings['xAxes']['barThickness'];
207222
}
208223
}
209224
configureAxes(settings, 'yAxes', chart);
@@ -275,6 +290,54 @@
275290
var $axis = $scales['scales'][axis];
276291

277292
$axis.push($features);
293+
// Migrate xAxes settings to v3.0+
294+
if ( $scales.scales && $scales.scales.xAxes ) {
295+
for (var x in $scales.scales.xAxes) {
296+
$scales.scales.x = {
297+
display: $scales.scales.xAxes[x].scaleLabel.display,
298+
title: {
299+
display:true,
300+
text: $scales.scales.xAxes[x].scaleLabel.labelString,
301+
color: $scales.scales.xAxes[x].scaleLabel.fontColor,
302+
font: {
303+
family: $scales.scales.xAxes[x].scaleLabel.fontFamily,
304+
size: $scales.scales.xAxes[x].scaleLabel.fontSize
305+
}
306+
},
307+
suggestedMax: $scales.scales.xAxes[x].ticks.suggestedMax || '',
308+
suggestedMin: $scales.scales.xAxes[x].ticks.suggestedMin || '',
309+
ticks: {
310+
maxTicksLimit: $scales.scales.xAxes[x].ticks.maxTicksLimit
311+
},
312+
stacked: $scales.scales.xAxes[x].stacked || false
313+
}
314+
}
315+
delete $scales.scales.xAxes;
316+
}
317+
// Migrate yAxes settings to v3.0+
318+
if ( $scales.scales && $scales.scales.yAxes ) {
319+
for (var y in $scales.scales.yAxes) {
320+
$scales.scales.y = {
321+
display: $scales.scales.yAxes[y].scaleLabel.display,
322+
title: {
323+
display:true,
324+
text: $scales.scales.yAxes[y].scaleLabel.labelString,
325+
color: $scales.scales.yAxes[y].scaleLabel.fontColor,
326+
font: {
327+
family: $scales.scales.yAxes[y].scaleLabel.fontFamily,
328+
size: $scales.scales.yAxes[y].scaleLabel.fontSize
329+
}
330+
},
331+
suggestedMax: $scales.scales.yAxes[y].ticks.suggestedMax || '',
332+
suggestedMin: $scales.scales.yAxes[y].ticks.suggestedMin || '',
333+
ticks: {
334+
maxTicksLimit: $scales.scales.yAxes[y].ticks.maxTicksLimit
335+
},
336+
stacked: $scales.scales.yAxes[y].stacked || false
337+
}
338+
}
339+
delete $scales.scales.yAxes;
340+
}
278341
$.extend(settings, $scales);
279342

280343
// to prevent duplication, indicates that the axis has been set.
@@ -288,12 +351,12 @@
288351
var format = settings[axis + '_format'];
289352
switch(axis){
290353
case 'xAxes':
291-
settings.scales.xAxes[0].ticks.callback = function(value, index, values){
354+
settings.scales.x.ticks.callback = function(value, index, values){
292355
return format_datum(value, format);
293356
};
294357
break;
295358
case 'yAxes':
296-
settings.scales.yAxes[0].ticks.callback = function(value, index, values){
359+
settings.scales.y.ticks.callback = function(value, index, values){
297360
return format_datum(value, format);
298361
};
299362
break;

0 commit comments

Comments
 (0)