|
|
|
@ -2,6 +2,7 @@ const WIDTH = 800;
|
|
|
|
const HEIGHT = 600;
|
|
|
|
const HEIGHT = 600;
|
|
|
|
|
|
|
|
|
|
|
|
let instances;
|
|
|
|
let instances;
|
|
|
|
|
|
|
|
const selectedInstances = [];
|
|
|
|
let xScale, yScale;
|
|
|
|
let xScale, yScale;
|
|
|
|
const parseTime = d3.timeParse("%B %e, %Y");
|
|
|
|
const parseTime = d3.timeParse("%B %e, %Y");
|
|
|
|
const formatTime = d3.timeFormat("%B %e, %Y");
|
|
|
|
const formatTime = d3.timeFormat("%B %e, %Y");
|
|
|
|
@ -63,9 +64,23 @@ const createAxes = () => {
|
|
|
|
.call(leftAxis);
|
|
|
|
.call(leftAxis);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const createFormSubmissionHandler = () => {
|
|
|
|
|
|
|
|
d3.select('form').on('submit', (event)=>{
|
|
|
|
|
|
|
|
event.preventDefault();
|
|
|
|
|
|
|
|
const instanceID = parseInt(d3.select('input[type="text"]').property('value'))
|
|
|
|
|
|
|
|
selectedInstances.push(instanceID);
|
|
|
|
|
|
|
|
const list = d3.select('ul');
|
|
|
|
|
|
|
|
list.html('');
|
|
|
|
|
|
|
|
for(instance of selectedInstances){
|
|
|
|
|
|
|
|
list.append('li').html(instance)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
window.onload = async ()=>{
|
|
|
|
window.onload = async ()=>{
|
|
|
|
instances = await d3.json('/instances');
|
|
|
|
instances = await d3.json('/instances');
|
|
|
|
setupGraph();
|
|
|
|
setupGraph();
|
|
|
|
createAxes();
|
|
|
|
createAxes();
|
|
|
|
renderPoints();
|
|
|
|
renderPoints();
|
|
|
|
|
|
|
|
createFormSubmissionHandler();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|