[% WRAPPER layout.tt title="Errors" %]
[% PROCESS common.tt %]

<h1>Errors</h1>

<p>This page provides a quick way to see how FUBARed your packages
are.  It shows job expressions that don’t evaluate properly and jobs
that don’t build.</p>


[% haveErrors = 0 %]


[% IF brokenJobsets && brokenJobsets.size > 0; haveErrors = 1 %]

<h2>Evaluation errors in jobsets</h2>

<table class="buildList tablesorter">
  <thead>
    <tr>
      <th>Name</th>
      <th>Error</th>
    </tr>
  </thead>
  <tdata>
    [% FOREACH j IN brokenJobsets %]
      <tr>
        <td>[% INCLUDE renderFullJobsetName project=j.project.name jobset=j.name %]</td>
        <td>
          <pre class="multiLineMsg error">[% HTML.escape(j.errormsg) %]</pre>
        </td>
      </tr>
    [% END %]
  </tdata>
</table>

[% END %]


[% IF brokenJobs && brokenJobs.size > 0; haveErrors = 1 %]

<h2>Evaluation errors in jobs</h2>

<table class="buildList tablesorter">
  <thead>
    <tr>
      <th>Name</th>
      <th>Error</th>
    </tr>
  </thead>
  <tdata>
    [% FOREACH j IN brokenJobs %]
      <tr>
        <td>[% INCLUDE renderFullJobName project=j.project.name jobset=j.jobset.name job=j.name %]</td>
        <td>
          <pre class="multiLineMsg error">[% HTML.escape(j.errormsg) %]</pre>
        </td>
      </tr>
    [% END %]
  </tdata>
</table>

[% END %]


[% IF brokenBuilds && brokenBuilds.size > 0; haveErrors = 1 %]

<h2>Broken builds</h2>

[% INCLUDE renderBuildList builds=brokenBuilds showStatusChange=1 %]

[% END %]


[% IF !haveErrors %]

<p><strong>There are currently no problems.</strong></p>

[% END %]


[% END %]