MDL-55030 core: Call class setter when creating a new axis
authorFrederic Massart <fred@moodle.com>
Tue, 28 Jun 2016 04:21:37 +0000 (12:21 +0800)
committerDan Poltawski <dan@moodle.com>
Mon, 25 Jul 2016 09:42:39 +0000 (10:42 +0100)
Part of MDL-54987 epic.

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

index 375f189..f99005f 100644 (file)
Binary files a/lib/amd/build/chart_base.min.js and b/lib/amd/build/chart_base.min.js differ
index 74da863..1c9fc02 100644 (file)
@@ -73,6 +73,7 @@ define(['core/chart_series', 'core/chart_axis'], function(Series, Axis) {
 
     Base.prototype.__getAxis = function(xy, index, createIfNotExists) {
         var axes = xy === 'x' ? this._xaxes : this._yaxes,
+            setAxis = (xy === 'x' ? this.setXAxis : this.setYAxis).bind(this),
             axis;
 
         index = typeof index === 'undefined' ? 0 : index;
@@ -84,7 +85,7 @@ define(['core/chart_series', 'core/chart_axis'], function(Series, Axis) {
                 throw new Error('Unknown axis.');
             }
             axis = new Axis();
-            axes[index] = axis;
+            setAxis(axis, index);
         }
 
         return axis;
index 6abbcf5..ce0967f 100644 (file)
@@ -66,20 +66,27 @@ class chart_base implements JsonSerializable, renderable {
     }
 
     private function get_axis($type, $index, $createifnotexists) {
-        if ($type === 'x') {
-            $axes = &$this->xaxes;
+        $isx = $type === 'x';
+        if ($isx) {
+            $axis = isset($this->xaxes[$index]) ? $this->xaxes[$index] : null;
         } else {
-            $axes = &$this->yaxes;
+            $axis = isset($this->yaxes[$index]) ? $this->yaxes[$index] : null;
         }
 
-        if (!isset($axes[$index])) {
+        if ($axis === null) {
             if (!$createifnotexists) {
                 throw new coding_exception('Unknown axis.');
             }
-            $axes[$index] = new chart_axis();
+
+            $axis = new chart_axis();
+            if ($isx) {
+                $this->set_xaxis($axis, $index);
+            } else {
+                $this->set_yaxis($axis, $index);
+            }
         }
 
-        return $axes[$index];
+        return $axis;
     }
 
     public function get_labels() {