aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/rebaseline_server/static/view.html
blob: 5913e5c2caa6f5ded4b5788d9c3199670839270d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<!DOCTYPE html>

<html ng-app="Loader">

<head>
  <title>Current GM Results</title>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js"></script>
  <script src="loader.js"></script>
</head>

<body>
  <div ng-controller="Loader.Controller">

  <!-- TODO(epoger): Add a warning banner if the server is running in
  --export mode
  -->

  <!-- TODO(epoger): Add some indication of how old the
  expected/actual data is -->

 Settings:
  <ul>
    <!-- TODO(epoger): Now that we get multiple result types in a single
    fetch, modify the UI: add a column showing resultType, and allow
    the user to sort/filter on that column just like all the
    others. -->
    <li>show results of type
      <select ng-model="showResultsOfType"
              ng-init="showResultsOfType='failed'">
        <option ng-repeat="(resultType, count) in categories['resultType']"
                value="{{resultType}}">
          {{resultType}} ({{count}})
        </option>
      </select>
      <!--
        TODO(epoger): See results.py: for now, I have disabled
        returning succeeded tests as part of the JSON, because it
        makes the returned JSON too big (and slows down the client).

        Also, we should use some sort of lazy-loading technique
        (e.g. http://www.appelsiini.net/projects/lazyload ), so that
        the images are only loaded as they become viewable...
        that will help with long lists like resultType='no-comparison'.
      -->
      <br>
      TODO(epoger): 'no-comparison' will probably take forever;
      see HTML source for details
      <br>
      TODO(epoger): 'succeeded' will not show any results;
      see HTML source for details
    </li>
    <li>image size
      <input type="text" ng-model="imageSizePending"
             ng-init="imageSizePending=100; imageSize=100"
             maxlength="4"/>
      <button ng:click="imageSize=imageSizePending">apply</button>
    </li>
  </ul>

    <p>
      Click on the column header radio buttons to re-sort by that column...<br>
      <!-- TODO(epoger): Show some sort of "loading" message, instead of
           an empty table, while the data is loading.  Otherwise, if there are
           a lot of failures and it takes a long time to load them, the user
           might think there are NO failures and leave the page! -->
      <table border="1">
        <tr>
          <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" value="builder">Builder</input></th>
          <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" value="test">Test</input></th>
          <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" value="config">Config</input></th>
          <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" value="expectedHashDigest">Expected Image</input></th>
          <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" value="actualHashDigest">Actual Image</input></th>
          <!-- TODO(epoger): Add more columns, such as...
               pixel diff
               notes/bugs
               ignoreFailure boolean
          -->
        </tr>
        <!-- TODO(epoger): improve the column sorting, as per
             http://jsfiddle.net/vojtajina/js64b/14/ -->
        <tr ng-repeat="result in testData | filter: { resultType: showResultsOfType } | orderBy: sortColumn">
          <td>{{result.builder}}</td>
          <td>{{result.test}}</td>
          <td>{{result.config}}</td>
          <td>
	    <a target="_blank" href="http://chromium-skia-gm.commondatastorage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHashDigest}}.png">
              <img width="{{imageSize}}" src="http://chromium-skia-gm.commondatastorage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHashDigest}}.png"/>
            </a>
          </td>
          <td>
	    <a target="_blank" href="http://chromium-skia-gm.commondatastorage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDigest}}.png">
	      <img width="{{imageSize}}" src="http://chromium-skia-gm.commondatastorage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDigest}}.png"/>
            </a>
          </td>
        </tr>
      </table>
  </div>

  <!-- TODO(epoger): Can we get the base URLs (commondatastorage and
       issues list) from
       http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json
       ?  I tried importing the
       http://skia.googlecode.com/svn/buildbot/skia_tools.js script and using
       that to do so, but I got Access-Control-Allow-Origin errors.
    -->

</body>
</html>