aboutsummaryrefslogtreecommitdiffstats
path: root/gui-pdp-monitoring/src/webapp/js/MonitoringChart.js
diff options
context:
space:
mode:
Diffstat (limited to 'gui-pdp-monitoring/src/webapp/js/MonitoringChart.js')
-rw-r--r--gui-pdp-monitoring/src/webapp/js/MonitoringChart.js136
1 files changed, 68 insertions, 68 deletions
diff --git a/gui-pdp-monitoring/src/webapp/js/MonitoringChart.js b/gui-pdp-monitoring/src/webapp/js/MonitoringChart.js
index 2744469..94a18df 100644
--- a/gui-pdp-monitoring/src/webapp/js/MonitoringChart.js
+++ b/gui-pdp-monitoring/src/webapp/js/MonitoringChart.js
@@ -26,36 +26,36 @@ import * as d3 from "d3";
function createChart(data, container, title, unit, lineStroke, nodeColour) {
// Set the dimensions of the canvas
var margin = {
- top : 30,
- right : 20,
- bottom : 30,
- left : 50
+ top: 30,
+ right: 20,
+ bottom: 30,
+ left: 50
}, width = 600 - margin.left - margin.right, height = 270 - margin.top
- - margin.bottom;
+ - margin.bottom;
// Set the ranges
- var x = d3.time.scale().range([ 0, width ]);
- var y = d3.scale.linear().range([ height, 0 ]);
+ var x = d3.time.scale().range([0, width]);
+ var y = d3.scale.linear().range([height, 0]);
// Define the axes
var xAxis = d3.svg.axis().scale(x).orient("bottom").ticks(5).innerTickSize(
- -height).outerTickSize(0).tickPadding(10);
+ -height).outerTickSize(0).tickPadding(10);
var yAxis = d3.svg.axis().scale(y).orient("left").ticks(10).innerTickSize(
- -width).outerTickSize(0).tickPadding(10);
+ -width).outerTickSize(0).tickPadding(10);
// Define the line
- var valueline = d3.svg.line().x(function(d) {
+ var valueline = d3.svg.line().x(function (d) {
return x(d.timestamp);
- }).y(function(d) {
+ }).y(function (d) {
return y(d.value);
});
// Add the svg canvas to the container
var svg = d3.select(container).append("svg").attr("preserveAspectRatio",
- "xMinYMin meet").attr("viewBox", "0 0 600 400").classed(
- "svg-content-responsive", true).append("g").attr("transform",
- "translate(" + margin.left + "," + margin.top + ")");
+ "xMinYMin meet").attr("viewBox", "0 0 600 400").classed(
+ "svg-content-responsive", true).append("g").attr("transform",
+ "translate(" + margin.left + "," + margin.top + ")");
// Set the unit for the value
svg.attr("unit", unit);
@@ -63,12 +63,12 @@ function createChart(data, container, title, unit, lineStroke, nodeColour) {
data = formatDataForChart(data);
// Scale the range of the data
- x.domain(d3.extent(data, function(d) {
+ x.domain(d3.extent(data, function (d) {
return d.timestamp;
}));
- y.domain([ 0, d3.max(data, function(d) {
+ y.domain([0, d3.max(data, function (d) {
return Math.ceil((d.value + 1) / 10) * 10;
- }) ]);
+ })]);
// Set the colour of the line
if (!lineStroke) {
@@ -82,36 +82,36 @@ function createChart(data, container, title, unit, lineStroke, nodeColour) {
// Add the valueline path
svg.append("path").attr("class", "line").data(data).attr("unit", unit)
- .attr("stroke", lineStroke).attr("d", valueline(data));
+ .attr("stroke", lineStroke).attr("d", valueline(data));
// Add the scatterplot
svg.selectAll("circle").data(data).enter().append("circle").attr("r", 3.5)
- .attr("class", "circle").attr("fill", nodeColour).attr("cx",
- function(d) {
- return x(d.timestamp);
- }).attr("cy", function(d) {
- return y(d.value);
- })
+ .attr("class", "circle").attr("fill", nodeColour).attr("cx",
+ function (d) {
+ return x(d.timestamp);
+ }).attr("cy", function (d) {
+ return y(d.value);
+ })
- // Apply the tooltip to each node
- .on("mouseover", handleMouseOver)
- .on("mouseout", handleMouseOut);
+ // Apply the tooltip to each node
+ .on("mouseover", handleMouseOver)
+ .on("mouseout", handleMouseOut);
// Add the X Axis
svg.append("g").attr("class", "x axis").attr("transform",
- "translate(0," + height + ")").call(xAxis);
+ "translate(0," + height + ")").call(xAxis);
// Add the Y Axis
svg.append("g").attr("class", "y axis").call(yAxis);
// Add the title
svg.append("text").attr("x", (width / 2)).attr("y", 0 - (margin.top / 2))
- .attr("text-anchor", "middle").style("font-size", "16px").style(
- "text-decoration", "underline").text(title);
+ .attr("text-anchor", "middle").style("font-size", "16px").style(
+ "text-decoration", "underline").text(title);
// Add the background
svg.selectAll(".tick:not(:first-of-type) line").attr("stroke", "#777")
- .attr("stroke-dasharray", "2,2");
+ .attr("stroke-dasharray", "2,2");
}
/*
@@ -122,8 +122,8 @@ function generateRandomData() {
var data = [];
for (var i = 0; i < 30; i++) {
data.push({
- timestamp : new Date().getTime() - (i * 5000),
- value : Math.floor(Math.random() * 100) + 1
+ timestamp: new Date().getTime() - (i * 5000),
+ value: Math.floor(Math.random() * 100) + 1
});
}
return data;
@@ -134,12 +134,12 @@ function generateRandomData() {
*/
function updateChart(container, data, nodeColour) {
var margin = {
- top : 30,
- right : 20,
- bottom : 30,
- left : 50
+ top: 30,
+ right: 20,
+ bottom: 30,
+ left: 50
}, width = 600 - margin.left - margin.right, height = 270 - margin.top
- - margin.bottom;
+ - margin.bottom;
data = formatDataForChart(data);
@@ -147,28 +147,28 @@ function updateChart(container, data, nodeColour) {
var svg = d3.select(container);
// Set the ranges
- var x = d3.time.scale().range([ 0, width ]);
- var y = d3.scale.linear().range([ height, 0 ]);
+ var x = d3.time.scale().range([0, width]);
+ var y = d3.scale.linear().range([height, 0]);
// Define the axes
var xAxis = d3.svg.axis().scale(x).orient("bottom").ticks(5).innerTickSize(
- -height).outerTickSize(0).tickPadding(10);
+ -height).outerTickSize(0).tickPadding(10);
var yAxis = d3.svg.axis().scale(y).orient("left").ticks(10).innerTickSize(
- -width).outerTickSize(0).tickPadding(10);
+ -width).outerTickSize(0).tickPadding(10);
// Scale the range of the data
- x.domain(d3.extent(data, function(d) {
+ x.domain(d3.extent(data, function (d) {
return d.timestamp;
}));
- y.domain([ 0, d3.max(data, function(d) {
+ y.domain([0, d3.max(data, function (d) {
return Math.ceil((d.value + 1) / 10) * 10;
- }) ]);
+ })]);
// Update the valueline path
- var valueline = d3.svg.line().x(function(d) {
+ var valueline = d3.svg.line().x(function (d) {
return x(d.timestamp);
- }).y(function(d) {
+ }).y(function (d) {
return y(d.value);
});
@@ -182,24 +182,24 @@ function updateChart(container, data, nodeColour) {
// Make the changes
svg.select(".line").data(data) // change the line
- .transition().duration(750).attr("d", valueline(data));
+ .transition().duration(750).attr("d", valueline(data));
svg.select(".x.axis") // change the x axis
- .transition().duration(750).call(xAxis.ticks(5));
+ .transition().duration(750).call(xAxis.ticks(5));
svg.select(".y.axis") // change the y axis
- .transition().duration(750).call(yAxis);
+ .transition().duration(750).call(yAxis);
// Redraw the nodes based on the new data
svg.select("svg").select("g").selectAll("circle").data(data).enter()
- .append("circle").attr("r", 3.5).attr("class", "circle").attr(
- "fill", nodeColour).attr("cx", function(d) {
- return x(d.timestamp);
- }).attr("cy", function(d) {
- return y(d.value);
- })
+ .append("circle").attr("r", 3.5).attr("class", "circle").attr(
+ "fill", nodeColour).attr("cx", function (d) {
+ return x(d.timestamp);
+ }).attr("cy", function (d) {
+ return y(d.value);
+ })
- // Apply the tooltip to each node
- .on("mouseover", handleMouseOver)
- .on("mouseout", handleMouseOut);
+ // Apply the tooltip to each node
+ .on("mouseover", handleMouseOver)
+ .on("mouseout", handleMouseOut);
}
@@ -208,7 +208,7 @@ function updateChart(container, data, nodeColour) {
*/
function initTooltip() {
d3.select("body").append("div").attr("class", "tooltip").attr("id",
- "tooltip").style("opacity", 0);
+ "tooltip").style("opacity", 0);
}
/*
@@ -220,7 +220,7 @@ function formatDate(date) {
function formatDataForChart(data) {
// Format the data for the chart
- data.forEach(function(d) {
+ data.forEach(function (d) {
d.value = +d.value;
});
@@ -231,17 +231,17 @@ function handleMouseOver(d) {
var unit = svg.select(".line").attr("unit");
d3.select("body").select(".tooltip").transition()
- .duration(50).style("opacity", 1);
+ .duration(50).style("opacity", 1);
d3.select("body").select(".tooltip").html(
- formatDate(new Date(d.timestamp)) + "<br/>"
- + d.value + (unit ? " " + unit : ""))
- .style("left", (d3.event.pageX) + "px").style(
- "top", (d3.event.pageY - 28) + "px");
+ formatDate(new Date(d.timestamp)) + "<br/>"
+ + d.value + (unit ? " " + unit : ""))
+ .style("left", (d3.event.pageX) + "px").style(
+ "top", (d3.event.pageY - 28) + "px");
}
function handleMouseOut(d) {
d3.select("body").select(".tooltip").transition()
- .duration(500).style("opacity", 0);
+ .duration(500).style("opacity", 0);
}
-export { initTooltip, createChart, updateChart, generateRandomData }; \ No newline at end of file
+export {initTooltip, createChart, updateChart, generateRandomData};