blob: 11e2b87804223a599f889034e7de163ec56730b2 (
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
|
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>UIUC Course Graph</title>
<link rel="stylesheet" href="styles.css" />
<link rel="preconnect" href="https://cdn.jsdelivr.net" />
</head>
<body>
<div id="app">
<header>
<h1>UIUC Course Graph</h1>
<div class="controls">
<label>
Course (e.g., CS 225 or CS):
<input id="searchInput" type="text" placeholder="CS 225" />
</label>
<label>
Depth:
<input id="depthInput" type="number" min="0" max="10" step="1" value="2" />
</label>
<label>
Include corequisites
<input id="toggleCoreq" type="checkbox" checked />
</label>
<button id="btnApply">Apply</button>
<button id="btnReset">Reset</button>
<label>
Layout:
<select id="layoutSelect">
<option value="preset">Preset</option>
<option value="dagre">Dagre</option>
<option value="cose">CoSE</option>
<option value="fcose">fCoSE</option>
<option value="cola">Cola</option>
<option value="elk">ELK Layered</option>
<option value="fa2">ForceAtlas2 (linlog)</option>
</select>
</label>
<label>
Spread:
<input id="spreadInput" type="number" min="0.5" step="0.5" value="1.5" />
</label>
<label>
Hide labels until zoom
<input id="toggleLabels" type="checkbox" />
</label>
</div>
</header>
<main>
<div id="cy"></div>
</main>
<footer>
<span id="status">Loading dataset...</span>
</footer>
</div>
<script src="https://cdn.jsdelivr.net/npm/cytoscape@3.28.1/dist/cytoscape.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/dagre@0.8.5/dist/dagre.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/cytoscape-dagre@2.5.0/cytoscape-dagre.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/webcola@3.4.0/WebCola/cola.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/cytoscape-cola@2.5.1/cytoscape-cola.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/cytoscape-fcose@2.2.0/cytoscape-fcose.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/elkjs@0.8.2/lib/elk.bundled.js"></script>
<script src="https://cdn.jsdelivr.net/npm/cytoscape-elk@2.2.1/cytoscape-elk.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/cytoscape-forceatlas2@1.2.2/cytoscape-forceatlas2.js"></script>
<script>
cytoscape.use(window.cytoscapeDagre);
cytoscape.use(window.cytoscapeCola);
cytoscape.use(window.cytoscapeFcose);
cytoscape.use(window.cytoscapeElk);
cytoscape.use(window.cytoscapeForceAtlas2);
</script>
<script src="index.js"></script>
</body>
</html>
|