[% WRAPPER layout.tt
    title=makeNameTextForJob(jobset, job)
    titleHTML=makeNameLinksForJob(jobset, job)
    starUri=c.uri_for(c.controller('Job').action_for('star'), c.req.captures)
%]
[% PROCESS common.tt %]
[% hideProjectName=1 hideJobsetName=1 hideJobName=1 %]

[% INCLUDE includeFlot %]

[% IF !jobExists(jobset, job) %]
<div class="alert alert-warning">This job is not a member of the
<a [% HTML.attributes(href => c.uri_for('/jobset' project.name jobset.name
'evals')) %]>latest evaluation</a> of its jobset. This means it was
removed or had an evaluation error.</div>
[% END %]

<ul class="nav nav-tabs">
  <li class="nav-item"><a class="nav-link active" href="#tabs-status" data-toggle="tab">Status</a></li>
  [% IF constituentJobs.size > 0 %]
    <li class="nav-item"><a class="nav-link" href="#tabs-constituents" data-toggle="tab">Constituents</a></li>
  [% END %]
  <li class="nav-item"><a class="nav-link" href="#tabs-charts" data-toggle="tab">Charts</a></li>
  <li class="nav-item"><a class="nav-link" href="#tabs-links" data-toggle="tab">Links</a></li>
</ul>

<div id="generic-tabs" class="tab-content">

  <div id="tabs-status" class="tab-pane active">
    [% IF lastBuilds.size != 0 %]
      <h3>Latest builds</h3>
      [% INCLUDE renderBuildList builds=lastBuilds
          linkToAll=c.uri_for('/job' project.name jobset.name job 'all') %]
    [% END %]
    [% IF queuedBuilds.size != 0 %]
      <h3>Queued builds</h3>
      [% INCLUDE renderBuildList builds=queuedBuilds showSchedulingInfo=1 hideResultInfo=1 %]
    [% END %]
  </div>

  [% IF constituentJobs.size > 0 %]

    <div id="tabs-constituents" class="tab-pane">

      <div class="well well-small">This is an <em>aggregate job</em>:
      its success or failure is determined entirely by the result of
      building its <em>constituent jobs</em>. The table below shows
      the status of each constituent job for the [%
      HTML.escape(aggregates.keys.size) %] most recent builds of the
      aggregate.</div>

      [% aggs = aggregates.keys.nsort.reverse %]
      <table class="table table-striped table-condensed table-header-rotated">
        <thead>
          <tr>
            <th>Job</th>
            [% FOREACH agg IN aggs %]
              <th class="rotate-45">
                [% agg_ = aggregates.$agg %]
                <div><span class="[% agg_.build.finished == 0 ? "text-info" : (agg_.build.buildstatus == 0 ? "text-success" : "text-warning") %] override-link">
                  <a [% HTML.attributes(href => c.uri_for('/build' agg)) %]>[% agg %]</a>
                </span></div></th>
            [% END %]
          </tr>
        </thead>
        <tbody>
          [% FOREACH j IN constituentJobs %]
            <tr>
              <th style="width: 1em;">[% INCLUDE renderJobName project=project.name jobset=jobset.name job=j %]</th>
              [% FOREACH agg IN aggs %]
                <td>
                  [% r = aggregates.$agg.constituents.$j; IF r.id %]
                    <a [% HTML.attributes(href => c.uri_for('/build' r.id)) %]>
                      [% INCLUDE renderBuildStatusIcon size=16 build=r %]
                    </a>
                  [% END %]
                </td>
              [% END %]
            </tr>
          [% END %]
        </tbody>
      </table>

    </div>

  [% END %]

  [% INCLUDE makeLazyTab tabName="tabs-charts" uri=c.uri_for('/job' project.name jobset.name job 'metric-tab') %]

  <div id="tabs-links" class="tab-pane">
    <ul>
      <li><a [% HTML.attributes(href => c.uri_for('/job' project.name jobset.name job 'latest')) %]>Latest successful build</a></li>
      <li><a [% HTML.attributes(href => c.uri_for('/job' project.name jobset.name job 'latest-finished')) %]>Latest successful build from a finished evaluation</a></li>
    </ul>
  </div>

</div>

[% END %]
