[% WRAPPER layout.tt title="Evaluation $eval.id of jobset $project.name:$jobset.name " %]
[% PROCESS common.tt %]

<div class="btn-group pull-right">
  <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#"><i class="icon-white icon-eye-open"></i> Compare to...</a>
  <ul class="dropdown-menu">
    <li><a href="?">Preceding evaluation in this jobset</a></li>
    <li class="divider"></li>
    <li><a href="?compare=-[% 24 * 60 * 60 %]">This jobset <strong>one day</strong> earlier</a></li>
    <li><a href="?compare=-[% 7 * 24 * 60 * 60 %]">This jobset <strong>one week</strong> earlier</a></li>
    <li><a href="?compare=-[% 31 * 24 * 60 * 60 %]">This jobset <strong>one month</strong> earlier</a></li>
    [% IF project.jobsets_rs.count > 1 %]
      <li class="divider"></li>
      [% FOREACH j IN project.jobsets.sort('name'); IF j.name != jobset.name %]
        <li><a href="?compare=[% j.name %]">Jobset <tt>[% project.name %]:[% j.name %]</tt></a></li>
      [% END; END %]
    [% END %]
  </ul>
</div>

<p>This evaluation was performed [% IF eval.flake %]from the flake
<tt>[%HTML.escape(eval.flake)%]</tt>[%END%] on [% INCLUDE renderDateTime
timestamp=eval.timestamp %]. Fetching the dependencies took [%
eval.checkouttime %]s and evaluation took [% eval.evaltime %]s.</p>

[% IF otherEval %]
<p>Comparisons are relative to [% INCLUDE renderFullJobsetName
project=otherEval.jobset.project.name jobset=otherEval.jobset.name %] evaluation <a href="[%
c.uri_for(c.controller('JobsetEval').action_for('view'),
[otherEval.id]) %]">[% otherEval.id %]</a>.</p>
[% ELSE %]
<div class="alert">Couldn't find an evaluation to compare to.</div>
[% END %]

<form class="form-search">
  <input name="filter" type="text" class="input-large search-query" placeholder="Search jobs by name..." [% HTML.attributes(value => filter) %]/>
  <input name="compare" type="hidden" [% HTML.attributes(value => otherEval.id) %]/>
  <input name="full" type="hidden" [% HTML.attributes(value => full) %]/>
</form>

<ul class="nav nav-tabs">
  [% IF c.user_exists %]
    <li class="dropdown">
      <a class="dropdown-toggle" data-toggle="dropdown" href="#">
        Actions
        <b class="caret"></b>
      </a>
      <ul class="dropdown-menu">
        <li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('release'), [eval.id]) %]">Create a release from this evaluation</a></li>
        <li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('create_jobset'), [eval.id]) %]">Create a jobset from this evaluation</a></li>
        [% IF unfinished.size > 0 %]
          <li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('cancel'), [eval.id]) %]">Cancel all scheduled builds</a></li>
        [% END %]
        [% IF aborted.size > 0 || stillFail.size > 0 || nowFail.size > 0 %]
          <li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('restart_failed'), [eval.id]) %]">Restart all failed builds</a></li>
        [% END %]
        [% IF aborted.size > 0 %]
          <li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('restart_aborted'), [eval.id]) %]">Restart all aborted builds</a></li>
        [% END %]
        [% IF unfinished.size > 0 %]
          <li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('bump'), [eval.id]) %]">Bump builds to front of queue</a></li>
        [% END %]
      </ul>
    </li>
  [% END %]

  [% IF aborted.size > 0 %]
    <li><a href="#tabs-aborted" data-toggle="tab"><span class="text-warning">Aborted jobs ([% aborted.size %])</span></a></li>
  [% END %]
  [% IF nowFail.size > 0 %]
    <li><a href="#tabs-now-fail" data-toggle="tab"><span class="text-warning">Newly failing jobs ([% nowFail.size %])</span></a></li>
  [% END %]
  [% IF nowSucceed.size > 0 %]
    <li><a href="#tabs-now-succeed" data-toggle="tab"><span class="text-success">Newly succeeding jobs ([% nowSucceed.size %])</span></a></li>
  [% END %]
  [% IF new.size > 0 %]
    <li><a href="#tabs-new" data-toggle="tab">New jobs ([% new.size %])</a></li>
  [% END %]
  [% IF removed.size > 0 %]
    <li><a href="#tabs-removed" data-toggle="tab">Removed jobs ([% removed.size %])</a></li>
  [% END %]
  [% IF stillFail.size > 0 %]
    <li><a href="#tabs-still-fail" data-toggle="tab">Still failing jobs ([% stillFail.size %])</a></li>
  [% END %]
  [% IF stillSucceed.size > 0 %]
    <li><a href="#tabs-still-succeed" data-toggle="tab">Still succeeding jobs ([% stillSucceed.size %])</a></li>
  [% END %]
  [% IF unfinished.size > 0 %]
    <li><a href="#tabs-unfinished" data-toggle="tab">Queued jobs ([% unfinished.size %])</a></li>
  [% END %]
  <li><a href="#tabs-inputs" data-toggle="tab">Inputs</a></li>
</ul>

[% BLOCK renderSome %]
  [% INCLUDE renderBuildListHeader unsortable=1 %]
  [% size = builds.size; max = full ? size : 250; %]
  [% INCLUDE renderBuildListBody builds=builds.slice(0, (size > max ? max : size) - 1)
       hideProjectName=1 hideJobsetName=1 busy=0 %]
  [% IF size > max; params = c.req.params; params.full = 1 %]
  <tr><td class="centered" colspan="6"><a href="[% c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id], params) %][% tabname %]"><em>([% size - max %] more builds omitted)</em></a></td></tr>
  [% END %]
  [% INCLUDE renderBuildListFooter %]
[% END %]

<div class="tab-content">

  <div id="tabs-aborted" class="tab-pane">
    [% INCLUDE renderSome builds=aborted tabname="#tabs-aborted" %]
  </div>

  <div id="tabs-now-fail" class="tab-pane">
    [% INCLUDE renderSome builds=nowFail tabname="#tabs-now-fail" %]
  </div>

  <div id="tabs-now-succeed" class="tab-pane">
    [% INCLUDE renderSome builds=nowSucceed tabname="#tabs-now-succeed" %]
  </div>

  <div id="tabs-new" class="tab-pane">
    [% INCLUDE renderSome builds=new tabname="#tabs-new" %]
  </div>

  <div id="tabs-removed" class="tab-pane">
    <table class="table table-striped table-condensed clickable-rows">
      <thead>
        <tr><th>Job</th><th>System</th></tr>
      </thead>
      <tbody>
        [% size = removed.size; max = full ? size : 250; %]
        [% FOREACH j IN removed.slice(0,(size > max ? max : size) - 1) %]
          <tr>
            <td>[% INCLUDE renderJobName project=project.name jobset=jobset.name job=j.job %]</td>
            <td><tt>[% j.system %]</tt></td>
          </tr>
        [% END %]
        [% IF size > max; params = c.req.params; params.full = 1 %]
          <tr><td class="centered" colspan="2"><a href="[% c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id], params) %]#tabs-removed"><em>([% size - max %] more jobs omitted)</em></a></td></tr>
        [% END %]
      </tbody>
    </table>
  </div>

  <div id="tabs-still-fail" class="tab-pane">
    [% INCLUDE renderSome builds=stillFail tabname="#tabs-still-fail" %]
  </div>

  <div id="tabs-still-succeed" class="tab-pane">
    [% INCLUDE renderSome builds=stillSucceed tabname="#tabs-still-succeed" %]
  </div>

  <div id="tabs-unfinished" class="tab-pane">
    [% INCLUDE renderSome builds=unfinished tabname="#tabs-unfinished" %]
  </div>

  <div id="tabs-inputs" class="tab-pane">
    [% INCLUDE renderInputs inputs=eval.jobsetevalinputs %]

    [% IF otherEval %]
      <h3>Changes</h3>
      [% INCLUDE renderInputDiff inputs2=eval.jobsetevalinputs inputs1=otherEval.jobsetevalinputs %]
    [% END %]
  </div>

</div>

[% END %]
