| OLD | NEW |
| 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 Loading... |
| 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 –none– |
| 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 –none– |
| 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> |
| OLD | NEW |