Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(92)

Side by Side Diff: gm/rebaseline_server/static/view.html

Issue 25045003: HTTP GM results viewer: server now returns category summaries along with testData (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: final_tweaks Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gm/rebaseline_server/static/loader.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 2
3 <html ng-app="Loader"> 3 <html ng-app="Loader">
4 4
5 <head> 5 <head>
6 <title>Current GM Results</title> 6 <title>Current GM Results</title>
7 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js" ></script> 7 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js" ></script>
8 <script src="loader.js"></script> 8 <script src="loader.js"></script>
9 </head> 9 </head>
10 10
11 <body> 11 <body>
12 <div ng-controller="Loader.Controller"> 12 <div ng-controller="Loader.Controller">
13 13
14 <!-- TODO(epoger): Add a warning banner if the server is running in 14 <!-- TODO(epoger): Add a warning banner if the server is running in
15 --export mode 15 --export mode
16 --> 16 -->
17 17
18 <!-- TODO(epoger): Add some indication of how old the
19 expected/actual data is -->
20
18 Settings: 21 Settings:
19 <ul> 22 <ul>
20 <!-- TODO(epoger): Now that we get multiple result types in a single 23 <!-- TODO(epoger): Now that we get multiple result types in a single
21 fetch, modify the UI: add a column showing resultType, and allow 24 fetch, modify the UI: add a column showing resultType, and allow
22 the user to sort/filter on that column just like all the 25 the user to sort/filter on that column just like all the
23 others. --> 26 others. -->
24 <li>show results of type 27 <li>show results of type
25 <select ng-model="showResultsOfType" 28 <select ng-model="showResultsOfType"
26 ng-init="showResultsOfType='failed'"> 29 ng-init="showResultsOfType='failed'">
27 <option>failed</option> 30 <option ng-repeat="(resultType, count) in categories['resultType']"
28 <option>failure-ignored</option> 31 value="{{resultType}}">
29 <!-- 32 {{resultType}} ({{count}})
30 <option>no-comparison</option> 33 </option>
31 34 </select>
32 TODO(epoger): For now, I have disabled viewing the 35 <!--
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 36 TODO(epoger): See results.py: for now, I have disabled
43 returning succeeded tests as part of the JSON, because it 37 returning succeeded tests as part of the JSON, because it
44 makes the returned JSON too big (and slows down the client). 38 makes the returned JSON too big (and slows down the client).
45 --> 39
46 </select> 40 Also, we should use some sort of lazy-loading technique
41 (e.g. http://www.appelsiini.net/projects/lazyload ), so that
42 the images are only loaded as they become viewable...
43 that will help with long lists like resultType='no-comparison'.
44 -->
45 <br>
46 TODO(epoger): 'no-comparison' will probably take forever;
47 see HTML source for details
48 <br>
49 TODO(epoger): 'succeeded' will not show any results;
50 see HTML source for details
47 </li> 51 </li>
48 <li>image size 52 <li>image size
49 <input type="text" ng-model="imageSize" ng-init="imageSize=100" 53 <input type="text" ng-model="imageSizePending"
54 ng-init="imageSizePending=100; imageSize=100"
50 maxlength="4"/> 55 maxlength="4"/>
56 <button ng:click="imageSize=imageSizePending">apply</button>
51 </li> 57 </li>
52 </ul> 58 </ul>
53 59
54 <p> 60 <p>
61 Click on the column header radio buttons to re-sort by that column...<br>
55 <!-- TODO(epoger): Show some sort of "loading" message, instead of 62 <!-- TODO(epoger): Show some sort of "loading" message, instead of
56 an empty table, while the data is loading. Otherwise, if there are 63 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 64 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! --> 65 might think there are NO failures and leave the page! -->
59 <table border="1"> 66 <table border="1">
60 <tr> 67 <tr>
61 <th ng:click="sortColumn='builder'">Builder</th> 68 <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" v alue="builder">Builder</input></th>
62 <th ng:click="sortColumn='test'">Test</th> 69 <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" v alue="test">Test</input></th>
63 <th ng:click="sortColumn='config'">Config</th> 70 <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" v alue="config">Config</input></th>
64 <th ng:click="sortColumn='expectedHashDigest'">Expected Image</th> 71 <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" v alue="expectedHashDigest">Expected Image</input></th>
65 <th ng:click="sortColumn='actualHashDigest'">Actual Image</th> 72 <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" v alue="actualHashDigest">Actual Image</input></th>
66 <!-- TODO(epoger): Add more columns, such as... 73 <!-- TODO(epoger): Add more columns, such as...
67 pixel diff 74 pixel diff
68 notes/bugs 75 notes/bugs
69 ignoreFailure boolean 76 ignoreFailure boolean
70 --> 77 -->
71 </tr> 78 </tr>
72 <!-- TODO(epoger): improve the column sorting, as per 79 <!-- TODO(epoger): improve the column sorting, as per
73 http://jsfiddle.net/vojtajina/js64b/14/ --> 80 http://jsfiddle.net/vojtajina/js64b/14/ -->
74 <tr ng-repeat="result in results | filter: { resultType: showResultsOfTy pe } | orderBy: sortColumn"> 81 <tr ng-repeat="result in testData | filter: { resultType: showResultsOfT ype } | orderBy: sortColumn">
75 <td>{{result.builder}}</td> 82 <td>{{result.builder}}</td>
76 <td>{{result.test}}</td> 83 <td>{{result.test}}</td>
77 <td>{{result.config}}</td> 84 <td>{{result.config}}</td>
78 <td> 85 <td>
79 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHa shDigest}}.png"> 86 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHa shDigest}}.png">
80 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.e xpectedHashDigest}}.png"/> 87 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.e xpectedHashDigest}}.png"/>
81 </a> 88 </a>
82 </td> 89 </td>
83 <td> 90 <td>
84 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDi gest}}.png"> 91 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDi gest}}.png">
85 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.act ualHashDigest}}.png"/> 92 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.act ualHashDigest}}.png"/>
86 </a> 93 </a>
87 </td> 94 </td>
88 </tr> 95 </tr>
89 </table> 96 </table>
90 </div> 97 </div>
91 98
92 <!-- TODO(epoger): Can we get the base URLs (commondatastorage and 99 <!-- TODO(epoger): Can we get the base URLs (commondatastorage and
93 issues list) from 100 issues list) from
94 http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json 101 http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json
95 ? I tried importing the 102 ? I tried importing the
96 http://skia.googlecode.com/svn/buildbot/skia_tools.js script and using 103 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. 104 that to do so, but I got Access-Control-Allow-Origin errors.
98 --> 105 -->
99 106
100 </body> 107 </body>
101 </html> 108 </html>
OLDNEW
« no previous file with comments | « gm/rebaseline_server/static/loader.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698