mirror of
https://github.com/billz/raspap-webgui.git
synced 2023-10-10 13:37:24 +02:00
72 lines
1.7 KiB
JavaScript
72 lines
1.7 KiB
JavaScript
|
// Link quality gauge for ChartJS
|
||
|
// console.log(linkQ);
|
||
|
|
||
|
let data1 = {
|
||
|
datasets: [{
|
||
|
data: [linkQ, 100-linkQ],
|
||
|
backgroundColor: ['#d4edda', '#eaecf4'],
|
||
|
hoverBackgroundColor: ['#c1e2c8', '#eaecf4'],
|
||
|
hoverBorderWidth: 0
|
||
|
}],
|
||
|
};
|
||
|
|
||
|
let config = {
|
||
|
type: 'doughnut',
|
||
|
data: data1,
|
||
|
options: {
|
||
|
responsive: true,
|
||
|
legend: {
|
||
|
display: false,
|
||
|
},
|
||
|
rotation: (2/3)*Math.PI,//2+(1/3),
|
||
|
circumference: (1+(2/3)) * Math.PI, // * Math.PI,
|
||
|
cutoutPercentage: 80,
|
||
|
animation: {
|
||
|
animateScale: false,
|
||
|
animateRotate: true
|
||
|
},
|
||
|
tooltips: {
|
||
|
enabled: false
|
||
|
}
|
||
|
},
|
||
|
centerText: {
|
||
|
display: true,
|
||
|
text: linkQ + "%"
|
||
|
}
|
||
|
};
|
||
|
|
||
|
Chart.Chart.pluginService.register({
|
||
|
beforeDraw: function(chart) {
|
||
|
if (chart.config.centerText.display !== null &&
|
||
|
typeof chart.config.centerText.display !== 'undefined' &&
|
||
|
chart.config.centerText.display) {
|
||
|
drawTotals(chart);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
function drawTotals(chart) {
|
||
|
|
||
|
let width = chart.chart.width;
|
||
|
let height = chart.chart.height;
|
||
|
let ctx = chart.chart.ctx;
|
||
|
|
||
|
ctx.restore();
|
||
|
let fontSize = (height / 100).toFixed(2);
|
||
|
ctx.font = fontSize + "em sans-serif";
|
||
|
ctx.fillStyle = "rgba(25,25,25,1)";
|
||
|
ctx.textBaseline = "middle";
|
||
|
|
||
|
let text = chart.config.centerText.text;
|
||
|
let textX = Math.round((width - ctx.measureText(text).width) * 0.5);
|
||
|
let textY = height / 2;
|
||
|
ctx.fillText(text, textX, textY);
|
||
|
ctx.save();
|
||
|
}
|
||
|
|
||
|
window.onload = function() {
|
||
|
let ctx = document.getElementById("canvas").getContext("2d");
|
||
|
window.myDoughnut = new Chart(ctx, config);
|
||
|
};
|
||
|
|