Skip to content

Commit d7822c5

Browse files
mgaudetclaude
andcommitted
Add SpiderMonkey Bug Dashboard
Creates a live dashboard that queries the Bugzilla API to display key metrics for the SpiderMonkey project. Features: - Displays recently opened bugs (last 30 days) - Shows recently resolved bugs (last 30 days) - Lists all open S1 & S2 severity bugs - Shows all assigned but still open bugs - Two-column layout for important links and Bugzilla components - Sortable columns - click any header to sort by that field - "View More" functionality for tables with >10 items - Each table title links to the full Bugzilla query - Clickable rows for easy bug navigation - Responsive design with styling consistent with the site Technical details: - Uses Bugzilla REST API with live data fetching - Client-side sorting with visual indicators - Maintains data locally to avoid re-fetching when sorting - Smooth scrolling to section headers when expanding tables 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 1d42dcd commit d7822c5

3 files changed

Lines changed: 803 additions & 0 deletions

File tree

dashboard/dashboard.css

Lines changed: 250 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
/* SpiderMonkey Dashboard Styles */
2+
3+
/* Import site fonts and variables */
4+
@font-face {
5+
font-family: ZillaSlab-Regular;
6+
src: url("/assets/fonts/ZillaSlab-Regular.ttf");
7+
}
8+
9+
@font-face {
10+
font-family: PT-Sans-S55;
11+
src: url("/assets/fonts/pt-sans/PTS55F-webfont.woff");
12+
}
13+
14+
/* Override styles to match site theme */
15+
.main-content {
16+
font-family: PT-Sans-S55;
17+
font-size: 1rem;
18+
}
19+
20+
h1 {
21+
font-family: ZillaSlab-Regular;
22+
font-size: 2.5rem;
23+
margin-bottom: 2rem;
24+
}
25+
26+
h2 {
27+
background-color: var(--color-primary);
28+
color: var(--color-bg);
29+
display: inline-block;
30+
font-size: 1.5em;
31+
padding: 0 10px;
32+
margin-top: 3rem;
33+
margin-bottom: 1.5rem;
34+
font-family: ZillaSlab-Regular;
35+
}
36+
37+
h2 a {
38+
color: var(--color-bg);
39+
text-decoration: none;
40+
}
41+
42+
h2 a:hover {
43+
color: var(--color-bg);
44+
background-color: transparent;
45+
text-decoration: underline;
46+
}
47+
48+
/* Links Section */
49+
.links-section {
50+
background-color: var(--color-dim-bg);
51+
padding: 20px;
52+
border-radius: 8px;
53+
margin-bottom: 40px;
54+
}
55+
56+
.links-section > ul {
57+
list-style-type: none;
58+
padding-left: 0;
59+
margin: 0;
60+
display: grid;
61+
grid-template-columns: 1fr 1fr;
62+
gap: 20px;
63+
}
64+
65+
@media (max-width: 768px) {
66+
.links-section > ul {
67+
grid-template-columns: 1fr;
68+
}
69+
}
70+
71+
.links-section li {
72+
margin-bottom: 8px;
73+
}
74+
75+
.links-section ul ul {
76+
list-style-type: none;
77+
padding-left: 0;
78+
margin-top: 5px;
79+
}
80+
81+
.links-section a {
82+
color: var(--color-primary);
83+
font-weight: 550;
84+
padding: 2px;
85+
font-size: 0.9rem;
86+
}
87+
88+
.links-section a:hover {
89+
color: var(--color-bg);
90+
background-color: var(--color-primary);
91+
text-decoration: none;
92+
}
93+
94+
.links-section strong {
95+
display: block;
96+
margin-bottom: 8px;
97+
color: var(--color-primary);
98+
font-family: ZillaSlab-Regular;
99+
font-size: 1.1rem;
100+
}
101+
102+
/* Bug Tables */
103+
.bug-table-container {
104+
margin-bottom: 40px;
105+
min-height: 200px;
106+
}
107+
108+
.bug-table {
109+
width: 100%;
110+
border-collapse: collapse;
111+
font-family: PT-Sans-S55;
112+
font-size: 0.9rem;
113+
}
114+
115+
.bug-table thead {
116+
background-color: var(--color-primary);
117+
}
118+
119+
.bug-table thead th {
120+
color: var(--color-bg);
121+
font-family: ZillaSlab-Regular;
122+
font-weight: 550;
123+
}
124+
125+
.bug-table thead th.sortable {
126+
cursor: pointer;
127+
user-select: none;
128+
}
129+
130+
.bug-table thead th.sortable:hover {
131+
background-color: rgba(0, 0, 0, 0.1);
132+
}
133+
134+
.bug-table th,
135+
.bug-table td {
136+
padding: 10px;
137+
text-align: left;
138+
border-bottom: 1px solid var(--color-primary);
139+
}
140+
141+
.bug-table tbody tr {
142+
cursor: pointer;
143+
}
144+
145+
.bug-table tbody tr:hover {
146+
background-color: var(--color-dim-bg);
147+
}
148+
149+
.bug-table a {
150+
color: var(--color-primary);
151+
font-weight: 550;
152+
padding: 2px;
153+
}
154+
155+
.bug-table a:hover {
156+
color: var(--color-bg);
157+
background-color: var(--color-primary);
158+
text-decoration: none;
159+
}
160+
161+
.summary {
162+
max-width: 500px;
163+
}
164+
165+
/* Priority Styling - removed coloring */
166+
167+
/* Severity Styling */
168+
.severity-s1 {
169+
color: #ff4444;
170+
font-weight: bold;
171+
}
172+
173+
.severity-s2 {
174+
color: #ff4444;
175+
font-weight: bold;
176+
}
177+
178+
.severity-s3 {
179+
color: var(--color-primary);
180+
}
181+
182+
.severity-s4 {
183+
color: var(--color-dim-primary);
184+
}
185+
186+
/* Loading and Error States */
187+
.loading {
188+
text-align: center;
189+
padding: 40px;
190+
color: var(--color-dim-primary);
191+
font-style: italic;
192+
font-family: PT-Sans-S55;
193+
}
194+
195+
.error {
196+
color: #ff4444;
197+
text-align: center;
198+
padding: 20px;
199+
background-color: rgba(255, 68, 68, 0.1);
200+
border-radius: 4px;
201+
font-family: PT-Sans-S55;
202+
}
203+
204+
/* Last Updated */
205+
.last-updated {
206+
text-align: right;
207+
color: var(--color-dim-primary);
208+
font-size: 0.85rem;
209+
margin-top: 20px;
210+
font-style: italic;
211+
font-family: PT-Sans-S55;
212+
}
213+
214+
/* View More Button */
215+
.view-more-container {
216+
text-align: center;
217+
margin-top: 20px;
218+
}
219+
220+
.view-more-button {
221+
background-color: var(--color-primary);
222+
color: var(--color-bg);
223+
border: none;
224+
padding: 10px 20px;
225+
font-family: ZillaSlab-Regular;
226+
font-size: 1rem;
227+
cursor: pointer;
228+
border-radius: 4px;
229+
transition: background-color 0.2s;
230+
}
231+
232+
.view-more-button:hover {
233+
background-color: var(--color-dim-primary);
234+
}
235+
236+
/* Responsive Design */
237+
@media (max-width: 768px) {
238+
.bug-table {
239+
font-size: 14px;
240+
}
241+
242+
.bug-table th,
243+
.bug-table td {
244+
padding: 8px;
245+
}
246+
247+
.summary {
248+
max-width: 300px;
249+
}
250+
}

0 commit comments

Comments
 (0)