blob: 89ef538271644ff6b637e6e8ca4679f842a5a4d5 [file] [log] [blame]
epoger@google.comf9d134d2013-09-27 15:02:44 +00001<!DOCTYPE html>
2
3<html ng-app="Loader">
4
5<head>
6 <title>Current GM Results</title>
7 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js"></script>
8 <script src="loader.js"></script>
9</head>
10
11<body>
12 <div ng-controller="Loader.Controller">
13
14 <!-- TODO(epoger): Add a warning banner if the server is running in
15 --export mode
16 -->
17
18 Settings:
19 <ul>
20 <!-- TODO(epoger): Now that we get multiple result types in a single
21 fetch, modify the UI: add a column showing resultType, and allow
22 the user to sort/filter on that column just like all the
23 others. -->
24 <li>show results of type
25 <select ng-model="showResultsOfType"
26 ng-init="showResultsOfType='failed'">
27 <option>failed</option>
28 <option>failure-ignored</option>
29 <!--
30 <option>no-comparison</option>
31
32 TODO(epoger): For now, I have disabled viewing the
33 no-comparison results because there are so many of them, and
34 the browser takes forever to download all the images. Maybe
35 we should use some sort of lazy-loading technique
36 (e.g. http://www.appelsiini.net/projects/lazyload ), so that
37 the images are only loaded as they become viewable...
38 -->
39 <!--
40 <option>succeeded</option>
41
42 TODO(epoger): See results.py: for now, I have disabled
43 returning succeeded tests as part of the JSON, because it
44 makes the returned JSON too big (and slows down the client).
45 -->
46 </select>
47 </li>
48 <li>image size
49 <input type="text" ng-model="imageSize" ng-init="imageSize=100"
50 maxlength="4"/>
51 </li>
52 </ul>
53
54 <p>
55 <!-- TODO(epoger): Show some sort of "loading" message, instead of
56 an empty table, while the data is loading. Otherwise, if there are
57 a lot of failures and it takes a long time to load them, the user
58 might think there are NO failures and leave the page! -->
59 <table border="1">
60 <tr>
61 <th ng:click="sortColumn='builder'">Builder</th>
62 <th ng:click="sortColumn='test'">Test</th>
63 <th ng:click="sortColumn='config'">Config</th>
64 <th ng:click="sortColumn='expectedHashDigest'">Expected Image</th>
65 <th ng:click="sortColumn='actualHashDigest'">Actual Image</th>
66 <!-- TODO(epoger): Add more columns, such as...
67 pixel diff
68 notes/bugs
69 ignoreFailure boolean
70 -->
71 </tr>
72 <!-- TODO(epoger): improve the column sorting, as per
73 http://jsfiddle.net/vojtajina/js64b/14/ -->
74 <tr ng-repeat="result in results | filter: { resultType: showResultsOfType } | orderBy: sortColumn">
75 <td>{{result.builder}}</td>
76 <td>{{result.test}}</td>
77 <td>{{result.config}}</td>
78 <td>
79 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHashDigest}}.png">
80 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondatastorage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHashDigest}}.png"/>
81 </a>
82 </td>
83 <td>
84 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDigest}}.png">
85 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondatastorage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDigest}}.png"/>
86 </a>
87 </td>
88 </tr>
89 </table>
90 </div>
91
92 <!-- TODO(epoger): Can we get the base URLs (commondatastorage and
93 issues list) from
94 http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json
95 ? I tried importing the
96 http://skia.googlecode.com/svn/buildbot/skia_tools.js script and using
97 that to do so, but I got Access-Control-Allow-Origin errors.
98 -->
99
100</body>
101</html>