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

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

Issue 44123004: rebaseline_server: UI improvements + set reviewed-by-human on commit (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 1 month 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
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 2
3 <html ng-app="Loader" ng-controller="Loader.Controller"> 3 <html ng-app="Loader" ng-controller="Loader.Controller">
4 4
5 <head> 5 <head>
6 <title ng-bind="windowTitle"></title> 6 <title ng-bind="windowTitle"></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 <link rel="stylesheet" href="view.css"> 9 <link rel="stylesheet" href="view.css">
10 </head> 10 </head>
(...skipping 20 matching lines...) Expand all
31 show 31 show
32 <ul ng-hide="!showTodos"> 32 <ul ng-hide="!showTodos">
33 <li> 33 <li>
34 If server was run with --reload flag, automatically check for 34 If server was run with --reload flag, automatically check for
35 new results and tell the user when new results are available 35 new results and tell the user when new results are available
36 (the user can reload the page if he wants to see them). 36 (the user can reload the page if he wants to see them).
37 </li><li> 37 </li><li>
38 Add ability to filter builder and test names 38 Add ability to filter builder and test names
39 (using a free-form text field, with partial string match) 39 (using a free-form text field, with partial string match)
40 </li><li> 40 </li><li>
41 Add more columns, such as pixel diffs, notes/bugs, 41 Add pixel diffs, and sorting by percentage of different pixels
42 ignoreFailure boolean 42 </li><li>
43 Add ability to sort/filter by reviewed-by-human. Depends on
44 <a href="https://code.google.com/p/skia/issues/detail?id=1758">
45 bug 1758
46 </a>
47 ('rebaseline_server: make the "categories" struct passed from server t o client a list instead of a dict')
43 </li><li> 48 </li><li>
44 Improve the column sorting, as per 49 Improve the column sorting, as per
45 <a href="http://jsfiddle.net/vojtajina/js64b/14/"> 50 <a href="http://jsfiddle.net/vojtajina/js64b/14/">
46 http://jsfiddle.net/vojtajina/js64b/14/ 51 http://jsfiddle.net/vojtajina/js64b/14/
47 </a> 52 </a>
48 </li><li> 53 </li><li>
49 Right now, if you change which column is used to 54 Right now, if you change which column is used to
50 sort the data, the column widths may fluctuate based on the 55 sort the data, the column widths may fluctuate based on the
51 longest string <i>currently visible</i> within the top {{displayLimit} } 56 longest string <i>currently visible</i> within the top {{displayLimit} }
52 results. Can we fix the column widths to be wide enough to hold 57 results. Can we fix the column widths to be wide enough to hold
(...skipping 25 matching lines...) Expand all
78 <table ng-hide="viewingTab != defaultTab" border="1"> 83 <table ng-hide="viewingTab != defaultTab" border="1">
79 <tr> 84 <tr>
80 <th colspan="2"> 85 <th colspan="2">
81 Filters 86 Filters
82 </th> 87 </th>
83 <th> 88 <th>
84 Settings 89 Settings
85 </th> 90 </th>
86 </tr> 91 </tr>
87 <tr valign="top"> 92 <tr valign="top">
93 <!-- TODO(epoger): make this an ng-repeat over resultType, config, etc? -- >
88 <td> 94 <td>
89 resultType<br> 95 resultType<br>
90 <label ng-repeat="(resultType, count) in categories['resultType']"> 96 <label ng-repeat="(resultType, count) in categories['resultType']">
91 <input type="checkbox" 97 <input type="checkbox"
92 name="resultTypes" 98 name="resultTypes"
93 value="{{resultType}}" 99 value="{{resultType}}"
94 ng-checked="!isValueInSet(resultType, hiddenResultTypes)" 100 ng-checked="!isValueInSet(resultType, hiddenResultTypes)"
95 ng-click="toggleValueInSet(resultType, hiddenResultTypes); setU pdatesPending(true)"> 101 ng-click="toggleValueInSet(resultType, hiddenResultTypes); setU pdatesPending(true)">
96 {{resultType}} ({{count}})<br> 102 {{resultType}} ({{count}})<br>
97 </label> 103 </label>
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 <span ng-hide="filteredTestData.length <= limitedTestData.length"> 166 <span ng-hide="filteredTestData.length <= limitedTestData.length">
161 displaying the first {{limitedTestData.length}} 167 displaying the first {{limitedTestData.length}}
162 </span> 168 </span>
163 <span ng-hide="filteredTestData.length > limitedTestData.length"> 169 <span ng-hide="filteredTestData.length > limitedTestData.length">
164 displaying them all 170 displaying them all
165 </span> 171 </span>
166 <br> 172 <br>
167 (click on the column header radio buttons to re-sort by that column) 173 (click on the column header radio buttons to re-sort by that column)
168 </div> 174 </div>
169 <div style="float:right"> 175 <div style="float:right">
176 <div>
177 all tests shown:
178 <button ng-click="selectAllItems()">
179 select
180 </button>
181 <button ng-click="clearAllItems()">
182 clear
183 </button>
184 <button ng-click="toggleAllItems()">
185 toggle
186 </button>
187 </div>
170 <div ng-repeat="otherTab in tabs"> 188 <div ng-repeat="otherTab in tabs">
171 <button ng-click="moveSelectedItemsToTab(otherTab)" 189 <button ng-click="moveSelectedItemsToTab(otherTab)"
172 ng-disabled="selectedItems.length == 0" 190 ng-disabled="selectedItems.length == 0"
173 ng-hide="otherTab == viewingTab"> 191 ng-hide="otherTab == viewingTab">
174 {{selectedItems.length}} move selected tests to {{otherTab}} tab 192 move {{selectedItems.length}} selected tests to {{otherTab}} tab
175 </button> 193 </button>
176 </div> 194 </div>
177 </div> 195 </div>
178 <div style="clear:both"> 196 <div style="clear:both">
179 </div> 197 </div>
180 </div> 198 </div>
181 <br> 199 <br>
182 200
183 <table border="1"> 201 <table border="1">
184 <tr> 202 <tr>
185 <!-- Most column headers are displayed in a common fashion... --> 203 <!-- Most column headers are displayed in a common fashion... -->
186 <th ng-repeat="categoryName in ['resultType', 'builder', 'test', 'conf ig']"> 204 <th ng-repeat="categoryName in ['resultType', 'builder', 'test', 'conf ig']">
187 <input type="radio" 205 <input type="radio"
188 name="sortColumnRadio" 206 name="sortColumnRadio"
189 value="{{categoryName}}" 207 value="{{categoryName}}"
190 ng-checked="(sortColumn == categoryName)" 208 ng-checked="(sortColumn == categoryName)"
191 ng-click="sortResultsBy(categoryName)"> 209 ng-click="sortResultsBy(categoryName)">
192 {{categoryName}} 210 {{categoryName}}
193 </th> 211 </th>
194 <!-- ... but there are a few columns where we display things different ly. --> 212 <!-- ... but there are a few columns where we display things different ly. -->
195 <th> 213 <th>
196 <input type="radio" 214 <input type="radio"
197 name="sortColumnRadio" 215 name="sortColumnRadio"
216 value="bugs"
217 ng-checked="(sortColumn == 'bugs')"
218 ng-click="sortResultsBy('bugs')">
219 bugs
220 </th>
221 <th>
222 <input type="radio"
223 name="sortColumnRadio"
198 value="expectedHashDigest" 224 value="expectedHashDigest"
199 ng-checked="(sortColumn == 'expectedHashDigest')" 225 ng-checked="(sortColumn == 'expectedHashDigest')"
200 ng-click="sortResultsBy('expectedHashDigest')"> 226 ng-click="sortResultsBy('expectedHashDigest')">
201 expected image 227 expected image
202 </th> 228 </th>
203 <th> 229 <th>
204 <input type="radio" 230 <input type="radio"
205 name="sortColumnRadio" 231 name="sortColumnRadio"
206 value="actualHashDigest" 232 value="actualHashDigest"
207 ng-checked="(sortColumn == 'actualHashDigest')" 233 ng-checked="(sortColumn == 'actualHashDigest')"
208 ng-click="sortResultsBy('actualHashDigest')"> 234 ng-click="sortResultsBy('actualHashDigest')">
209 actual image 235 actual image
210 </th> 236 </th>
211 <th> 237 <th>
212 <!-- item-selection checkbox column --> 238 <!-- item-selection checkbox column -->
213 </th> 239 </th>
214 </tr> 240 </tr>
215 <tr ng-repeat="result in limitedTestData"> 241 <tr ng-repeat="result in limitedTestData">
216 <td>{{result.resultType}}</td> 242 <td ng-repeat="categoryName in ['resultType', 'builder', 'test', 'conf ig']">
217 <td>{{result.builder}}</td> 243 {{result[categoryName]}}
218 <td>{{result.test}}</td> 244 </td>
219 <td>{{result.config}}</td> 245 <td>
246 <a ng-repeat="bug in result['bugs']"
247 href="https://code.google.com/p/skia/issues/detail?id={{bug}}"
248 target="_blank">
249 {{bug}}
250 </a>
251 </td>
220 <td> 252 <td>
221 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHa shDigest}}.png"> 253 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHa shDigest}}.png">
222 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.e xpectedHashDigest}}.png"/> 254 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.e xpectedHashDigest}}.png"/>
223 </a> 255 </a>
224 </td> 256 </td>
225 <td> 257 <td>
226 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDi gest}}.png"> 258 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDi gest}}.png">
227 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.act ualHashDigest}}.png"/> 259 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.act ualHashDigest}}.png"/>
228 </a> 260 </a>
229 </td> 261 </td>
(...skipping 11 matching lines...) Expand all
241 <!-- TODO(epoger): Can we get the base URLs (commondatastorage and 273 <!-- TODO(epoger): Can we get the base URLs (commondatastorage and
242 issues list) from 274 issues list) from
243 http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json 275 http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json
244 ? I tried importing the 276 ? I tried importing the
245 http://skia.googlecode.com/svn/buildbot/skia_tools.js script and using 277 http://skia.googlecode.com/svn/buildbot/skia_tools.js script and using
246 that to do so, but I got Access-Control-Allow-Origin errors. 278 that to do so, but I got Access-Control-Allow-Origin errors.
247 --> 279 -->
248 280
249 </body> 281 </body>
250 </html> 282 </html>
OLDNEW
« gm/rebaseline_server/static/loader.js ('K') | « gm/rebaseline_server/static/loader.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698