MDL-55030 core: Support min and max in axes
authorFrederic Massart <fred@moodle.com>
Mon, 27 Jun 2016 10:50:41 +0000 (18:50 +0800)
committerDan Poltawski <dan@moodle.com>
Mon, 25 Jul 2016 09:42:34 +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 6a8f59d..9499e8d 100644 (file)
Binary files a/lib/amd/build/chart_axis.min.js and b/lib/amd/build/chart_axis.min.js differ
index 1bc028f..e9144ce 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 ee5d459..53a2b75 100644 (file)
@@ -36,6 +36,8 @@ define([], function() {
     Axis.prototype.POS_TOP = 'top';
 
     Axis.prototype._label = null;
+    Axis.prototype._max = null;
+    Axis.prototype._min = null;
     Axis.prototype._position = null;
     Axis.prototype._stepSize = null;
 
@@ -44,6 +46,8 @@ define([], function() {
         s.setPosition(obj.position);
         s.setLabel(obj.label);
         s.setStepSize(obj.stepSize);
+        s.setMax(obj.max);
+        s.setMin(obj.min);
         return s;
     };
 
@@ -51,6 +55,14 @@ define([], function() {
         return this._label;
     };
 
+    Axis.prototype.getMax = function() {
+        return this._max;
+    };
+
+    Axis.prototype.getMin = function() {
+        return this._min;
+    };
+
     Axis.prototype.getPosition = function() {
         return this._position;
     };
@@ -63,6 +75,14 @@ define([], function() {
         this._label = label || null;
     };
 
+    Axis.prototype.setMax = function(max) {
+        this._max = typeof max !== 'undefined' ? max : null;
+    };
+
+    Axis.prototype.setMin = function(min) {
+        this._min = typeof min !== 'undefined' ? min : null;
+    };
+
     Axis.prototype.setPosition = function(position) {
         if (position != this.POS_DEFAULT
                 && position != this.POS_BOTTOM
index 9b0e00b..f2a5c53 100644 (file)
@@ -78,6 +78,16 @@ define([
             scaleData.ticks.stepSize = axis.getStepSize();
         }
 
+        if (axis.getMax() !== null) {
+            scaleData.ticks = scaleData.ticks || {};
+            scaleData.ticks.max = axis.getMax();
+        }
+
+        if (axis.getMin() !== null) {
+            scaleData.ticks = scaleData.ticks || {};
+            scaleData.ticks.min = axis.getMin();
+        }
+
         return scaleData;
     };
 
index f151aee..3ea1342 100644 (file)
@@ -45,6 +45,8 @@ class chart_axis implements JsonSerializable {
     const POS_TOP = 'top';
 
     protected $label = null;
+    protected $max = null;
+    protected $min = null;
     protected $position = self::POS_DEFAULT;
     protected $stepsize = null;
 
@@ -55,6 +57,14 @@ class chart_axis implements JsonSerializable {
         return $this->label;
     }
 
+    public function get_max() {
+        return $this->max;
+    }
+
+    public function get_min() {
+        return $this->min;
+    }
+
     public function get_position() {
         return $this->position;
     }
@@ -66,6 +76,8 @@ class chart_axis implements JsonSerializable {
     public function jsonSerialize() {
         return [
             'label' => $this->label,
+            'max' => $this->max,
+            'min' => $this->min,
             'position' => $this->position,
             'stepSize' => $this->stepsize,
         ];
@@ -75,6 +87,14 @@ class chart_axis implements JsonSerializable {
         return $this->label = $label;
     }
 
+    public function set_max($max) {
+        return $this->max = $max;
+    }
+
+    public function set_min($min) {
+        return $this->min = $min;
+    }
+
     public function set_position($position) {
         return $this->position = $position;
     }