File: script3.js

package info (click to toggle)
cherrytree 0.99.48%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 22,280 kB
  • sloc: cpp: 95,372; ansic: 14,613; xml: 1,047; sh: 306; python: 198; javascript: 80; ruby: 63; makefile: 10
file content (100 lines) | stat: -rw-r--r-- 2,533 bytes parent folder | download | duplicates (3)
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
right_arrow_heavy = '🡂'
left_arrow_heavy = '🡀'


function changeFrame(file_path){
	var iframe = document.getElementById("page_frame");
	iframe.src = file_path;
}

function toggleSubTree(element){
	var nextSibling = element.parentElement.nextElementSibling;
	if(nextSibling.tagName === 'UL'){
		nextSibling.classList.toggle('hide');
		if(element.textContent === '+'){
			element.textContent = '-'
		}else{
			element.textContent = '+'
		}
	}
}

function expandAllSubtrees(element){
	var subtrees = document.getElementsByClassName("subtree");
	for(var i=0; i<subtrees.length; i++){
		var subtree = subtrees[i];
		subtree.classList.remove('hide');
		subtree.previousElementSibling.firstChild.textContent = '-';
	}
}

function collapseAllSubtrees(element){
	var subtrees = document.getElementsByClassName("subtree");
	for(var i=0; i<subtrees.length; i++){
		var subtree = subtrees[i];
		subtree.classList.add('hide');
		subtree.previousElementSibling.firstChild.textContent = '+';
	}
}
function toggle_tree_panel() {
	var tree = get_tree_panel();
	var toggle_btn = document.getElementById('tree_panel_toggle_btn')
	if (tree.style.display === 'none') {
		tree.style.display = 'inline'
		toggle_btn.innerHTML = left_arrow_heavy
		toggle_btn.onmouseenter = null
	} else {
		tree.style.display = 'none'
		toggle_btn.innerHTML = right_arrow_heavy
		toggle_btn.onmouseenter = toggle_tree_panel
	}
}

function get_tree() {
	return document.getElementsByClassName("tree")[0]
}
function get_tree_panel() {
	return document.getElementsByClassName("tree-panel")[0]
}


window.onload = function() {
	var show_page = window.location.hash.substr(1);
	if (show_page !== '') {
		changeFrame(show_page);
	}

	// Unwrap the header
	let tree = get_tree()
	let para = tree.children[0]

	let index_txt = para.children[0].innerHTML
	let index_title = document.createElement("h1")
	index_title.innerHTML = index_txt
	index_title.id = 'index_header'
	tree.insertBefore(index_title, tree.children[0])


	// Remove unwrapped elements
	para.removeChild(para.children[0])

	// Keybinds
	document.onkeydown = handle_keypress

	// Toggle tree panel button
	let panels = document.getElementsByClassName("two-panels")[0]
	let toggle_btn = document.createElement("button")
	toggle_btn.onclick = toggle_tree_panel
	toggle_btn.innerHTML = left_arrow_heavy
	toggle_btn.id = 'tree_panel_toggle_btn'
	panels.insertBefore(toggle_btn, panels.children[1])

}

function handle_keypress(ev) {
	switch(ev.key) {
		case "Escape":
			toggle_tree_panel()
			break
	}
}