@@ -332,63 +332,79 @@ export class EPNPlusSpansListViewItemsCreator
332332 public async createListViewItem (
333333 codeObjectsInsight : EPNPlusSpansInsight
334334 ) : Promise < IListViewItem > {
335- const spans = codeObjectsInsight . spans . filter ( ( x ) => x . internalSpan ) ;
336-
337- const hints : CodeObjectLocationHints [ ] =
338- this . _spanLinkResolver . codeHintsFromSpans (
339- spans . map ( ( x ) => x . internalSpan )
340- ) ;
341-
342- const spansLocations =
343- await this . _spanLinkResolver . searchForSpansByHints ( hints ) ;
335+ const items = [ ] ;
336+ for ( const span of codeObjectsInsight . spans ) {
337+ let result ;
338+ if ( span . internalSpan ) {
339+ const hints : CodeObjectLocationHints [ ] =
340+ this . _spanLinkResolver . codeHintsFromSpans ( [
341+ span . internalSpan
342+ ] ) ;
343+
344+ const spansLocations =
345+ await this . _spanLinkResolver . searchForSpansByHints ( hints ) ;
346+
347+ result = spansLocations [ 0 ] ;
348+ }
344349
345- const items : string [ ] = [ ] ;
350+ let fractionSt = "" ;
351+ const fraction = span . fraction ;
352+ if ( fraction < 0.01 ) {
353+ fractionSt = "minimal" ;
354+ } else {
355+ fractionSt = `${ fraction . toPrecision ( 1 ) } of request` ;
356+ }
346357
347- for ( let i = 0 ; i < spansLocations . length ; i ++ ) {
348- const result = spansLocations [ i ] ;
349- const slowSpan = spans [ i ] ;
358+ const traceHtml = renderTraceLink (
359+ span . traceId ,
360+ codeObjectsInsight . spanInfo ?. name ||
361+ codeObjectsInsight . endpointSpan
362+ ) ;
350363
351364 items . push ( `
352- <div class="endpoint-bottleneck-insight" >
353- <div class="span-name flex-row ${
354- result ? "link" : ""
355- } " data-code-uri="${ result ?. documentUri } " data-code-line="${
356- result ?. range . end . line ! + 1
357- } ">
358- <span class="left-ellipsis">${
359- slowSpan . internalSpan . displayName
360- } </span>
365+ <div class="item vertical-spacer">
366+ <div class="endpoint-bottleneck-insight">
367+ <div class="span-name flex-row ${
368+ result ? "link" : ""
369+ } " data-code-uri="${
370+ result ?. documentUri
371+ } " data-code-line="${ result ?. range . end . line ! + 1 } ">
372+ <span class="left-ellipsis">${
373+ span . internalSpan
374+ ? span . internalSpan . displayName
375+ : span . clientSpan . displayName
376+ } </span>
377+ </div>
361378 </div>
362- </div>` ) ;
379+ <div style="margin-top:0.5em" class="flex-row">
380+ <span class="error-property flex-stretch">
381+ <span class="label">Impact</span>
382+ <span>${ fractionSt } </span>
383+ </span>
384+ <span class="error-property flex-stretch">
385+ <span class="label">Repeats</span>
386+ <span>${ span . occurrences } </span>
387+ </span>
388+ <span class="error-property flex-stretch">
389+ <span class="label">Duration</span>
390+ <span>${ span . duration . value } ${
391+ span . duration . unit
392+ } </span>
393+ </span>
394+ ${ traceHtml }
395+ </div>
396+ </div>
397+ ` ) ;
363398 }
364399
365- const traceHtml = renderTraceLink (
366- codeObjectsInsight . spans . firstOrDefault ( ) ?. traceId ,
367- codeObjectsInsight . spanInfo ?. name || codeObjectsInsight . endpointSpan
368- ) ;
369-
370- let fractionSt = "" ;
371- const fraction = codeObjectsInsight . spans . firstOrDefault ( ) ?. fraction ;
372- if ( fraction < 0.01 ) {
373- fractionSt = "minimal" ;
374- } else {
375- fractionSt = `${ fraction . toPrecision ( 1 ) } of request` ;
376- }
377- const statsHtml = `
378- <div style="margin-top:0.5em" class="flex-row">
379-
380- <span class="error-property flex-stretch">
381- <span class="label">Impact</span>
382- <span>${ fractionSt } </span>
383- </span>
384- <span class="error-property flex-stretch">
385- <span class="label">Duration</span>
386- <span>${
387- codeObjectsInsight . spans . firstOrDefault ( ) . duration . value
388- } ${
389- codeObjectsInsight . spans . firstOrDefault ( ) . duration . unit
390- } </span>
391- </span>
400+ const bodyHtml = /*html*/ `
401+ <div class="pagination-list" data-current-page="1" data-records-per-page="1">
402+ ${ items . join ( "" ) }
403+ <div class="pagination-nav">
404+ <a class="prev">Prev</a>
405+ <a class="next">Next</a>
406+ <span class="page"></span>
407+ </div>
392408 </div>
393409 ` ;
394410
@@ -401,11 +417,10 @@ export class EPNPlusSpansListViewItemsCreator
401417 } ,
402418 description : "Check the following locations:" ,
403419 icon : this . _viewUris . image ( "sql.png" ) ,
404- body : ` <div>
405- ${ items . join ( "" ) }
420+ body : `<div>
421+ ${ bodyHtml }
406422 </div>
407- ${ statsHtml } ` ,
408- buttons : [ traceHtml ] ,
423+ ` ,
409424 insight : codeObjectsInsight
410425 } ,
411426 this . _viewUris
0 commit comments