-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsource_explorer.js
58 lines (50 loc) · 1.82 KB
/
source_explorer.js
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
// Create src buttons
function addButton(name, idx) {
//Create an input type dynamically.
var element = document.createElement("button");
element.textContent= name;
element.classList.add("srcButton");
element.setAttribute("_buttonIdx", idx);
element.onclick = function() {
let buttonIdx = this.getAttribute("_buttonIdx");
if (collapsibles[buttonIdx].style.display == "none"){
collapsibles[buttonIdx].style.display = "block";
}
else {
collapsibles[buttonIdx].style.display = "none";
}
};
return element;
}
// Create collapsible buttons
var collapsibles = document.getElementsByClassName("src_explore_collapsible");
for (let i = 0; i < collapsibles.length; i++) {
const elem = collapsibles[i];
var srcName = "";
let codeSrc = collapsibles[i].getElementsByTagName("CODE")[0];
srcName = codeSrc.dataset.src;
const cutIdx = srcName.lastIndexOf("/");
if (cutIdx != -1) {
srcName = srcName.substring(cutIdx + 1);
}
let button = addButton(srcName, i);
var foo = document.getElementsByClassName("src_explore_collapsible")[i];
foo.before(button)
}
// Close all src (collapsibles)
var collapsibles = document.getElementsByClassName("src_explore_collapsible");
for (let i = 0; i < collapsibles.length; i++) {
const elem = collapsibles[i];
elem.style.display = "none";
}
// Rename the path
// Take random src
var pathName = collapsibles[0].getElementsByTagName("CODE")[0].dataset.src;
// Take the path
var cutIdx = pathName.lastIndexOf("/");
pathName = pathName.substring(0, cutIdx);
// Remove "sources" folder from path
cutIdx = pathName.indexOf("/",1);
pathName = "/" + pathName.substring(cutIdx + 1);
document.getElementsByClassName("src_explore_path")[0]
.textContent = pathName;