]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Fixed truncation of pie chart borders 2865/head
authornmac143 <nmac2011@gmail.com>
Tue, 28 Jun 2016 20:33:43 +0000 (16:33 -0400)
committerNeil Macintyre <nmac2011@gmail.com>
Wed, 29 Jun 2016 23:39:10 +0000 (19:39 -0400)
src/controllers/controller.doughnut.js
src/core/core.datasetController.js

index 159f40b3d3a06115eb440bee670ec8e186148e54..d073e0afcc2b70a7ad264b2a856b6e221ecc86d4 100644 (file)
@@ -166,8 +166,9 @@ module.exports = function(Chart) {
                                minSize = Math.min(availableWidth / size.width, availableHeight / size.height);
                                offset = {x: (max.x + min.x) * -0.5, y: (max.y + min.y) * -0.5};
                        }
+            chart.borderWidth = me.getMaxBorderWidth(meta.data);
 
-                       chart.outerRadius = Math.max(minSize / 2, 0);
+                       chart.outerRadius = Math.max((minSize - chart.borderWidth) / 2, 0);
                        chart.innerRadius = Math.max(cutoutPercentage ? (chart.outerRadius / 100) * (cutoutPercentage) : 1, 0);
                        chart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();
                        chart.offsetX = offset.x * chart.outerRadius;
@@ -262,6 +263,20 @@ module.exports = function(Chart) {
                        } else {
                                return 0;
                        }
-               }
+               },
+               
+               //gets the max border or hover width to properly scale pie charts
+        getMaxBorderWidth: function (elements) {
+            var max = 0;
+
+            for (var i = 0; i < elements.length; i++) {
+                var borderWidth = elements[i]._model ? elements[i]._model.borderWidth : 0,
+                    hoverWidth = elements[i]._chart ? elements[i]._chart.config.data.datasets[this.index].hoverBorderWidth : 0;
+                               
+                max = borderWidth > max ? borderWidth : max;
+                max = hoverWidth > max ? hoverWidth : max;
+            }
+            return max;
+        }
        });
 };
index e9cda32a6b73495972403d0cf90b0bf01f8d0424..02af1471debe75e23a4f43497176777e38b29b81 100644 (file)
@@ -157,7 +157,9 @@ module.exports = function(Chart) {
                        model.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : valueOrDefault(dataset.hoverBorderColor, index, getHoverColor(model.borderColor));
                        model.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : valueOrDefault(dataset.hoverBorderWidth, index, model.borderWidth);
                }
-       });
+               
+    });
+       
 
        Chart.DatasetController.extend = helpers.inherits;
 };
\ No newline at end of file