2013-02-22 11:00:32 +00:00
|
|
|
[% WRAPPER layout.tt title="Job $project.name:$jobset.name:$job.name" %]
|
2009-04-02 16:15:57 +00:00
|
|
|
[% PROCESS common.tt %]
|
2012-04-02 11:12:39 +00:00
|
|
|
[% hideProjectName=1 hideJobsetName=1 hideJobName=1 %]
|
2009-04-02 16:15:57 +00:00
|
|
|
|
2013-02-22 10:55:06 +00:00
|
|
|
<ul class="nav nav-tabs">
|
|
|
|
<li class="active"><a href="#tabs-status" data-toggle="tab">Status</a></li>
|
2013-08-26 16:58:04 +00:00
|
|
|
[% IF constituentJobs.size > 0 %]
|
|
|
|
<li><a href="#tabs-constituents" data-toggle="tab">Constituents</a></li>
|
|
|
|
[% END %]
|
2013-02-22 12:00:40 +00:00
|
|
|
<li><a href="#tabs-links" data-toggle="tab">Links</a></li>
|
2013-02-22 10:55:06 +00:00
|
|
|
</ul>
|
|
|
|
|
2012-04-12 18:12:07 +00:00
|
|
|
<div id="generic-tabs" class="tab-content">
|
2013-01-22 13:41:02 +00:00
|
|
|
|
2013-02-22 10:55:06 +00:00
|
|
|
<div id="tabs-status" class="tab-pane active">
|
2013-02-22 12:00:40 +00:00
|
|
|
[% IF lastBuilds.size != 0 %]
|
|
|
|
<h3>Lastest builds</h3>
|
|
|
|
[% INCLUDE renderBuildList builds=lastBuilds showStatusChange=0
|
|
|
|
linkToAll=c.uri_for('/job' project.name jobset.name job.name 'all') %]
|
|
|
|
[% END %]
|
2013-02-22 11:51:00 +00:00
|
|
|
[% IF queuedBuilds.size != 0 %]
|
|
|
|
<h3>Queued builds</h3>
|
|
|
|
[% INCLUDE renderBuildList builds=queuedBuilds showSchedulingInfo=1 hideResultInfo=1 %]
|
2013-02-22 10:55:06 +00:00
|
|
|
[% END %]
|
|
|
|
</div>
|
|
|
|
|
2013-08-26 16:58:04 +00:00
|
|
|
[% IF constituentJobs.size > 0 %]
|
|
|
|
|
|
|
|
<div id="tabs-constituents" class="tab-pane">
|
|
|
|
|
|
|
|
<table class="table table-striped table-condensed">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th>#</th>
|
|
|
|
[% FOREACH j IN constituentJobs %]
|
|
|
|
<th>[% HTML.escape(j) %]</th>
|
|
|
|
[% END %]
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
[% FOREACH agg IN aggregates.keys.nsort.reverse %]
|
|
|
|
<tr>
|
|
|
|
<td><a class="row-link" href="[% c.uri_for('/build' agg) %]">[% agg %]</a></td>
|
|
|
|
[% FOREACH j IN constituentJobs %]
|
|
|
|
<td>
|
|
|
|
[% r = aggregates.$agg.$j; IF r.id %]
|
|
|
|
<a href="[% c.uri_for('/build' r.id) %]">
|
|
|
|
[% INCLUDE renderBuildStatusIcon size=16 build=r %]
|
|
|
|
</a>
|
|
|
|
[% END %]
|
|
|
|
</td>
|
|
|
|
[% END %]
|
|
|
|
</tr>
|
|
|
|
[% END %]
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
<hr/>
|
|
|
|
|
|
|
|
<table class="table table-striped table-condensed">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th>#</th>
|
|
|
|
[% FOREACH j IN constituentJobs %]
|
|
|
|
<th>[% HTML.escape(j) %]</th>
|
|
|
|
[% END %]
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
[% FOREACH agg IN aggregates.keys.nsort.reverse %]
|
|
|
|
<tr>
|
|
|
|
<td><a class="row-link" href="[% c.uri_for('/build' agg) %]">[% agg %]</a></td>
|
|
|
|
[% FOREACH j IN constituentJobs %]
|
|
|
|
<td>
|
|
|
|
[% r = aggregates.$agg.$j; IF r.id %]
|
|
|
|
<a href="[% c.uri_for('/build' r.id) %]">
|
|
|
|
[% INCLUDE renderBuildStatusIcon size=16 build=r %]
|
|
|
|
</a>
|
|
|
|
[% END %]
|
|
|
|
</td>
|
|
|
|
[% END %]
|
|
|
|
</tr>
|
|
|
|
[% END %]
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
[% END %]
|
|
|
|
|
2013-02-22 12:00:40 +00:00
|
|
|
<div id="tabs-links" class="tab-pane">
|
2013-02-22 10:55:06 +00:00
|
|
|
<ul>
|
2013-02-22 11:00:32 +00:00
|
|
|
<li><a href="[% c.uri_for('/job' project.name jobset.name job.name 'latest') %]">Latest successful build</a></li>
|
2013-08-12 20:17:04 +00:00
|
|
|
<li><a href="[% c.uri_for('/job' project.name jobset.name job.name 'latest-finished') %]">Latest successful build from a finished evaluation</a></li>
|
2013-02-22 10:55:06 +00:00
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
|
2010-02-05 14:48:22 +00:00
|
|
|
</div>
|
2009-04-02 16:15:57 +00:00
|
|
|
|
|
|
|
[% END %]
|