| 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="constants.js"></script> | 8 <script src="constants.js"></script> |
| 9 <script src="loader.js"></script> | 9 <script src="loader.js"></script> |
| 10 <link rel="stylesheet" href="view.css"> | 10 <link rel="stylesheet" href="view.css"> |
| 11 </head> | 11 </head> |
| 12 | 12 |
| 13 <body> | 13 <body> |
| 14 <h2> | 14 <h2> |
| 15 Instructions, roadmap, etc. are at | 15 Instructions, roadmap, etc. are at |
| 16 <a href="http://tinyurl.com/SkiaRebaselineServer"> | 16 <a href="http://tinyurl.com/SkiaRebaselineServer"> |
| 17 http://tinyurl.com/SkiaRebaselineServer | 17 http://tinyurl.com/SkiaRebaselineServer |
| 18 </a> | 18 </a> |
| 19 </h2> | 19 </h2> |
| 20 | 20 |
| 21 <em ng-show="!extraColumnHeaders"><!-- show until data is loaded --> | 21 <em ng-show="!readyToDisplay"> |
| 22 Loading results from <a href="{{resultsToLoad}}">{{resultsToLoad}}</a> ... | 22 Loading results from <a href="{{resultsToLoad}}">{{resultsToLoad}}</a> ... |
| 23 {{loadingMessage}} | 23 {{loadingMessage}} |
| 24 </em> | 24 </em> |
| 25 | 25 |
| 26 <div ng-show="extraColumnHeaders"><!-- everything: hide until data is loaded -
-> | 26 <div ng-show="readyToDisplay"> |
| 27 | 27 |
| 28 <div class="warning-div" | 28 <div class="warning-div" |
| 29 ng-show="urlSchemaVersionLoaded != constants.URL_VALUE__SCHEMA_VERSION_
_CURRENT"> | 29 ng-show="urlSchemaVersionLoaded != constants.URL_VALUE__SCHEMA_VERSION_
_CURRENT"> |
| 30 WARNING! The URL you loaded used schema version {{urlSchemaVersionLoaded}
}, rather than | 30 WARNING! The URL you loaded used schema version {{urlSchemaVersionLoaded}
}, rather than |
| 31 the most recent version {{constants.URL_VALUE__SCHEMA_VERSION__CURRENT}}.
It has been | 31 the most recent version {{constants.URL_VALUE__SCHEMA_VERSION__CURRENT}}.
It has been |
| 32 converted to the most recent version on a best-effort basis; you may wish
to double-check | 32 converted to the most recent version on a best-effort basis; you may wish
to double-check |
| 33 which records are displayed. | 33 which records are displayed. |
| 34 </div> | 34 </div> |
| 35 | 35 |
| 36 <div class="warning-div" | 36 <div class="warning-div" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 67 <table ng-show="viewingTab == defaultTab" border="1"> | 67 <table ng-show="viewingTab == defaultTab" border="1"> |
| 68 <tr> | 68 <tr> |
| 69 <th colspan="4"> | 69 <th colspan="4"> |
| 70 Filters | 70 Filters |
| 71 </th> | 71 </th> |
| 72 <th> | 72 <th> |
| 73 Settings | 73 Settings |
| 74 </th> | 74 </th> |
| 75 </tr> | 75 </tr> |
| 76 <tr valign="top"> | 76 <tr valign="top"> |
| 77 <td> | 77 |
| 78 resultType<br> | 78 <!-- columns that we filter using checkboxes --> |
| 79 <label ng-repeat="valueAndCount in extraColumnHeaders[constants.KEY__EXT
RACOLUMNS__RESULT_TYPE][constants.KEY__EXTRACOLUMNHEADERS__VALUES_AND_COUNTS]"> | 79 <td ng-repeat="category in [constants.KEY__EXTRACOLUMNS__RESULT_TYPE, cons
tants.KEY__EXTRACOLUMNS__CONFIG]"> |
| 80 {{category}} |
| 81 <br> |
| 82 <label ng-repeat="valueAndCount in extraColumnHeaders[category][constant
s.KEY__EXTRACOLUMNHEADERS__VALUES_AND_COUNTS]"> |
| 80 <input type="checkbox" | 83 <input type="checkbox" |
| 81 name="resultTypes" | |
| 82 value="{{valueAndCount[0]}}" | 84 value="{{valueAndCount[0]}}" |
| 83 ng-checked="!isValueInSet(valueAndCount[0], hiddenResultTypes)" | 85 ng-checked="isValueInSet(valueAndCount[0], showingColumnValues[
category])" |
| 84 ng-click="toggleValueInSet(valueAndCount[0], hiddenResultTypes)
; setUpdatesPending(true)"> | 86 ng-click="toggleValueInSet(valueAndCount[0], showingColumnValue
s[category]); setUpdatesPending(true)"> |
| 85 {{valueAndCount[0]}} ({{valueAndCount[1]}})<br> | 87 {{valueAndCount[0]}} ({{valueAndCount[1]}})<br> |
| 86 </label> | 88 </label> |
| 87 <button ng-click="hiddenResultTypes = {}; updateResults()"> | 89 <button ng-click="showingColumnValues[category] = {}; toggleValuesInSet(
allColumnValues[category], showingColumnValues[category]); updateResults()" |
| 90 ng-disabled="!readyToDisplay || allColumnValues[category].length
== setSize(showingColumnValues[category])"> |
| 88 all | 91 all |
| 89 </button> | 92 </button> |
| 90 <button ng-click="hiddenResultTypes = {}; toggleValuesInSet(allResultTyp
es, hiddenResultTypes); updateResults()"> | 93 <button ng-click="showingColumnValues[category] = {}; updateResults()" |
| 94 ng-disabled="!readyToDisplay || 0 == setSize(showingColumnValues
[category])"> |
| 91 none | 95 none |
| 92 </button> | 96 </button> |
| 93 <button ng-click="toggleValuesInSet(allResultTypes, hiddenResultTypes);
updateResults()"> | 97 <button ng-click="toggleValuesInSet(allColumnValues[category], showingCo
lumnValues[category]); updateResults()"> |
| 94 toggle | 98 toggle |
| 95 </button> | 99 </button> |
| 96 </td> | 100 </td> |
| 101 |
| 102 <!-- columns that we filter using partial text match --> |
| 97 <td ng-repeat="category in [constants.KEY__EXTRACOLUMNS__BUILDER, constant
s.KEY__EXTRACOLUMNS__TEST]"> | 103 <td ng-repeat="category in [constants.KEY__EXTRACOLUMNS__BUILDER, constant
s.KEY__EXTRACOLUMNS__TEST]"> |
| 98 {{category}} | 104 {{category}} |
| 99 <br> | 105 <br> |
| 100 <input type="text" | 106 <input type="text" |
| 101 ng-model="categoryValueMatch[category]" | 107 ng-model="categoryValueMatch[category]" |
| 102 ng-change="setUpdatesPending(true)"/> | 108 ng-change="setUpdatesPending(true)"/> |
| 103 <br> | 109 <br> |
| 104 <button ng-click="setCategoryValueMatch(category, '')" | 110 <button ng-click="setCategoryValueMatch(category, '')" |
| 105 ng-disabled="('' == categoryValueMatch[category])"> | 111 ng-disabled="('' == categoryValueMatch[category])"> |
| 106 clear (show all) | 112 clear (show all) |
| 107 </button> | 113 </button> |
| 108 </td> | 114 </td> |
| 109 <td> | 115 |
| 110 config<br> | 116 <!-- settings --> |
| 111 <label ng-repeat="valueAndCount in extraColumnHeaders[constants.KEY__EXT
RACOLUMNS__CONFIG][constants.KEY__EXTRACOLUMNHEADERS__VALUES_AND_COUNTS]"> | |
| 112 <input type="checkbox" | |
| 113 name="configs" | |
| 114 value="{{valueAndCount[0]}}" | |
| 115 ng-checked="!isValueInSet(valueAndCount[0], hiddenConfigs)" | |
| 116 ng-click="toggleValueInSet(valueAndCount[0], hiddenConfigs); se
tUpdatesPending(true)"> | |
| 117 {{valueAndCount[0]}} ({{valueAndCount[1]}})<br> | |
| 118 </label> | |
| 119 <button ng-click="hiddenConfigs = {}; updateResults()"> | |
| 120 all | |
| 121 </button> | |
| 122 <button ng-click="hiddenConfigs = {}; toggleValuesInSet(allConfigs, hidd
enConfigs); updateResults()"> | |
| 123 none | |
| 124 </button> | |
| 125 <button ng-click="toggleValuesInSet(allConfigs, hiddenConfigs); updateRe
sults()"> | |
| 126 toggle | |
| 127 </button> | |
| 128 </td> | |
| 129 <td><table> | 117 <td><table> |
| 130 <tr><td> | 118 <tr><td> |
| 131 <input type="checkbox" ng-model="showThumbnailsPending" | 119 <input type="checkbox" ng-model="showThumbnailsPending" |
| 132 ng-init="showThumbnailsPending = true" | 120 ng-init="showThumbnailsPending = true" |
| 133 ng-change="areUpdatesPending = true"/> | 121 ng-change="areUpdatesPending = true"/> |
| 134 Show thumbnails | 122 Show thumbnails |
| 135 </td></tr> | 123 </td></tr> |
| 136 <tr><td> | 124 <tr><td> |
| 137 <input type="checkbox" ng-model="mergeIdenticalRowsPending" | 125 <input type="checkbox" ng-model="mergeIdenticalRowsPending" |
| 138 ng-init="mergeIdenticalRowsPending = true" | 126 ng-init="mergeIdenticalRowsPending = true" |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 move {{selectedImagePairs.length}} selected tests to {{otherTab}
} tab | 225 move {{selectedImagePairs.length}} selected tests to {{otherTab}
} tab |
| 238 </button> | 226 </button> |
| 239 </div> | 227 </div> |
| 240 </td> | 228 </td> |
| 241 </tr> | 229 </tr> |
| 242 </table> <!-- results header --> | 230 </table> <!-- results header --> |
| 243 </td></tr><tr><td> | 231 </td></tr><tr><td> |
| 244 <table border="1" ng-app="diff_viewer"> <!-- results --> | 232 <table border="1" ng-app="diff_viewer"> <!-- results --> |
| 245 <tr> | 233 <tr> |
| 246 <!-- Most column headers are displayed in a common fashion... --> | 234 <!-- Most column headers are displayed in a common fashion... --> |
| 247 <th ng-repeat="categoryName in [constants.KEY__EXTRACOLUMNS__RESULT_TY
PE, constants.KEY__EXTRACOLUMNS__BUILDER, constants.KEY__EXTRACOLUMNS__TEST, con
stants.KEY__EXTRACOLUMNS__CONFIG]"> | 235 <th ng-repeat="categoryName in [constants.KEY__EXTRACOLUMNS__RESULT_TY
PE, constants.KEY__EXTRACOLUMNS__CONFIG, constants.KEY__EXTRACOLUMNS__BUILDER, c
onstants.KEY__EXTRACOLUMNS__TEST]"> |
| 248 <input type="radio" | 236 <input type="radio" |
| 249 name="sortColumnRadio" | 237 name="sortColumnRadio" |
| 250 value="{{categoryName}}" | 238 value="{{categoryName}}" |
| 251 ng-checked="(sortColumnKey == categoryName)" | 239 ng-checked="(sortColumnKey == categoryName)" |
| 252 ng-click="sortResultsBy(constants.KEY__IMAGEPAIRS__EXTRACOLUM
NS, categoryName)"> | 240 ng-click="sortResultsBy(constants.KEY__IMAGEPAIRS__EXTRACOLUM
NS, categoryName)"> |
| 253 {{categoryName}} | 241 {{categoryName}} |
| 254 </th> | 242 </th> |
| 255 <!-- ... but there are a few columns where we display things different
ly. --> | 243 <!-- ... but there are a few columns where we display things different
ly. --> |
| 256 <th> | 244 <th> |
| 257 <input type="radio" | 245 <input type="radio" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 300 min="0" max="255"/> | 288 min="0" max="255"/> |
| 301 </th> | 289 </th> |
| 302 <th> | 290 <th> |
| 303 <!-- imagepair-selection checkbox column --> | 291 <!-- imagepair-selection checkbox column --> |
| 304 </th> | 292 </th> |
| 305 </tr> | 293 </tr> |
| 306 | 294 |
| 307 <tr ng-repeat="imagePair in limitedImagePairs" valign="top" | 295 <tr ng-repeat="imagePair in limitedImagePairs" valign="top" |
| 308 ng-class-odd="'results-odd'" ng-class-even="'results-even'" | 296 ng-class-odd="'results-odd'" ng-class-even="'results-even'" |
| 309 results-updated-callback-directive> | 297 results-updated-callback-directive> |
| 310 <td> | 298 |
| 311 {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__
EXTRACOLUMNS__RESULT_TYPE]}} | 299 <!-- columns that we filter using checkboxes --> |
| 300 <td ng-repeat="categoryName in [constants.KEY__EXTRACOLUMNS__RESULT_TY
PE, constants.KEY__EXTRACOLUMNS__CONFIG]"> |
| 301 {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName]}} |
| 312 <br> | 302 <br> |
| 313 <button class="show-only-button" | 303 <button class="show-only-button" |
| 314 ng-show="viewingTab == defaultTab" | 304 ng-show="viewingTab == defaultTab" |
| 315 ng-click="showOnlyResultType(imagePair[constants.KEY__IMAGEP
AIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__RESULT_TYPE])" | 305 ng-disabled="1 == setSize(showingColumnValues[categoryName])
" |
| 316 title="show only results of type {{imagePair[constants.KEY__
IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__RESULT_TYPE]}}"> | 306 ng-click="showOnlyColumnValue(categoryName, imagePair[consta
nts.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName])" |
| 307 title="show only results of {{categoryName}} {{imagePair[con
stants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName]}}"> |
| 317 show only | 308 show only |
| 318 </button> | 309 </button> |
| 319 <br> | 310 <br> |
| 320 <button class="show-all-button" | 311 <button class="show-all-button" |
| 321 ng-show="viewingTab == defaultTab" | 312 ng-show="viewingTab == defaultTab" |
| 322 ng-disabled="0 == setSize(hiddenResultTypes)" | 313 ng-disabled="allColumnValues[categoryName].length == setSize
(showingColumnValues[categoryName])" |
| 323 ng-click="showAllResultTypes()" | 314 ng-click="showAllColumnValues(categoryName)" |
| 324 title="show results of all types"> | 315 title="show results of all {{categoryName}}s"> |
| 325 show all | 316 show all |
| 326 </button> | 317 </button> |
| 327 </td> | 318 </td> |
| 319 |
| 320 <!-- columns that we filter using partial-text matching --> |
| 328 <td ng-repeat="categoryName in [constants.KEY__EXTRACOLUMNS__BUILDER,
constants.KEY__EXTRACOLUMNS__TEST]"> | 321 <td ng-repeat="categoryName in [constants.KEY__EXTRACOLUMNS__BUILDER,
constants.KEY__EXTRACOLUMNS__TEST]"> |
| 329 {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName]}} | 322 {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName]}} |
| 330 <br> | 323 <br> |
| 331 <button class="show-only-button" | 324 <button class="show-only-button" |
| 332 ng-show="viewingTab == defaultTab" | 325 ng-show="viewingTab == defaultTab" |
| 333 ng-disabled="imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUM
NS][categoryName] == categoryValueMatch[categoryName]" | 326 ng-disabled="imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUM
NS][categoryName] == categoryValueMatch[categoryName]" |
| 334 ng-click="setCategoryValueMatch(categoryName, imagePair[cons
tants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName])" | 327 ng-click="setCategoryValueMatch(categoryName, imagePair[cons
tants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName])" |
| 335 title="show only results of {{categoryName}} {{imagePair[con
stants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName]}}"> | 328 title="show only results of {{categoryName}} {{imagePair[con
stants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName]}}"> |
| 336 show only | 329 show only |
| 337 </button> | 330 </button> |
| 338 <br> | 331 <br> |
| 339 <button class="show-all-button" | 332 <button class="show-all-button" |
| 340 ng-show="viewingTab == defaultTab" | 333 ng-show="viewingTab == defaultTab" |
| 341 ng-disabled="'' == categoryValueMatch[categoryName]" | 334 ng-disabled="'' == categoryValueMatch[categoryName]" |
| 342 ng-click="setCategoryValueMatch(categoryName, '')" | 335 ng-click="setCategoryValueMatch(categoryName, '')" |
| 343 title="show results of all {{categoryName}}s"> | 336 title="show results of all {{categoryName}}s"> |
| 344 show all | 337 show all |
| 345 </button> | 338 </button> |
| 346 </td> | 339 </td> |
| 347 <td> | 340 |
| 348 {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__
EXTRACOLUMNS__CONFIG]}} | 341 <!-- bugs --> |
| 349 <br> | |
| 350 <button class="show-only-button" | |
| 351 ng-show="viewingTab == defaultTab" | |
| 352 ng-click="showOnlyConfig(imagePair[constants.KEY__IMAGEPAIRS
__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__CONFIG])" | |
| 353 title="show only results of config {{imagePair[constants.KEY
__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__CONFIG]}}"> | |
| 354 show only | |
| 355 </button> | |
| 356 <br> | |
| 357 <button class="show-all-button" | |
| 358 ng-show="viewingTab == defaultTab" | |
| 359 ng-disabled="0 == setSize(hiddenConfigs)" | |
| 360 ng-click="showAllConfigs()" | |
| 361 title="show results of all configs"> | |
| 362 show all | |
| 363 </button> | |
| 364 </td> | |
| 365 <td> | 342 <td> |
| 366 <a ng-repeat="bug in imagePair[constants.KEY__IMAGEPAIRS__EXPECTATIO
NS][constants.KEY__EXPECTATIONS__BUGS]" | 343 <a ng-repeat="bug in imagePair[constants.KEY__IMAGEPAIRS__EXPECTATIO
NS][constants.KEY__EXPECTATIONS__BUGS]" |
| 367 href="https://code.google.com/p/skia/issues/detail?id={{bug}}" | 344 href="https://code.google.com/p/skia/issues/detail?id={{bug}}" |
| 368 target="_blank"> | 345 target="_blank"> |
| 369 {{bug}} | 346 {{bug}} |
| 370 </a> | 347 </a> |
| 371 </td> | 348 </td> |
| 372 | 349 |
| 373 <!-- image A --> | 350 <!-- image A --> |
| 374 <td width="{{imageSize}}" ng-if="imagePair[constants.KEY__IMAGEPAIRS__
ROWSPAN] > 0" rowspan="{{imagePair[constants.KEY__IMAGEPAIRS__ROWSPAN]}}"> | 351 <td width="{{imageSize}}" ng-if="imagePair[constants.KEY__IMAGEPAIRS__
ROWSPAN] > 0" rowspan="{{imagePair[constants.KEY__IMAGEPAIRS__ROWSPAN]}}"> |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 446 ng-click="toggleSomeImagePairs($index, imagePair[constants.KE
Y__IMAGEPAIRS__ROWSPAN])"> | 423 ng-click="toggleSomeImagePairs($index, imagePair[constants.KE
Y__IMAGEPAIRS__ROWSPAN])"> |
| 447 </tr> | 424 </tr> |
| 448 </table> <!-- imagePairs --> | 425 </table> <!-- imagePairs --> |
| 449 </td></tr></table> <!-- table holding results header + imagePairs table --> | 426 </td></tr></table> <!-- table holding results header + imagePairs table --> |
| 450 | 427 |
| 451 </div><!-- main display area of selected tab --> | 428 </div><!-- main display area of selected tab --> |
| 452 </div><!-- everything: hide until data is loaded --> | 429 </div><!-- everything: hide until data is loaded --> |
| 453 | 430 |
| 454 </body> | 431 </body> |
| 455 </html> | 432 </html> |
| OLD | NEW |