-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathdashboard.html
More file actions
141 lines (130 loc) · 5.19 KB
/
dashboard.html
File metadata and controls
141 lines (130 loc) · 5.19 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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Dashboard</title>
<link rel="stylesheet" href="style.css" />
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400&family=Share+Tech+Mono&display=swap" rel="stylesheet"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css"/>
<!-- Chart.js CDN / Plugins -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.2.0"></script>
</head>
<body>
<aside>
<img
src="./assets/imgs/cy-logo-dstacked-color.png"
alt="CodeYou Logo"
class="logo"
id="logo-stacked"
/>
<img
src="./assets/imgs/cy-logo-horz-color.png"
alt="Code:You Logo"
class="logo-horizontal"
id="logo-horizontal"
/>
<nav>
<a href="index.html"><i class="fa-solid fa-house"></i> Home</a>
<a href="jobBoard.html"><i class="fa-solid fa-briefcase"></i> Job Board</a>
<a href="dashboard.html" class="active"><i class="fa-solid fa-chart-bar"></i> Dashboard</a>
<a href="contact.html"><i class="fa-solid fa-address-book"></i> Contact Us</a>
</nav>
<p style="font-size: small;">Tip: Click on Location and Language chart slices to filter results!</p>
</aside>
<div class="container">
<div class="header">
<h1>Jobs Dashboard</h1>
<p>Interactive stats for CodeYou job opportunities (last 90 days by default).</p>
</div>
<!-- Date Range Selector -->
<section class="date-section">
<h2>Date Range</h2>
<div class="date-controls">
<div class="date-controls-left">
<label for="startDate">From:</label>
<input type="date" id="startDate" class="filter-select" />
<label for="endDate">To:</label>
<input type="date" id="endDate" class="filter-select" />
<!-- Inline date-range warning (hidden by default) -->
<span id="dateWarning" class="date-warning" aria-live="polite" hidden></span>
</div>
<div id="jobCount" class="job-count">Number of Jobs: Loading...</div>
</div>
<!-- Loading overlay shown while dashboard data/charts are initializing -->
<div id="loadingOverlay" class="loading-overlay" aria-hidden="false">
<div class="loading-box">
<div class="spinner" aria-hidden="true"></div>
<div class="loading-text">Loading dashboard…</div>
</div>
</div>
</section>
<!-- Filters Section -->
<div class="filters-row-wrapper">
<div class="filter-row">
<div class="filter-group">
<label for="languageSelect">Languages</label>
<select class="filter-select" id="languageSelect"></select>
</div>
<div class="filter-group">
<label for="locationSelect">Locations</label>
<select class="filter-select" id="locationSelect"></select>
</div>
<div class="filter-group">
<label for="salarySelect">Salary</label>
<select class="filter-select" id="salarySelect"></select>
</div>
</div>
<button id="clearFilters" class="filter-btn">Clear All Filters</button>
</div>
<!-- Charts Section -->
<section class="charts-section">
<div class="chart-grid">
<!-- Pie: Salary by Location -->
<div class="charts-row">
<div class="chart-item">
<h3 class="chart-title">Location</h3>
<canvas id="pieChart" width="400" height="400"></canvas>
</div>
<!-- Donut: Language Breakdown -->
<div class="chart-item">
<h3 class="chart-title">Language Breakdown</h3>
<canvas id="donutChart" width="400" height="400"></canvas>
</div>
<!-- Bar: Salary Bins -->
<div class="chart-item">
<h3 class="chart-title">Salary</h3>
<canvas id="barChart" width="400" height="400"></canvas>
</div>
</div>
</div>
</section>
<!-- Table Section: mirror jobBoard table style -->
<section class="table-section">
<div class="table-wrapper">
<table class="job-table" id="dashboardJobTable">
<thead>
<tr id="dashboardTableHeadRow">
<!-- headers populated by JS -->
</tr>
</thead>
<tbody id="dashboardJobTableBody">
<!-- Rows populated by JS -->
</tbody>
</table>
<div class="pagination-controls" id="dashboard-pagination"></div>
</div>
<div class="job-data-status" id="dashboardJobStatus" hidden></div>
</section>
<footer>
<p>© 2025 Code:You. All rights reserved.</p>
</footer>
<div class="hamburger">
<i class="fa-solid fa-bars"></i>
</div>
</div>
<script src="./src/menu.js"></script>
<script src="./src/dashboard.js"></script>
</body>
</html>