MDL-55146 core: Support custom labels on X axis
authorFrederic Massart <fred@moodle.com>
Thu, 7 Jul 2016 06:54:32 +0000 (14:54 +0800)
committerDan Poltawski <dan@moodle.com>
Mon, 25 Jul 2016 09:43:14 +0000 (10:43 +0100)
Note that this is still limited as the number of labels is locked
to the number of elements in the series.

Part of MDL-54987 epic.

lib/amd/build/chart_output_chartjs.min.js
lib/amd/src/chart_output_chartjs.js
lib/classes/chart_base.php

index c0b56d0..82499a8 100644 (file)
Binary files a/lib/amd/build/chart_output_chartjs.min.js and b/lib/amd/build/chart_output_chartjs.min.js differ
index c23aad0..d7e42d3 100644 (file)
@@ -161,9 +161,17 @@ define([
         };
 
         this._chart.getXAxes().forEach(function(axis, i) {
+            var axisLabels = axis.getLabels();
+
             config.options.scales = config.options.scales || {};
             config.options.scales.xAxes = config.options.scales.xAxes || [];
             config.options.scales.xAxes[i] = this._makeAxisConfig(axis, 'x', i);
+
+            if (axisLabels !== null) {
+                config.options.scales.xAxes[i].ticks.callback = function(value, index) {
+                    return axisLabels[index] || '';
+                };
+            }
         }.bind(this));
 
         this._chart.getYAxes().forEach(function(axis, i) {
index 86f106c..bcef0b0 100644 (file)
@@ -262,7 +262,7 @@ class chart_base implements JsonSerializable, renderable {
      * axis preceding, we would effectively contain the axes in an associative array
      * rather than a simple array, and that would have consequences on serialisation.
      *
-     * @param string} $xy Accepts x or y.
+     * @param string $xy Accepts x or y.
      * @param chart_axis $axis The axis to validate.
      * @param index $index The index of the axis.
      */