<html>
  <head>
    <title>List of all failing files</title>
    <script type="text/javascript" src="https://storage.cloud.google.com/chromium-skia-gm/telemetry/hosted-files/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" src="https://storage.cloud.google.com/chromium-skia-gm/telemetry/hosted-files/togglecols.js"></script>
  </head>

  <body onload="resetToggleArrows([0, 1, 2])">
    <h2>List of all failing files</h2>
    <a href='{{ absolute_url }}index.html'>Back</a>
    <br/><br/>
    Click on a filename to view its images.<br/>
    Click on the linked column headers to sort rows.<br/><br/>

    <table border="1" cellpadding="5" id="slave_results">
      <thead>
      <tr bgcolor="#CCCCFF">
        <th><a href="#" onclick="sortRows(0, false, [0, 1, 2, 3]); return false;">Failed Files</a><img src="" id="toggle-arrows-0"></th>
        <th><a href="#" onclick="sortRows(1, false, [0, 1, 2, 3]); return false;">Perceptual diff</a><img src="" id="toggle-arrows-1"></th>
        <th><a href="#" onclick="sortRows(2, true, [0, 1, 2, 3]); return false;">Differing pixels in white</a><img src="" id="toggle-arrows-2"></th>
        <th><a href="#" onclick="sortRows(3, true, [0, 1, 2, 3]); return false;">Difference per pixel</a><img src="" id="toggle-arrows-3"></th>
      </tr>
      </thead>
      <tbody>
      {% for slave_name, slave_info in slave_name_to_info_items %}
        {% for file_info in slave_info.failed_files %}
        <tr>
          <td align="center">
            <a id='compare_value' href='{{ absolute_url }}{{ file_info.file_name }}.html'>{{ file_info.file_name }}</a>
          </td>
          <td>
            <a id='compare_value'>{{ file_info.perceptual_diff }}</a>% ({{ file_info.perceptual_diff }})
          </td>
          <td>
            <a id='compare_value'>{{ file_info.percent_pixels_differing }}</a>% ({{ file_info.num_pixels_differing }})
          </td>
          <td>
            <a id='compare_value'>{{ file_info.perceptual_diff }}</a>% {{ file_info.max_diff_per_channel }}
          </td>
        </tr>
        {% endfor %}
      {% endfor %}
      </tbody>
    </table>
  </body>
</html>
