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

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

Issue 59283006: rebaseline_server: add pixel diffs, and sorting by diff metrics (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: rename_selftest 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
« 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" 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 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 </th> 242 </th>
243 <th> 243 <th>
244 <input type="radio" 244 <input type="radio"
245 name="sortColumnRadio" 245 name="sortColumnRadio"
246 value="actualHashDigest" 246 value="actualHashDigest"
247 ng-checked="(sortColumn == 'actualHashDigest')" 247 ng-checked="(sortColumn == 'actualHashDigest')"
248 ng-click="sortResultsBy('actualHashDigest')"> 248 ng-click="sortResultsBy('actualHashDigest')">
249 actual image 249 actual image
250 </th> 250 </th>
251 <th> 251 <th>
252 <input type="radio"
253 name="sortColumnRadio"
254 value="percentDifferingPixels"
255 ng-checked="(sortColumn == 'percentDifferingPixels')"
256 ng-click="sortResultsBy('percentDifferingPixels')">
257 differing pixels
258 </th>
259 <th>
260 <input type="radio"
261 name="sortColumnRadio"
262 value="weightedDiffMeasure"
263 ng-checked="(sortColumn == 'weightedDiffMeasure')"
264 ng-click="sortResultsBy('weightedDiffMeasure')">
265 per-channel deltas
266 </th>
267 <th>
252 <!-- item-selection checkbox column --> 268 <!-- item-selection checkbox column -->
253 </th> 269 </th>
254 </tr> 270 </tr>
255 271
256 <!-- For most columns... if the user clicks on the cell, and we are on 272 <!-- For most columns... if the user clicks on the cell, and we are on
257 the default tab, update the filter to only show results with the 273 the default tab, update the filter to only show results with the
258 same value for this category. 274 same value for this category.
259 This is made a bit tricky by the fact that AngularJS expressions 275 This is made a bit tricky by the fact that AngularJS expressions
260 do not allow control flow statements. See 276 do not allow control flow statements. See
261 http://docs.angularjs.org/guide/expression --> 277 http://docs.angularjs.org/guide/expression -->
262 <tr ng-repeat="result in limitedTestData"> 278 <tr ng-repeat="result in limitedTestData">
263 <td ng-click="(viewingTab != defaultTab) || showOnlyResultType(result. resultType)"> 279 <td ng-click="(viewingTab != defaultTab) || showOnlyResultType(result. resultType)">
264 {{result.resultType}} 280 {{result.resultType}}
265 </td> 281 </td>
266 <td ng-repeat="categoryName in ['builder', 'test']" 282 <td ng-repeat="categoryName in ['builder', 'test']"
267 ng-click="(viewingTab != defaultTab) || setCategoryValueMatch(cate goryName, result[categoryName])"> 283 ng-click="(viewingTab != defaultTab) || setCategoryValueMatch(cate goryName, result[categoryName])">
268 {{result[categoryName]}} 284 {{result[categoryName]}}
269 </td> 285 </td>
270 <td ng-click="(viewingTab != defaultTab) || showOnlyConfig(result.conf ig)"> 286 <td ng-click="(viewingTab != defaultTab) || showOnlyConfig(result.conf ig)">
271 {{result.config}} 287 {{result.config}}
272 </td> 288 </td>
273 <td> 289 <td>
274 <a ng-repeat="bug in result['bugs']" 290 <a ng-repeat="bug in result['bugs']"
275 href="https://code.google.com/p/skia/issues/detail?id={{bug}}" 291 href="https://code.google.com/p/skia/issues/detail?id={{bug}}"
276 target="_blank"> 292 target="_blank">
277 {{bug}} 293 {{bug}}
278 </a> 294 </a>
279 </td> 295 </td>
280 <td> 296
297 <!-- expected image -->
298 <td valign="top">
281 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHa shDigest}}.png"> 299 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHa shDigest}}.png">
282 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.e xpectedHashDigest}}.png"/> 300 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.e xpectedHashDigest}}.png"/>
283 </a> 301 </a>
284 </td> 302 </td>
285 <td> 303
304 <!-- actual image -->
305 <td valign="top">
286 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDi gest}}.png"> 306 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDi gest}}.png">
287 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.act ualHashDigest}}.png"/> 307 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.act ualHashDigest}}.png"/>
288 </a> 308 </a>
289 </td> 309 </td>
310
311 <!-- whitediffs: every differing pixel shown in white -->
312 <td valign="top">
313 <div ng-hide="result.expectedHashDigest == result.actualHashDigest">
314 <a target="_blank" href="/static/generated-images/whitediffs/{{res ult.expectedHashDigest}}-vs-{{result.actualHashDigest}}.png">
315 <img width="{{imageSize}}" src="/static/generated-images/whitedi ffs/{{result.expectedHashDigest}}-vs-{{result.actualHashDigest}}.png"/>
316 </a><br>
317 {{result.percentDifferingPixels.toFixed(4)}}%
318 </div>
319 <div ng-hide="result.expectedHashDigest != result.actualHashDigest"
320 style="text-align:center">
321 &ndash;none&ndash;
322 </div>
323 </td>
324
325 <!-- diffs: per-channel RGB deltas -->
326 <td valign="top">
327 <div ng-hide="result.expectedHashDigest == result.actualHashDigest">
328 <a target="_blank" href="/static/generated-images/diffs/{{result.e xpectedHashDigest}}-vs-{{result.actualHashDigest}}.png">
329 <img width="{{imageSize}}" src="/static/generated-images/diffs/{ {result.expectedHashDigest}}-vs-{{result.actualHashDigest}}.png"/>
330 </a><br>
331 {{result.weightedDiffMeasure.toFixed(4)}}%
332 </div>
333 <div ng-hide="result.expectedHashDigest != result.actualHashDigest"
334 style="text-align:center">
335 &ndash;none&ndash;
336 </div>
337 </td>
338
290 <td> 339 <td>
291 <input type="checkbox" 340 <input type="checkbox"
292 name="rowSelect" 341 name="rowSelect"
293 value="{{result.index}}" 342 value="{{result.index}}"
294 ng-checked="isValueInArray(result.index, selectedItems)" 343 ng-checked="isValueInArray(result.index, selectedItems)"
295 ng-click="toggleValueInArray(result.index, selectedItems)"> 344 ng-click="toggleValueInArray(result.index, selectedItems)">
296 </tr> 345 </tr>
297 </table> <!-- results --> 346 </table> <!-- results -->
298 </td></tr></table> <!-- table holding results header + results table --> 347 </td></tr></table> <!-- table holding results header + results table -->
299 348
300 </div><!-- main display area of selected tab --> 349 </div><!-- main display area of selected tab -->
301 </div><!-- everything: hide until data is loaded --> 350 </div><!-- everything: hide until data is loaded -->
302 351
303 <!-- TODO(epoger): Can we get the base URLs (commondatastorage and 352 <!-- TODO(epoger): Can we get the base URLs (commondatastorage and
304 issues list) from 353 issues list) from
305 http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json 354 http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json
306 ? I tried importing the 355 ? I tried importing the
307 http://skia.googlecode.com/svn/buildbot/skia_tools.js script and using 356 http://skia.googlecode.com/svn/buildbot/skia_tools.js script and using
308 that to do so, but I got Access-Control-Allow-Origin errors. 357 that to do so, but I got Access-Control-Allow-Origin errors.
309 --> 358 -->
310 359
311 </body> 360 </body>
312 </html> 361 </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