-%]
[%
flag_imgs = {
- perl = '/img/camel.png',
+ dane => '/img/helmet.png',
+ doc => '/img/doc.png',
+ gnutls => '/img/gnutls_icon.gif',
+ ipv6 => '/img/6.png',
+ ldap => '/img/openldap_logo.jpg',
+ mysql => '/img/mysql_logo.png',
openssl => '/img/ssl_icon.gif',
- gnutls => '/img/gnutls_icon.gif',
- mysql => '/img/mysql_logo.png',
- pgsql => '/img/postgresql-icon-32.png',
- ldap => '/img/openldap_logo.jpg',
- doc => '/img/doc.png',
- test => '/img/hammer.jpeg',
+ perl = '/img/camel.png',
+ pgsql => '/img/postgresql-icon-32.png',
+ spf => '/img/spf.png',
+ #test => '/img/hammer.jpeg',
#python => '/img/python.png',
#debug => '/img/bug.png',
#pam => '/img/pam.png',
#'integer-datetimes' => '/img/days.png',
}
-%]
-[%- BLOCK img ; IF flag == 'depend' or flag == 'gnu-ld' ; ; ELSIF flag_imgs.$flag %]<img src="[% flag_imgs.$flag %]" title="[% flag %]" alt="[% flag %]" height="16" width="16" class="inline" align="bottom" /> [% ELSE %][%#
+[%
+ res_imgs = {
+ P = '/img/t_good.gif',
+ F => '/img/t_fail.gif',
+ '.' => '/img/t_notdone.gif',
+ }
+-%]
+[%- BLOCK img ; IF flag == 'depend' or flag == 'gnu-ld' ; ; ELSIF flag_imgs.$flag %]<img src=[% flag_imgs.$flag %] title="[% flag %]" alt="[% flag %]" height=16 width=16 class=inline align=bottom/> [% ELSE %][%#
flag ; ' '
%][% END ; END -%]
-[%- BLOCK sysnotes ; IF row.sys_notes %]<img src="/img/notes.png" height="16" width="16" title="[% row.sys_notes_ts.replace(' .*','') | html %]: [% row.sys_notes | html %]" />
+[%- BLOCK sysnotes ; IF row.sys_notes %]<img src=/img/notes.png height=16 width=16 title="[% row.sys_notes_ts.replace(' .*','') | html %]: [% row.sys_notes | html %]"/>
[%- ELSE %] [% END ; END -%]
[%- BLOCK cl %] class="[% SWITCH bgfor.replace('-.*','') -%]
[%- CASE 'OK' %]pass[% CASE 'ContribCheck' %]warn[% CASE [ 'Check' 'InstallCheck' ] %]warnx[% CASE %]fail[% END %]"
[%- END -%]
+[%# The IF-backstop is ugly and I'm not understanding why the res_img lookup does not for for '.' -%]
+[%- BLOCK colour ; IF res_imgs.$c.defined ; res_imgs.$c ; ELSE %]/img/t_notdone.gif [% END; END %]
+[%- BLOCK colourbar %]<img src=[% PROCESS colour %] title="[% st %]-[% st + w - 1 %]" height=16 width=[% w %] class=inline align=bottom/>[%- END -%]
[% WRAPPER 'page.tt'
title = 'Exim BuildFarm Status'
bodyclass = 'none'
</p>
<table><tr><th class="head" rowspan="2">Legend</th>
[% FOREACH flagset IN flag_imgs %]
-<td><img src="[% flagset.value %]" title="[% flagset.key %]" alt="[% flagset.key %]" height="16" width="16" class="inline" align="center"/> = [% flagset.key %]</td>
+<td><img src=[% flagset.value %] title="[% flagset.key %]" alt="[% flagset.key %]" height=16 width=16 class=inline align=center/> = [% flagset.key %]</td>
[% IF loop.count == 7 %]</tr><tr>[% END %]
[% END %]
</tr></table>
[% brch = "" %]
[% FOREACH row IN statrows %]
[% IF row.branch != brch ; brch = row.branch %]
-<tr><th class="head" colspan="5">Branch: [% brch %]</th></tr>
-<tr><th colspan="2">Alias</th><th>System</th><th>Status</th><th>Flags</th></tr>
+<tr><th class="head" colspan="6">Branch: [% brch %]</th></tr>
+<tr><th colspan="2">Alias</th><th>System</th><th>Status</th><th>Flags</th><th>Detail</th></tr>
[% END %]
<tr [% PROCESS cl bgfor=row.stage %]>
<td><a
- href="show_history.pl?nm=[% row.sysname %]&br=[% row.branch %]"
+ href="show_history.pl?nm=[% row.sysname %]&br=[% row.branch | uri %]"
title="History"
>[% row.sysname %]</a></td>
<td>[% PROCESS sysnotes %]</td>
[%- row.snapshot | uri %]">
[%- IF row.stage != 'OK' %]Details[% ELSE %]Config[% END -%]</a></td>
- <td class="flags">[% FOREACH flag IN row.build_flags.split().sort() ; PROCESS img ; END %]</td>
+ <td class="flags">[% FOREACH flag IN row.build_flags.split().unique().sort() ; PROCESS img ; END %]</td>
+ <td class="tests">[% FOREACH range IN row.log_text ;
+ r = range.split(' '); c = r.0; st = r.1; w = r.2; PROCESS colourbar; END %]</td>
</tr>
[% END %]
</table>