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 |