1111 < link rel ="icon " type ="image/png " sizes ="32x32 " href ="../resources/favicon-32x32.png ">
1212 < link rel ="icon " type ="image/png " sizes ="16x16 " href ="../resources/favicon-16x16.png ">
1313 < style >
14+
15+ body {
16+ font-size : 0.9rem ;
17+ }
18+
1419 body > main {
1520 padding-block-start : 0 ;
1621 }
3237
3338 .sidebar {
3439 border-left : 1px solid # ddd ;
35- width : 20rem ;
40+ width : 11rem ;
41+ flex-shrink : 0 ;
42+ }
43+
44+ th ,
45+ td {
46+ padding-inline : 0.25em ;
47+ }
48+
49+ tr {
50+ vertical-align : top;
3651 }
3752
3853 tr td : nth-child (2 ) {
3954 word-break : break-word;
4055 }
4156
57+ th : last-of-type span {
58+ justify-content : end;
59+ }
60+
4261 # table-of-contents {
4362 position : fixed;
4463 margin : 0.5em 1em ;
7796 .reload-button ::after {
7897 content : "↻" ;
7998 font-size : 1.25rem ;
99+ display : inline-block;
100+ }
101+
102+ .spin : after {
103+ animation : spinner 2s infinite linear;
80104 }
81105
106+ @keyframes spinner {to {transform : rotate (1turn )}}
107+
82108 [href = "#top" ] {
83109 cursor : pointer;
84110 text-decoration : none;
87113 }
88114
89115 .table-container {
90- overflow-x : auto ;
116+ margin-inline-start : 0 ;
91117 margin-inline-end : 0 ;
92- max-width : calc (100vw - 20 rem );
118+ max-width : calc (100vw - 14 rem );
93119 }
94120
95121 th {
105131 }
106132
107133 th span : after {
108- content : "⏶⏷" ;
134+ content : "" ;
135+ background-image : url ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3C!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--%3E%3Cpath d='M130.4 268.2C135.4 280.2 147 288 160 288L480 288C492.9 288 504.6 280.2 509.6 268.2C514.6 256.2 511.8 242.5 502.7 233.3L342.7 73.3C330.2 60.8 309.9 60.8 297.4 73.3L137.4 233.3C128.2 242.5 125.5 256.2 130.5 268.2zM130.4 371.7C125.4 383.7 128.2 397.4 137.3 406.6L297.3 566.6C309.8 579.1 330.1 579.1 342.6 566.6L502.6 406.6C511.8 397.4 514.5 383.7 509.5 371.7C504.5 359.7 492.9 352 480 352L160 352C147.1 352 135.4 359.8 130.4 371.8z'/%3E%3C/svg%3E" );
109136 color : # 111 ;
110137 opacity : 0.25 ;
138+ width : 1em ;
139+ height : 1em ;
111140 }
112141
113142 @media (prefers-color-scheme : dark) {
117146 }
118147
119148 th [aria-sort = "ascending" ] span : after {
120- content : "⏶" ;
149+ content : "" ;
150+ background-image : url ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3C!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--%3E%3Cpath d='M160 288C147.1 288 135.4 280.2 130.4 268.2C125.4 256.2 128.2 242.5 137.4 233.4L297.4 73.4C309.9 60.9 330.2 60.9 342.7 73.4L502.7 233.4C511.9 242.6 514.6 256.3 509.6 268.3C504.6 280.3 492.9 288 480 288L160 288z'/%3E%3C/svg%3E" );
121151 opacity : 1 ;
122152 }
123153
124154 th [aria-sort = "descending" ] span : after {
125- content : "⏷" ;
155+ content : "" ;
156+ background-image : url ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3C!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--%3E%3Cpath d='M160 352C147.1 352 135.4 359.8 130.4 371.8C125.4 383.8 128.2 397.5 137.4 406.6L297.4 566.6C309.9 579.1 330.2 579.1 342.7 566.6L502.7 406.6C511.9 397.4 514.6 383.7 509.6 371.7C504.6 359.7 492.9 352 480 352L160 352z'/%3E%3C/svg%3E" );
126157 opacity : 1 ;
127158 }
128159
145176 padding-inline-end : 0.4em ;
146177 }
147178
148- @media (max-width : 1024 px ) {
179+ @media (max-width : 1023 px ) {
149180 body > main {
150181 padding-right : 0 ;
151182 }
156187 .spread {
157188 display : flex;
158189 justify-content : space-between;
190+ }
191+ .sticky {
159192 position : sticky;
193+ top : 0 ;
194+ margin-inline-start : calc (var (--pico-block-spacing-horizontal ) * -1 );
195+ padding-inline-start : var (--pico-block-spacing-horizontal );
196+ margin-block-start : calc (var (--pico-block-spacing-vertical ) * -1 );
197+ padding-block-start : var (--pico-block-spacing-vertical );
198+ background-color : white;
199+ z-index : 1 ;
160200 }
201+
161202 body .show-nav .sidebar {
162203 transform : translateX (0em );
163204 }
171212 width : auto;
172213 transition : all 0.5s ;
173214 overflow-y : auto;
215+ z-index : 2 ;
174216 }
175217 # table-of-contents {
176218 position : relative;
180222 margin-inline : 0 ;
181223 }
182224 .table-container {
225+ overflow-x : auto;
183226 max-width : 95vw ;
184227 }
228+ /* make summary column fixed width on small screens */
229+ td : nth-child (2 ) {
230+ min-width : 30ch ;
231+ }
185232 }
186233 </ style >
187234</ head >
213260 </ div >
214261 </ div >
215262 < div class ="content ">
216- < div class ="spread ">
263+ < div class ="spread sticky ">
217264 < h1 id ="top " class ="with-logo "> Yocto Project Bug Triage</ h1 >
218265 < div id ="nav-drawer-open "> ≡</ div >
219266 </ div >
@@ -251,7 +298,6 @@ <h4>Security-related</h4>
251298 < span >
252299 < h4 > Unprioritised< span class ="bug-count "> </ span > < a class ="reload-button " onclick ="reloadTable('#unprioritised'); "> Reload Bugs</ a > </ h4 >
253300 </ span >
254- < a href ="#top "> Back to top ⏶</ a >
255301 </ span >
256302 < p >
257303 Bugs without a priority, that need a priority, target milestone, and owner assigned.
@@ -264,7 +310,6 @@ <h4>Unprioritised<span class="bug-count"></span><a class="reload-button" onclick
264310 < span >
265311 < h4 > High< span class ="bug-count "> </ span > < a class ="reload-button " onclick ="reloadTable('#high'); "> Reload Bugs</ a > </ h4 >
266312 </ span >
267- < a href ="#top "> Back to top ⏶</ a >
268313 </ span >
269314 < p >
270315 All open high-priority bugs.
@@ -277,7 +322,6 @@ <h4>High<span class="bug-count"></span><a class="reload-button" onclick="reloadT
277322 < span >
278323 < h4 > Reopened< span class ="bug-count "> </ span > < a class ="reload-button " onclick ="reloadTable('#reopened'); "> Reload Bugs</ a > </ h4 >
279324 </ span >
280- < a href ="#top "> Back to top ⏶</ a >
281325 </ span >
282326 < p >
283327 Bugs that have been reopened. The owner should be reviewed and the bug
@@ -291,7 +335,6 @@ <h4>Reopened<span class="bug-count"></span><a class="reload-button" onclick="rel
291335 < span >
292336 < h4 > Autobuilder Intermittent< span class ="bug-count "> </ span > < a class ="reload-button " onclick ="reloadTable('#abint'); "> Reload Bugs</ a > </ h4 >
293337 </ span >
294- < a href ="#top "> Back to top ⏶</ a >
295338 </ span >
296339 < p >
297340 Bugs which are tagged as tracking intermittent failures on the
@@ -306,7 +349,6 @@ <h4>Autobuilder Intermittent<span class="bug-count"></span><a class="reload-butt
306349 < span >
307350 < h4 > Need Info< span class ="bug-count "> </ span > < a class ="reload-button " onclick ="reloadTable('#needinfo'); "> Reload Bugs</ a > </ h4 >
308351 </ span >
309- < a href ="#top "> Back to top ⏶</ a >
310352 </ span >
311353 < p >
312354 All bugs that are in the NEEDINFO state, and should be reviewed to
@@ -321,7 +363,6 @@ <h4>Need Info<span class="bug-count"></span><a class="reload-button" onclick="re
321363 < span >
322364 < h4 > Inactive Bugs< span class ="bug-count "> </ span > < a class ="reload-button " onclick ="reloadTable('#inactivebugs'); "> Reload Bugs</ a > </ h4 >
323365 </ span >
324- < a href ="#top "> Back to top ⏶</ a >
325366 </ span >
326367 < p >
327368 All open bugs that haven't been altered in two years.
@@ -334,7 +375,6 @@ <h4>Inactive Bugs<span class="bug-count"></span><a class="reload-button" onclick
334375 < span >
335376 < h4 > Inactive Enhancements< span class ="bug-count "> </ span > < a class ="reload-button " onclick ="reloadTable('#inactivefeatures'); "> Reload Bugs</ a > </ h4 >
336377 </ span >
337- < a href ="#top "> Back to top ⏶</ a >
338378 </ span >
339379 < p >
340380 All open enhancements that haven't been altered in two years.
@@ -347,7 +387,6 @@ <h4>Inactive Enhancements<span class="bug-count"></span><a class="reload-button"
347387 < span >
348388 < h4 > Wrong Milestone< span class ="bug-count "> </ span > < a class ="reload-button " onclick ="reloadTable('#oldmilestone'); "> Reload Bugs</ a > </ h4 >
349389 </ span >
350- < a href ="#top "> Back to top ⏶</ a >
351390 </ span >
352391 < p >
353392 All open bugs that are targetted for a milestone in the past: they
@@ -361,7 +400,6 @@ <h4>Wrong Milestone<span class="bug-count"></span><a class="reload-button" oncli
361400 < span >
362401 < h4 > Potential Newcomer< span class ="bug-count "> </ span > < a class ="reload-button " onclick ="reloadTable('#newcomer'); "> Reload Bugs</ a > </ h4 >
363402 </ span >
364- < a href ="#top "> Back to top ⏶</ a >
365403 </ span >
366404 < p >
367405 All open bugs which have been tagged as being potentially good for
@@ -375,7 +413,6 @@ <h4>Potential Newcomer<span class="bug-count"></span><a class="reload-button" on
375413 < span >
376414 < h4 > Needs Testing< span class ="bug-count "> </ span > < a class ="reload-button " onclick ="reloadTable('#retest'); "> Reload Bugs</ a > </ h4 >
377415 </ span >
378- < a href ="#top "> Back to top ⏶</ a >
379416 </ span >
380417 < p >
381418 All open bugs which have been tagged as needing to be retested.
@@ -491,9 +528,9 @@ <h4>Needs Testing<span class="bug-count"></span><a class="reload-button" onclick
491528 async function searchBugs ( selector , params ) {
492529 // Refresh a section
493530 const table = document . querySelector ( selector )
494- table . setAttribute ( 'aria-busy' , true )
495531 const container = document . querySelector ( selector ) . closest ( "section" )
496532 const reloadButton = container . querySelector ( '.reload-button' )
533+ reloadButton . classList . toggle ( 'spin' )
497534
498535 try {
499536 params . append ( "include_fields" , Array . from ( fields . keys ( ) ) . join ( ) ) ;
@@ -512,7 +549,7 @@ <h4>Needs Testing<span class="bug-count"></span><a class="reload-button" onclick
512549 console . error ( `Failed to fetch bugs for ${ selector } : ${ error } ` ) ;
513550 alert ( "Error fetching bugs. Check the console for details." ) ;
514551 }
515- table . setAttribute ( 'aria-busy' , false )
552+ reloadButton . classList . toggle ( 'spin' )
516553 }
517554
518555 async function bugsByWhiteboard ( table , keyword ) {
0 commit comments