@@ -253,23 +253,43 @@ <h1>Comparing <span id="stat-header">instructions:u</span> between <span id="bef
253
253
< a v-if ="data.next " v-bind:href ="nextLink "> →</ a >
254
254
< a v-if ="data.a.pr " v-bind:href ="prLink(data.a.pr) "> #{{data.a.pr}}</ a >
255
255
< a v-if ="data.b.pr " v-bind:href ="prLink(data.b.pr) "> #{{data.b.pr}}</ a >
256
- < div v-for ="bench in benches ">
257
- < div >
258
- < div >
259
- {{ bench.name }} ({{bench.casename}})
260
- </ div >
261
- < a v-bind:href ="detailedQueryLink(data.a.commit, bench.name, bench.casename) ">
262
- {{ bench.datum_a }}
263
- </ a >
264
- < a v-bind:href ="detailedQueryLink(data.b.commit, bench.name, bench.casename) ">
265
- {{ bench.datum_b }}
266
- </ a >
267
- < a v-bind:class ="percentClass(bench.percent) "
268
- v-bind:href ="percentLink(data.b.commit, data.a.commit, bench.name, bench.casename) ">
269
- {{ bench.percent }} %
270
- </ a >
271
- </ div >
272
- </ div >
256
+ < table class ="compare " style ="font-size: medium !important; ">
257
+ < tbody >
258
+ < template v-for ="bench in benches ">
259
+ < tr data-field-start ="true ">
260
+ < th style ="width: 19em; ">
261
+ < details class ="toggle-table " v-on:toggle ="benchGroupToggle ">
262
+ < summary > {{ bench.name }}</ summary >
263
+ </ details >
264
+ </ th >
265
+ < td > avg: < span > ??</ span > </ td >
266
+ < td > min: < span > ??</ span > </ td >
267
+ < td > max: < span > ??</ span > </ td >
268
+ </ tr >
269
+ < template v-for ="run in bench.fields ">
270
+ < tr >
271
+ < td > {{ run.casename }}</ td >
272
+ < td >
273
+ < a v-bind:href ="detailedQueryLink(data.a.commit, bench.name, run.casename) ">
274
+ {{ run.datum_a }}
275
+ </ a >
276
+ </ td >
277
+ < td >
278
+ < a v-bind:href ="detailedQueryLink(data.b.commit, bench.name, run.casename) ">
279
+ {{ run.datum_b }}
280
+ </ a >
281
+ </ td >
282
+ < td >
283
+ < a v-bind:class ="percentClass(run.percent) "
284
+ v-bind:href ="percentLink(data.b.commit, data.a.commit, bench.name, run.casename) ">
285
+ {{ run.percent }}%
286
+ </ a >
287
+ </ td >
288
+ </ tr >
289
+ </ template >
290
+ </ template >
291
+ </ tbody >
292
+ </ table >
273
293
</ div >
274
294
</ div >
275
295
< br >
@@ -365,7 +385,6 @@ <h1>Comparing <span id="stat-header">instructions:u</span> between <span id="bef
365
385
}
366
386
if ( shouldShowBuild ( key ) ) {
367
387
fields . push ( {
368
- name,
369
388
casename : key ,
370
389
datum_a,
371
390
datum_b,
@@ -389,7 +408,7 @@ <h1>Comparing <span id="stat-header">instructions:u</span> between <span id="bef
389
408
// ...bootstrap_names
390
409
// .map(name => name)
391
410
// .map(name => ({ name, is_bootstrap: true, fields: to_fields_bootstrap(name) })),
392
- ...test_names . map ( name => to_fields ( name ) ) . flat ( )
411
+ ...test_names . map ( name => { return { name , fields : to_fields ( name ) } } )
393
412
] ;
394
413
return fields ;
395
414
}
@@ -420,10 +439,37 @@ <h1>Comparing <span id="stat-header">instructions:u</span> between <span id="bef
420
439
} ,
421
440
percentLink ( commit , baseCommit , bench , run ) {
422
441
return `/detailed-query.html?commit=${ commit } &base_commit=${ baseCommit } &benchmark=${ bench } &run_name=${ run } ` ;
442
+ } ,
443
+ benchGroupToggle ( e ) {
444
+ const element = e . target ;
445
+ toggleBenchGroup ( element )
423
446
}
424
447
448
+ } ,
449
+ watch : {
450
+ data : function ( newVal , oldVal ) {
451
+ if ( newVal && ! oldVal ) {
452
+ this . $nextTick ( ( ) => {
453
+ for ( let element of document . querySelectorAll ( ".toggle-table" ) ) {
454
+ toggleBenchGroup ( element ) ;
455
+ }
456
+ } ) ;
457
+ }
458
+ }
425
459
}
426
460
} )
461
+ function toggleBenchGroup ( element ) {
462
+ let next = element . parentElement . parentElement . nextElementSibling ;
463
+ let inBody = [ ]
464
+ while ( next && next . getAttribute ( "data-field-start" ) !== "true" ) {
465
+ if ( element . open ) {
466
+ next . style . display = "" ;
467
+ } else {
468
+ next . style . display = "none" ;
469
+ }
470
+ next = next . nextElementSibling ;
471
+ }
472
+ }
427
473
function toggleFilters ( id , toggle ) {
428
474
let styles = document . getElementById ( id ) . style ;
429
475
let indicator = document . getElementById ( toggle ) ;
0 commit comments