|
|
|
@ -9,12 +9,14 @@ let xScale, yScale;
|
|
|
|
let highlighted = []
|
|
|
|
let highlighted = []
|
|
|
|
|
|
|
|
|
|
|
|
const renderTable = () => {
|
|
|
|
const renderTable = () => {
|
|
|
|
const trs = d3.select('tbody')
|
|
|
|
let trs = d3.select('tbody')
|
|
|
|
.selectAll('tr')
|
|
|
|
.selectAll('tr')
|
|
|
|
.data(highlighted, d => d.instance_id)
|
|
|
|
.data(highlighted, d => d.instance_id)
|
|
|
|
|
|
|
|
|
|
|
|
trs.exit().remove()
|
|
|
|
trs.exit().remove()
|
|
|
|
trs.enter().append('tr')
|
|
|
|
|
|
|
|
.selectAll('td')
|
|
|
|
trs = trs.enter().append('tr')
|
|
|
|
|
|
|
|
trs.selectAll('td')
|
|
|
|
.data(d => [
|
|
|
|
.data(d => [
|
|
|
|
d.instance_id,
|
|
|
|
d.instance_id,
|
|
|
|
d.course,
|
|
|
|
d.course,
|
|
|
|
@ -27,6 +29,17 @@ const renderTable = () => {
|
|
|
|
.enter()
|
|
|
|
.enter()
|
|
|
|
.append('td')
|
|
|
|
.append('td')
|
|
|
|
.text(value => value)
|
|
|
|
.text(value => value)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trs.append('td')
|
|
|
|
|
|
|
|
.append('button')
|
|
|
|
|
|
|
|
.text('Deselect')
|
|
|
|
|
|
|
|
.on('click', (event, datum) =>{
|
|
|
|
|
|
|
|
event.preventDefault();
|
|
|
|
|
|
|
|
highlighted = highlighted.filter(i => i.instance_id != datum.instance_id)
|
|
|
|
|
|
|
|
renderPoints()
|
|
|
|
|
|
|
|
renderTable()
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const renderPoints = () => {
|
|
|
|
const renderPoints = () => {
|
|
|
|
|