blob: 6d99c375e0b24ab792d3ec57b9e4df75b2bdf4c7 [file] [log] [blame]
Javier López-Contreras052503f2018-12-26 12:34:42 +01001window.addEventListener("load", addYearList);
2
3var limitYears = false;
4var showYears = new Set();
5
6function repaint() {
7 //targetYear: graf.nodes[e.source].year,
8 if(limitYears) {
9 var added = new Set();
10
11 s.graph.nodes().forEach(function(n) {
12 var numNeig = s.graph.numNeighborsFromYears(n.id, showYears);
13
14 if ((n.year == 0 && (n.sex == 'F' || n.sex == 'M') )
15 || numNeig == 0
16 || (!showYears.has("" + n.year) && (n.year != 0) )) {
17 n.hidden = true;
18 }
19 else {
20 n.hidden = false;
21 added.add(n.id);
22 }
23 });
24
25 s.graph.edges().forEach(function(e) {
26 if(!added.has(e.source) && !added.has(e.target)){
27 e.hidden = true;
28 }
29 else e.hidden = false;
30 });
31 }
32 else {
33 s.graph.nodes().forEach(function(n) {
34 n.hidden = false;
35 });
36
37 s.graph.edges().forEach(function(e) {
38 e.hidden = false;
39 });
40 }
41}
42
43function altYearList() {
44 var yearlist = document.querySelector("#year-list");
45
46 if(yearlist.style.display == "none"){
47 yearlist.style.display = "block";
48 yearLimits = true;
49 }
50 else{
51 yearlist.style.display = "none";
52 yearLimits = true;
53 }
54}
55
56function addYearList() {
57 var ylistspan = document.querySelector("#year-list-span")
58 for(var year=2006; year<2019; year++) {
59 var yin = document.createElement("input");
60 yin.type = "checkbox";
61 yin.class = "mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-js-ripple-effect mdl-button--colored";
62 yin.name = "" + year;
63 yin.addEventListener("change", function(){
64 limitYears = true;
65
66 if(this.checked) {
67 showYears.add(this.name);
68 }
69 else {
70 showYears.delete(this.name);
71 }
72
73 if(showYears.size == 0) limitYears = false;
74
75 repaint();
76
77 s.refresh();
78 });
79
80 var lab = document.createElement("label");
81 lab.innerHTML = "" + year + "<br>";
82
83 ylistspan.appendChild(yin);
84 ylistspan.appendChild(lab);
85 }
86
87 document.querySelector("#settings").addEventListener("click", altYearList);
88}
89