MDL-55016 core: Support stepSize in chart axes
authorFrederic Massart <fred@moodle.com>
Mon, 27 Jun 2016 03:15:22 +0000 (11:15 +0800)
committerDan Poltawski <dan@moodle.com>
Mon, 25 Jul 2016 09:42:32 +0000 (10:42 +0100)
Part of MDL-54987 epic.

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

index 349f434..6a8f59d 100644 (file)
Binary files a/lib/amd/build/chart_axis.min.js and b/lib/amd/build/chart_axis.min.js differ
index 9d6efba..1bc028f 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 1aefb6f..ee5d459 100644 (file)
@@ -37,11 +37,13 @@ define([], function() {
 
     Axis.prototype._label = null;
     Axis.prototype._position = null;
+    Axis.prototype._stepSize = null;
 
     Axis.prototype.create = function(obj) {
         var s = new Axis();
         s.setPosition(obj.position);
         s.setLabel(obj.label);
+        s.setStepSize(obj.stepSize);
         return s;
     };
 
@@ -53,6 +55,10 @@ define([], function() {
         return this._position;
     };
 
+    Axis.prototype.getStepSize = function() {
+        return this._stepSize;
+    };
+
     Axis.prototype.setLabel = function(label) {
         this._label = label || null;
     };
@@ -68,6 +74,18 @@ define([], function() {
         this._position = position;
     };
 
+    Axis.prototype.setStepSize = function(stepSize) {
+        if (typeof stepSize === 'undefined' || stepSize === null) {
+            stepSize = null;
+        } else if (isNaN(Number(stepSize))) {
+            throw new Error('Value for stepSize is not a number.');
+        } else {
+            stepSize = Number(stepSize);
+        }
+
+        this._stepSize = stepSize;
+    };
+
     return Axis;
 
 });
index 24e189e..9b0e00b 100644 (file)
@@ -73,6 +73,11 @@ define([
             };
         }
 
+        if (axis.getStepSize() !== null) {
+            scaleData.ticks = scaleData.ticks || {};
+            scaleData.ticks.stepSize = axis.getStepSize();
+        }
+
         return scaleData;
     };
 
index 9550f94..f151aee 100644 (file)
@@ -46,6 +46,7 @@ class chart_axis implements JsonSerializable {
 
     protected $label = null;
     protected $position = self::POS_DEFAULT;
+    protected $stepsize = null;
 
     public function __construct() {
     }
@@ -58,10 +59,15 @@ class chart_axis implements JsonSerializable {
         return $this->position;
     }
 
+    public function get_stepsize() {
+        return $this->stepsize;
+    }
+
     public function jsonSerialize() {
         return [
             'label' => $this->label,
             'position' => $this->position,
+            'stepSize' => $this->stepsize,
         ];
     }
 
@@ -73,4 +79,8 @@ class chart_axis implements JsonSerializable {
         return $this->position = $position;
     }
 
+    public function set_stepsize($stepsize) {
+        return $this->stepsize = $stepsize;
+    }
+
 }