1*c8dee2aaSAndroid Build Coastguard Worker{{ define "scripts" }} 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard WorkercurrentId = ''; 4*c8dee2aaSAndroid Build Coastguard WorkercurrentType = ''; 5*c8dee2aaSAndroid Build Coastguard WorkercurrentChunk = ''; 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard Workerfunction switchSign(element) { 8*c8dee2aaSAndroid Build Coastguard Worker if (!element) return false; 9*c8dee2aaSAndroid Build Coastguard Worker if (element.tagName !== "A") return false; 10*c8dee2aaSAndroid Build Coastguard Worker if (!element.hasAttribute('href')) return false; 11*c8dee2aaSAndroid Build Coastguard Worker if (element.innerHTML[0] == '+') { 12*c8dee2aaSAndroid Build Coastguard Worker element.innerHTML = '-' + element.innerHTML.substring(1); 13*c8dee2aaSAndroid Build Coastguard Worker return true; 14*c8dee2aaSAndroid Build Coastguard Worker } else { 15*c8dee2aaSAndroid Build Coastguard Worker element.innerHTML = '+' + element.innerHTML.substring(1); 16*c8dee2aaSAndroid Build Coastguard Worker return true; 17*c8dee2aaSAndroid Build Coastguard Worker } 18*c8dee2aaSAndroid Build Coastguard Worker} 19*c8dee2aaSAndroid Build Coastguard Worker 20*c8dee2aaSAndroid Build Coastguard Workerfunction recurse(id) { 21*c8dee2aaSAndroid Build Coastguard Worker var children = document.getElementsByClassName(id); 22*c8dee2aaSAndroid Build Coastguard Worker for (let i = 0; i < children.length; i++) { 23*c8dee2aaSAndroid Build Coastguard Worker children[i].classList.toggle("open"); 24*c8dee2aaSAndroid Build Coastguard Worker if (switchSign(children[i])) { 25*c8dee2aaSAndroid Build Coastguard Worker recursive(children[i].getAttribute('href').substring(1)); 26*c8dee2aaSAndroid Build Coastguard Worker } 27*c8dee2aaSAndroid Build Coastguard Worker } 28*c8dee2aaSAndroid Build Coastguard Worker} 29*c8dee2aaSAndroid Build Coastguard Worker 30*c8dee2aaSAndroid Build Coastguard Workerdocument.getElementById("comparison").addEventListener("click", function (e) { 31*c8dee2aaSAndroid Build Coastguard Worker if (!e) return; 32*c8dee2aaSAndroid Build Coastguard Worker e.preventDefault(); 33*c8dee2aaSAndroid Build Coastguard Worker if (switchSign(e.target)) { 34*c8dee2aaSAndroid Build Coastguard Worker recurse(e.target.getAttribute('href').substring(1)); 35*c8dee2aaSAndroid Build Coastguard Worker } 36*c8dee2aaSAndroid Build Coastguard Worker}); 37*c8dee2aaSAndroid Build Coastguard Worker 38*c8dee2aaSAndroid Build Coastguard Workerfunction hideDiff() { 39*c8dee2aaSAndroid Build Coastguard Worker if (currentId == '') { 40*c8dee2aaSAndroid Build Coastguard Worker return; 41*c8dee2aaSAndroid Build Coastguard Worker } 42*c8dee2aaSAndroid Build Coastguard Worker 43*c8dee2aaSAndroid Build Coastguard Worker let spans = document.querySelectorAll(`#id_${currentId} > td > div > span.${currentType}`); 44*c8dee2aaSAndroid Build Coastguard Worker [].forEach.call(spans, function(span) { span.classList.remove(`span_${currentType}`); }); 45*c8dee2aaSAndroid Build Coastguard Worker 46*c8dee2aaSAndroid Build Coastguard Worker let inactives = document.querySelectorAll(`#${currentType}_${currentChunk}${currentId}`); 47*c8dee2aaSAndroid Build Coastguard Worker [].forEach.call(inactives, function(inactive) { inactive.classList.add('inactive'); }); 48*c8dee2aaSAndroid Build Coastguard Worker 49*c8dee2aaSAndroid Build Coastguard Worker let invisibles = document.querySelectorAll(`#id_${currentId} > td > div.${currentType}`); 50*c8dee2aaSAndroid Build Coastguard Worker [].forEach.call(invisibles, function(invisible) { invisible.classList.add('invisible'); }); 51*c8dee2aaSAndroid Build Coastguard Worker 52*c8dee2aaSAndroid Build Coastguard Worker currentId = ''; 53*c8dee2aaSAndroid Build Coastguard Worker currentType = ''; 54*c8dee2aaSAndroid Build Coastguard Worker currentChunk = ''; 55*c8dee2aaSAndroid Build Coastguard Worker} 56*c8dee2aaSAndroid Build Coastguard Worker 57*c8dee2aaSAndroid Build Coastguard Workerfunction showDiff(id, type, chunkType) { 58*c8dee2aaSAndroid Build Coastguard Worker hideDiff(); 59*c8dee2aaSAndroid Build Coastguard Worker 60*c8dee2aaSAndroid Build Coastguard Worker let spans = document.querySelectorAll(`#id_${id} > td > div > span.${type}`); 61*c8dee2aaSAndroid Build Coastguard Worker [].forEach.call(spans, function(span) { span.classList.add(`span_${type}`); }); 62*c8dee2aaSAndroid Build Coastguard Worker 63*c8dee2aaSAndroid Build Coastguard Worker let inactives = document.querySelectorAll(`#${type}_${chunkType}${id}`); 64*c8dee2aaSAndroid Build Coastguard Worker [].forEach.call(inactives, function(inactive) { inactive.classList.remove('inactive'); }); 65*c8dee2aaSAndroid Build Coastguard Worker 66*c8dee2aaSAndroid Build Coastguard Worker let invisibles = document.querySelectorAll(`#id_${id} > td > div.${type}`); 67*c8dee2aaSAndroid Build Coastguard Worker [].forEach.call(invisibles, function(invisible) { invisible.classList.remove('invisible'); }); 68*c8dee2aaSAndroid Build Coastguard Worker 69*c8dee2aaSAndroid Build Coastguard Worker currentId = id; 70*c8dee2aaSAndroid Build Coastguard Worker currentType = type; 71*c8dee2aaSAndroid Build Coastguard Worker currentChunk = chunkType; 72*c8dee2aaSAndroid Build Coastguard Worker} 73*c8dee2aaSAndroid Build Coastguard Worker 74*c8dee2aaSAndroid Build Coastguard Worker{{ end }}