@@ -179,7 +179,7 @@ window.ProbeRender = (function () {
179179 lookup [ sv . name ] = m ;
180180 } ) ;
181181 var testIds = servers [ 0 ] . results . map ( function ( r ) { return r . id ; } ) ;
182- return { names : names , lookup : lookup , testIds : testIds } ;
182+ return { names : names , lookup : lookup , testIds : testIds , servers : servers } ;
183183 }
184184
185185 function renderSummary ( targetId , data ) {
@@ -192,8 +192,8 @@ window.ProbeRender = (function () {
192192 }
193193 var sorted = servers . slice ( ) . sort ( function ( a , b ) {
194194 var sa = a . summary , sb = b . summary ;
195- var pa = sa . passed / ( sa . total || 1 ) ;
196- var pb = sb . passed / ( sb . total || 1 ) ;
195+ var pa = ( sa . passed + ( sa . warnings || 0 ) ) / ( sa . total || 1 ) ;
196+ var pb = ( sb . passed + ( sb . warnings || 0 ) ) / ( sb . total || 1 ) ;
197197 return pb - pa || a . name . localeCompare ( b . name ) ;
198198 } ) ;
199199
@@ -210,7 +210,9 @@ window.ProbeRender = (function () {
210210
211211 html += '<div style="display:flex;align-items:center;gap:10px;">' ;
212212 html += '<div style="min-width:24px;text-align:right;font-size:13px;font-weight:600;color:#656d76;">' + rank + '</div>' ;
213- html += '<div style="min-width:110px;font-size:13px;font-weight:600;white-space:nowrap;">' + sv . name + '</div>' ;
213+ var nameLabel = sv . name ;
214+ if ( sv . language ) nameLabel += ' <span style="font-weight:400;color:#656d76;font-size:11px;">(' + sv . language + ')</span>' ;
215+ html += '<div style="min-width:150px;font-size:13px;font-weight:600;white-space:nowrap;">' + nameLabel + '</div>' ;
214216 var trackBg = document . documentElement . classList . contains ( 'dark' ) ? '#2a2f38' : '#f0f0f0' ;
215217 html += '<div style="flex:1;height:22px;background:' + trackBg + ';border-radius:3px;overflow:hidden;display:flex;">' ;
216218 html += '<div style="height:100%;width:' + passPct + '%;background:' + PASS_BG + ';transition:width 0.3s;"></div>' ;
@@ -221,14 +223,12 @@ window.ProbeRender = (function () {
221223 html += '<div style="height:100%;width:' + failPct + '%;background:' + FAIL_BG + ';transition:width 0.3s;"></div>' ;
222224 }
223225 html += '</div>' ;
224- // Score: pass / total
226+ // Score: (pass+warn) / total
227+ var combined = s . passed + warnings ;
225228 html += '<div style="min-width:130px;text-align:right;font-size:13px;">' ;
226- html += '<span style="font-weight:700;color:' + PASS_BG + ';">' + s . passed + '</span>' ;
227- if ( warnings > 0 ) {
228- html += ' <span style="color:' + WARN_BG + ';">' + warnings + '</span>' ;
229- }
229+ html += '<span style="font-weight:700;color:' + PASS_BG + ';">' + combined + '</span>' ;
230230 if ( failed > 0 ) {
231- html += ' <span style="color:' + FAIL_BG + ';">' + failed + '</span>' ;
231+ html += ' <span style="color:' + FAIL_BG + ';">' + failed + ' fail </span>' ;
232232 }
233233 html += ' <span style="color:#656d76;font-size:12px;">/ ' + total + '</span>' ;
234234 html += '</div>' ;
@@ -310,9 +310,13 @@ window.ProbeRender = (function () {
310310 t += '</tr>' ;
311311
312312 // Server rows
313+ var serverLangs = { } ;
314+ if ( ctx . servers ) ctx . servers . forEach ( function ( sv ) { serverLangs [ sv . name ] = sv . language ; } ) ;
313315 names . forEach ( function ( n ) {
314316 t += '<tr class="probe-server-row">' ;
315- t += '<td style="padding:4px 8px;font-weight:600;font-size:12px;">' + n + '</td>' ;
317+ var lang = serverLangs [ n ] ;
318+ var langSuffix = lang ? ' <span style="font-weight:400;color:#656d76;font-size:10px;">(' + lang + ')</span>' : '' ;
319+ t += '<td style="padding:4px 8px;font-weight:600;font-size:12px;white-space:nowrap;">' + n + langSuffix + '</td>' ;
316320 orderedTests . forEach ( function ( tid ) {
317321 var r = lookup [ n ] && lookup [ n ] [ tid ] ;
318322 var isUnscored = lookup [ names [ 0 ] ] [ tid ] . scored === false ;
0 commit comments