-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmodules.html
More file actions
125 lines (115 loc) · 5.08 KB
/
modules.html
File metadata and controls
125 lines (115 loc) · 5.08 KB
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Modules</title>
<link rel="stylesheet" href="modules.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Darker+Grotesque:wght@300;400;500;600;700;800;900&display=swap" rel="stylesheet">
<script src="theme.js"></script>
</head>
<body>
<header class="topbar">
<div class="brand" onclick="goHome()" style="cursor: pointer;">
<div class="brand-title" id="presTitle"></div>
<div class="brand-subtitle" id="presSubtitle"></div>
</div>
<nav class="nav-tabs">
<a href="modules.html" class="nav-tab active">Modules</a>
<a href="videos.html" class="nav-tab">Videos</a>
<button id="themeToggleBtn" class="theme-toggle-btn" aria-label="Toggle theme" title="Toggle light/dark theme">
<i class="fas fa-sun theme-icon"></i>
</button>
</nav>
<div class="actions">
<input id="search" type="search" placeholder="Search modules" />
<button id="logoutBtn" class="logout-btn" onclick="logout()">Log out</button>
</div>
</header>
<!-- Mobile Levels Menu -->
<div class="levels-menu" id="levelsMenu">
<button class="levels-menu-toggle" id="levelsMenuToggle">
<span class="toggle-text">Levels</span>
<span class="toggle-icon"></span>
</button>
<nav class="levels-menu-content">
<div class="level-item active" data-level="all">All Modules</div>
<div class="level-item" data-level="1">Level I - Growth & Development</div>
<div class="level-item" data-level="2">Level II - Diagnosis</div>
<div class="level-item" data-level="3">Level III - Biomechanics</div>
<div class="level-item" data-level="4">Level IV - Clinical Treatment</div>
</nav>
<div class="levels-menu-search">
<input id="searchLevels" type="search" placeholder="Search modules" />
</div>
</div>
<!-- Mobile Module TOC Menu -->
<div class="module-toc-menu" id="moduleTocMenu">
<button class="module-toc-toggle" id="moduleTocToggle">Contents</button>
<nav class="module-toc-menu-content" id="moduleTocMenuContent">
<!-- Dynamically populated from module data -->
</nav>
</div>
<main class="layout">
<aside class="sidebar" id="sidebar">
<div class="sidebar-header">
<div class="sidebar-title">Levels</div>
</div>
<nav class="toc" aria-label="Level Navigation">
<div class="toc-item active" data-level="all">All Modules</div>
<div class="toc-item" data-level="1">Level I - Growth & Development</div>
<div class="toc-item" data-level="2">Level II - Diagnosis</div>
<div class="toc-item" data-level="3">Level III - Biomechanics</div>
<div class="toc-item" data-level="4">Level IV - Clinical Treatment</div>
</nav>
<!-- Table of contents for module content (hidden by default) -->
<div id="moduleTocDesktop" class="module-toc" style="display: none;"></div>
</aside>
<section class="content" id="content">
<div class="breadcrumbs" id="breadcrumbs"></div>
<!-- Home page or module content -->
<div id="page" class="page">
<div class="page-title" id="pageTitle">Loading...</div>
<div class="page-body" id="pageBody"></div>
<div class="page-media" id="pageMedia"></div>
<div id="pageNavigation"></div>
</div>
</section>
</main>
<dialog id="imgModal" class="modal">
<button class="modal-close" id="modalClose" aria-label="Close">×</button>
<div class="modal-controls">
<button class="modal-zoom-btn" id="zoomOutBtn" aria-label="Zoom out">−</button>
<span class="modal-zoom-level" id="zoomLevel">100%</span>
<button class="modal-zoom-btn" id="zoomInBtn" aria-label="Zoom in">+</button>
<button class="modal-reset-btn" id="resetBtn" aria-label="Reset zoom">Reset</button>
</div>
<div class="modal-image-container">
<img id="modalImg" alt="" class="modal-img" />
</div>
<figcaption id="modalCaption" class="modal-caption"></figcaption>
</dialog>
<dialog id="videoModal" class="modal video-modal">
<button class="modal-close" id="videoModalClose" aria-label="Close" onclick="closeModal()">×</button>
<div id="modalVideoContainer" class="modal-video-container"></div>
<figcaption id="modalVideoCaption" class="modal-caption"></figcaption>
</dialog>
<script src="app.js"></script>
<script>
// Check that user has a token (is logged in)
const token = localStorage.getItem("token");
if (!token) {
// No token = not logged in, redirect
window.location.href = "index.html";
}
// Logout button functionality
function logout() {
localStorage.removeItem("token");
window.location.href = "index.html";
}
</script>
</body>
</html>