]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Fix a missing `this` in the scale `generateTicks` method when manually overriding...
authorEvert Timberg <evert.timberg@gmail.com>
Fri, 19 Jun 2015 23:13:31 +0000 (19:13 -0400)
committerEvert Timberg <evert.timberg@gmail.com>
Fri, 19 Jun 2015 23:13:31 +0000 (19:13 -0400)
samples/line-scale-override.html [new file with mode: 0644]
src/scales/scale.linear.js
src/scales/scale.radialLinear.js

diff --git a/samples/line-scale-override.html b/samples/line-scale-override.html
new file mode 100644 (file)
index 0000000..6603b5c
--- /dev/null
@@ -0,0 +1,131 @@
+<!doctype html>
+<html>
+
+<head>
+    <title>Line Chart with Scale Override</title>
+    <script src="../Chart.js"></script>
+    <script src="../node_modules/jquery/dist/jquery.min.js"></script>
+</head>
+
+<body>
+    <div style="width:50%;">
+        <canvas id="canvas" style="width:100%;height:100%"></canvas>
+    </div>
+    <br>
+    <br>
+    <button id="randomizeData">Randomize Data</button>
+    <button id="addDataset">Add Dataset</button>
+    <button id="removeDataset">Remove Dataset</button>
+    <button id="addData">Add Data</button>
+    <button id="removeData">Remove Data</button>
+    <script>
+    var randomScalingFactor = function() {
+        return Math.round(Math.random() * 100 * (Math.random() > 0.5 ? -1 : 1));
+    };
+    var randomColorFactor = function() {
+        return Math.round(Math.random() * 255);
+    };
+    var randomColor = function(opacity) {
+        return 'rgba(' + randomColorFactor() + ',' + randomColorFactor() + ',' + randomColorFactor() + ',' + (opacity || '.3') + ')';
+    };
+
+    var config = {
+        type: 'line',
+        data: {
+            labels: ["January", "February", "March", "April", "May", "June", "July"],
+            datasets: [{
+                label: "My First dataset",
+                data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()],
+                fill: false,
+            }, {
+                label: "My Second dataset",
+                data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()],
+            }]
+        },
+        options: {
+            responsive: true,
+            scales: {
+                xAxes: [{
+                    display: true
+                }],
+                yAxes: [{
+                    display: true,
+                    override: {
+                        start: -100,
+                        stepWidth: 10,
+                        steps: 20
+                    }
+                }]
+            }
+        }
+    };
+
+    $.each(config.data.datasets, function(i, dataset) {
+        dataset.borderColor = randomColor(0.4);
+        dataset.backgroundColor = randomColor(0.5);
+        dataset.pointBorderColor = randomColor(0.7);
+        dataset.pointBackgroundColor = randomColor(0.5);
+        dataset.pointBorderWidth = 1;
+    });
+
+    console.log(config.data);
+
+    window.onload = function() {
+        var ctx = document.getElementById("canvas").getContext("2d");
+        window.myLine = new Chart(ctx, config);
+    };
+
+    $('#randomizeData').click(function() {
+        $.each(config.data.datasets, function(i, dataset) {
+            dataset.data = dataset.data.map(function() {
+                return randomScalingFactor();
+            });
+
+        });
+
+        window.myLine.update();
+    });
+
+    $('#addDataset').click(function() {
+        var newDataset = {
+            label: 'Dataset ' + config.data.datasets.length,
+            borderColor: randomColor(0.4),
+            backgroundColor: randomColor(0.5),
+            pointBorderColor: randomColor(0.7),
+            pointBackgroundColor: randomColor(0.5),
+            pointBorderWidth: 1,
+            data: [],
+        };
+
+        for (var index = 0; index < config.data.labels.length; ++index) {
+            newDataset.data.push(randomScalingFactor());
+        }
+
+        window.myLine.addDataset(newDataset);
+    });
+
+    $('#addData').click(function() {
+        if (config.data.datasets.length > 0) {
+            config.data.labels.push('dataset #' + config.data.labels.length);
+
+            for (var index = 0; index < config.data.datasets.length; ++index) {
+                window.myLine.addData(randomScalingFactor(), index);
+            }
+        }
+    });
+
+    $('#removeDataset').click(function() {
+        window.myLine.removeDataset(0);
+    });
+
+    $('#removeData').click(function() {
+        config.data.labels.splice(-1, 1); // remove the label first
+
+        config.data.datasets.forEach(function(dataset, datasetIndex) {
+            window.myLine.removeData(datasetIndex, -1);
+        });
+    });
+    </script>
+</body>
+
+</html>
index 21a6e43223d718e8fb748e14332adcb77801c46f..ceeae97c1487984b9de4494cf35a7fb3db6a624c 100644 (file)
@@ -61,7 +61,7 @@
                                // we get the final line
                                for (var i = 0; i <= this.options.override.steps; ++i) {
                                        var value = this.options.override.start + (i * this.options.override.stepWidth);
-                                       ticks.push(value);
+                                       this.ticks.push(value);
                                }
                        } else {
                                // Figure out what the max number of ticks we can support it is based on the size of
index 0a1a26b45af3245397f80607849df8951e3b1b37..0e9c763b30def1ec99e17966350f7edb9bedea40 100644 (file)
                                // we get the final line
                                for (var i = 0; i <= this.options.override.steps; ++i) {
                                        var value = this.options.override.start + (i * this.options.override.stepWidth);
-                                       ticks.push(value);
+                                       this.ticks.push(value);
                                }
                        } else {
                                // Figure out what the max number of ticks we can support it is based on the size of