aboutsummaryrefslogtreecommitdiff
path: root/app/static/js/updateTable.js
blob: 849c19601f995e08d74b7dd436a950c36599011c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
function updateTable() {
	var changepoints = document.getElementsByClassName("changepoint");

	var myTableDiv = document.getElementById("changepoint-table");

	var old_table = document.getElementById("cp-table");
	old_table.remove();

	var table = document.createElement('TABLE')
	table.id = "cp-table";
	table.className = "table table-striped";

	if (changepoints.length == 0) {
		myTableDiv.appendChild(table);
		return;
	}

	var heading = new Array();
	heading[0] = "#";
	heading[1] = "T";

	// TABLE COLUMNS
	var thead = document.createElement('THEAD');
	thead.className = "thead-dark";
	table.appendChild(thead);
	for (i = 0; i < heading.length; i++) {
		var th = document.createElement('TH')
		th.appendChild(document.createTextNode(heading[i]));
		th.setAttribute("scope", "col");
		thead.appendChild(th);
	}
	var body = document.createElement("TBODY");

	//TABLE ROWS
	for (i = 0; i < changepoints.length; i++) {
		cp = changepoints[i];

		var tr = document.createElement('TR');

		var th = document.createElement('TH');
		th.setAttribute("scope", "row");
		th.appendChild(document.createTextNode(i+1));
		tr.appendChild(th);

		var td = document.createElement('TD');
		td.appendChild(document.createTextNode(
			d3.select(cp).data()[0].X
		));
		tr.appendChild(td);

		body.appendChild(tr);
	}
	table.appendChild(body);
	myTableDiv.appendChild(table);
}

function updateTableMulti(numCharts) {
	var changepoints = document.getElementsByClassName('changepoint');
	var myTableDiv = document.getElementById('changepoint-table');
	var oldTable = document.getElementById('cp-table');
	oldTable.remove();

	var table = document.createElement('TABLE');
	table.id = 'cp-table';
	table.className = 'table table-striped';
	if (changepoints.length == 0) {
		myTableDiv.appendChild(table);
		return;
	}

	var heading = new Array();
	heading[0] = "#";
	heading[1] = "T";

	// Table Columns
	var thead = document.createElement('THEAD');
	thead.className = 'thead-dark';
	table.appendChild(thead);
	for (i=0; i<heading.length; i++) {
		var th = document.createElement('TH');
		th.appendChild(document.createTextNode(heading[i]));
		th.setAttribute("scope", "col");
		thead.appendChild(th);
	}

	var consolidated = {};
	var keys = [];
	for (i=0; i<changepoints.length; i++) {
		cp = changepoints[i];
		data = d3.select(cp).data()[0];
		if (!(data.X in consolidated)) {
			consolidated[data.X] = {}
			keys.push(data.X);
		}
		id_parts = cp.id.split('-')
		yindex = id_parts[id_parts.length - 1];
		consolidated[data.X][yindex] = data.Y;
	}
	keys.sort(function(a, b) { return parseInt(a) - parseInt(b); });

	var body = document.createElement("TBODY");
	for (i=0; i<keys.length; i++) {
		X = keys[i];
		cp = consolidated[keys[i]];

		var tr = document.createElement('TR');

		var th = document.createElement('TH');
		th.setAttribute("scope", "row");
		th.appendChild(document.createTextNode(i+1));
		tr.appendChild(th);

		var td = document.createElement('TD');
		td.appendChild(document.createTextNode(X));
		tr.appendChild(td);

		body.appendChild(tr);
	}
	table.appendChild(body);
	myTableDiv.appendChild(table);
}