| 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"> |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after 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 <!-- filters --> |
| 79 <label ng-repeat="valueAndCount in extraColumnHeaders[constants.KEY__EXT
RACOLUMNS__RESULT_TYPE][constants.KEY__EXTRACOLUMNHEADERS__VALUES_AND_COUNTS]"> | 79 <td ng-repeat="columnName in orderedColumnNames"> |
| 80 <input type="checkbox" | 80 |
| 81 name="resultTypes" | 81 <!-- Only display filterable columns here... --> |
| 82 value="{{valueAndCount[0]}}" | 82 <div ng-if="extraColumnHeaders[columnName][constants.KEY__EXTRACOLUMNHEA
DERS__IS_FILTERABLE]"> |
| 83 ng-checked="isValueInSet(valueAndCount[0], showingColumnValues[
constants.KEY__EXTRACOLUMNS__RESULT_TYPE])" | 83 {{extraColumnHeaders[columnName][constants.KEY__EXTRACOLUMNHEADERS__HE
ADER_TEXT]}}<br> |
| 84 ng-click="toggleValueInSet(valueAndCount[0], showingColumnValue
s[constants.KEY__EXTRACOLUMNS__RESULT_TYPE]); setUpdatesPending(true)"> | 84 |
| 85 {{valueAndCount[0]}} ({{valueAndCount[1]}})<br> | 85 <!-- If we filter this column using free-form text match... --> |
| 86 </label> | 86 <div ng-if="extraColumnHeaders[columnName][constants.KEY__EXTRACOLUMNH
EADERS__USE_FREEFORM_FILTER]"> |
| 87 <button ng-click="showingColumnValues[constants.KEY__EXTRACOLUMNS__RESUL
T_TYPE] = {}; toggleValuesInSet(allColumnValues[constants.KEY__EXTRACOLUMNS__RES
ULT_TYPE], showingColumnValues[constants.KEY__EXTRACOLUMNS__RESULT_TYPE]); updat
eResults()" | 87 <input type="text" |
| 88 ng-disabled="!readyToDisplay || allColumnValues[constants.KEY__E
XTRACOLUMNS__RESULT_TYPE].length == setSize(showingColumnValues[constants.KEY__E
XTRACOLUMNS__RESULT_TYPE])"> | 88 ng-model="columnStringMatch[columnName]" |
| 89 all | 89 ng-change="setUpdatesPending(true)"/> |
| 90 </button> | 90 <br> |
| 91 <button ng-click="showingColumnValues[constants.KEY__EXTRACOLUMNS__RESUL
T_TYPE] = {}; updateResults()" | 91 <button ng-click="setColumnStringMatch(columnName, '')" |
| 92 ng-disabled="!readyToDisplay || 0 == setSize(showingColumnValues
[constants.KEY__EXTRACOLUMNS__RESULT_TYPE])"> | 92 ng-disabled="('' == columnStringMatch[columnName])"> |
| 93 none | 93 clear (show all) |
| 94 </button> | 94 </button> |
| 95 <button ng-click="toggleValuesInSet(allColumnValues[constants.KEY__EXTRA
COLUMNS__RESULT_TYPE], showingColumnValues[constants.KEY__EXTRACOLUMNS__RESULT_T
YPE]); updateResults()"> | 95 </div> |
| 96 toggle | 96 |
| 97 </button> | 97 <!-- If we filter this column using checkboxes... --> |
| 98 <div ng-if="!extraColumnHeaders[columnName][constants.KEY__EXTRACOLUMN
HEADERS__USE_FREEFORM_FILTER]"> |
| 99 <label ng-repeat="valueAndCount in extraColumnHeaders[columnName][co
nstants.KEY__EXTRACOLUMNHEADERS__VALUES_AND_COUNTS]"> |
| 100 <input type="checkbox" |
| 101 name="resultTypes" |
| 102 value="{{valueAndCount[0]}}" |
| 103 ng-checked="isValueInSet(valueAndCount[0], showingColumnVal
ues[columnName])" |
| 104 ng-click="toggleValueInSet(valueAndCount[0], showingColumnV
alues[columnName]); setUpdatesPending(true)"> |
| 105 {{valueAndCount[0]}} ({{valueAndCount[1]}})<br> |
| 106 </label> |
| 107 <button ng-click="showingColumnValues[columnName] = {}; toggleValues
InSet(allColumnValues[columnName], showingColumnValues[columnName]); updateResul
ts()" |
| 108 ng-disabled="!readyToDisplay || allColumnValues[columnName].
length == setSize(showingColumnValues[columnName])"> |
| 109 all |
| 110 </button> |
| 111 <button ng-click="showingColumnValues[columnName] = {}; updateResult
s()" |
| 112 ng-disabled="!readyToDisplay || 0 == setSize(showingColumnVa
lues[columnName])"> |
| 113 none |
| 114 </button> |
| 115 <button ng-click="toggleValuesInSet(allColumnValues[columnName], sho
wingColumnValues[columnName]); updateResults()"> |
| 116 toggle |
| 117 </button> |
| 118 </div> |
| 119 |
| 120 </div> |
| 98 </td> | 121 </td> |
| 99 <td ng-repeat="category in [constants.KEY__EXTRACOLUMNS__BUILDER, constant
s.KEY__EXTRACOLUMNS__TEST]"> | 122 |
| 100 {{category}} | 123 <!-- settings --> |
| 101 <br> | |
| 102 <input type="text" | |
| 103 ng-model="categoryValueMatch[category]" | |
| 104 ng-change="setUpdatesPending(true)"/> | |
| 105 <br> | |
| 106 <button ng-click="setCategoryValueMatch(category, '')" | |
| 107 ng-disabled="('' == categoryValueMatch[category])"> | |
| 108 clear (show all) | |
| 109 </button> | |
| 110 </td> | |
| 111 <td> | |
| 112 config<br> | |
| 113 <label ng-repeat="valueAndCount in extraColumnHeaders[constants.KEY__EXT
RACOLUMNS__CONFIG][constants.KEY__EXTRACOLUMNHEADERS__VALUES_AND_COUNTS]"> | |
| 114 <input type="checkbox" | |
| 115 name="configs" | |
| 116 value="{{valueAndCount[0]}}" | |
| 117 ng-checked="isValueInSet(valueAndCount[0], showingColumnValues[
constants.KEY__EXTRACOLUMNS__CONFIG])" | |
| 118 ng-click="toggleValueInSet(valueAndCount[0], showingColumnValue
s[constants.KEY__EXTRACOLUMNS__CONFIG]); setUpdatesPending(true)"> | |
| 119 {{valueAndCount[0]}} ({{valueAndCount[1]}})<br> | |
| 120 </label> | |
| 121 <button ng-click="showingColumnValues[constants.KEY__EXTRACOLUMNS__CONFI
G] = {}; toggleValuesInSet(allColumnValues[constants.KEY__EXTRACOLUMNS__CONFIG],
showingColumnValues[constants.KEY__EXTRACOLUMNS__CONFIG]); updateResults()" | |
| 122 ng-disabled="!readyToDisplay || allColumnValues[constants.KEY__E
XTRACOLUMNS__CONFIG].length == setSize(showingColumnValues[constants.KEY__EXTRAC
OLUMNS__CONFIG])"> | |
| 123 all | |
| 124 </button> | |
| 125 <button ng-click="showingColumnValues[constants.KEY__EXTRACOLUMNS__CONFI
G] = {}; updateResults()" | |
| 126 ng-disabled="!readyToDisplay || 0 == setSize(showingColumnValues
[constants.KEY__EXTRACOLUMNS__CONFIG])"> | |
| 127 none | |
| 128 </button> | |
| 129 <button ng-click="toggleValuesInSet(allColumnValues[constants.KEY__EXTRA
COLUMNS__CONFIG], showingColumnValues[constants.KEY__EXTRACOLUMNS__CONFIG]); upd
ateResults()"> | |
| 130 toggle | |
| 131 </button> | |
| 132 </td> | |
| 133 <td><table> | 124 <td><table> |
| 134 <tr><td> | 125 <tr><td> |
| 135 <input type="checkbox" ng-model="showThumbnailsPending" | 126 <input type="checkbox" ng-model="showThumbnailsPending" |
| 136 ng-init="showThumbnailsPending = true" | 127 ng-init="showThumbnailsPending = true" |
| 137 ng-change="areUpdatesPending = true"/> | 128 ng-change="areUpdatesPending = true"/> |
| 138 Show thumbnails | 129 Show thumbnails |
| 139 </td></tr> | 130 </td></tr> |
| 140 <tr><td> | 131 <tr><td> |
| 141 <input type="checkbox" ng-model="mergeIdenticalRowsPending" | 132 <input type="checkbox" ng-model="mergeIdenticalRowsPending" |
| 142 ng-init="mergeIdenticalRowsPending = true" | 133 ng-init="mergeIdenticalRowsPending = true" |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 move {{selectedImagePairs.length}} selected tests to {{otherTab}
} tab | 232 move {{selectedImagePairs.length}} selected tests to {{otherTab}
} tab |
| 242 </button> | 233 </button> |
| 243 </div> | 234 </div> |
| 244 </td> | 235 </td> |
| 245 </tr> | 236 </tr> |
| 246 </table> <!-- results header --> | 237 </table> <!-- results header --> |
| 247 </td></tr><tr><td> | 238 </td></tr><tr><td> |
| 248 <table border="1" ng-app="diff_viewer"> <!-- results --> | 239 <table border="1" ng-app="diff_viewer"> <!-- results --> |
| 249 <tr> | 240 <tr> |
| 250 <!-- Most column headers are displayed in a common fashion... --> | 241 <!-- Most column headers are displayed in a common fashion... --> |
| 251 <th ng-repeat="categoryName in [constants.KEY__EXTRACOLUMNS__RESULT_TY
PE, constants.KEY__EXTRACOLUMNS__BUILDER, constants.KEY__EXTRACOLUMNS__TEST, con
stants.KEY__EXTRACOLUMNS__CONFIG]"> | 242 <th ng-repeat="columnName in orderedColumnNames"> |
| 252 <input type="radio" | 243 <input type="radio" |
| 253 name="sortColumnRadio" | 244 name="sortColumnRadio" |
| 254 value="{{categoryName}}" | 245 value="{{columnName}}" |
| 255 ng-checked="(sortColumnKey == categoryName)" | 246 ng-checked="(sortColumnKey == columnName)" |
| 256 ng-click="sortResultsBy(constants.KEY__IMAGEPAIRS__EXTRACOLUM
NS, categoryName)"> | 247 ng-click="sortResultsBy(constants.KEY__IMAGEPAIRS__EXTRACOLUM
NS, columnName)"> |
| 257 {{categoryName}} | 248 {{extraColumnHeaders[columnName][constants.KEY__EXTRACOLUMNHEADERS__
HEADER_TEXT]}} |
| 258 </th> | 249 </th> |
| 259 <!-- ... but there are a few columns where we display things different
ly. --> | 250 <!-- ... but there are a few columns where we display things different
ly. --> |
| 260 <th> | 251 <th> |
| 261 <input type="radio" | 252 <input type="radio" |
| 262 name="sortColumnRadio" | 253 name="sortColumnRadio" |
| 263 value="bugs" | 254 value="bugs" |
| 264 ng-checked="(sortColumnKey == constants.KEY__EXPECTATIONS__BU
GS)" | 255 ng-checked="(sortColumnKey == constants.KEY__EXPECTATIONS__BU
GS)" |
| 265 ng-click="sortResultsBy(constants.KEY__IMAGEPAIRS__EXPECTATIO
NS, constants.KEY__EXPECTATIONS__BUGS)"> | 256 ng-click="sortResultsBy(constants.KEY__IMAGEPAIRS__EXPECTATIO
NS, constants.KEY__EXPECTATIONS__BUGS)"> |
| 266 bugs | 257 bugs |
| 267 </th> | 258 </th> |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 min="0" max="255"/> | 295 min="0" max="255"/> |
| 305 </th> | 296 </th> |
| 306 <th> | 297 <th> |
| 307 <!-- imagepair-selection checkbox column --> | 298 <!-- imagepair-selection checkbox column --> |
| 308 </th> | 299 </th> |
| 309 </tr> | 300 </tr> |
| 310 | 301 |
| 311 <tr ng-repeat="imagePair in limitedImagePairs" valign="top" | 302 <tr ng-repeat="imagePair in limitedImagePairs" valign="top" |
| 312 ng-class-odd="'results-odd'" ng-class-even="'results-even'" | 303 ng-class-odd="'results-odd'" ng-class-even="'results-even'" |
| 313 results-updated-callback-directive> | 304 results-updated-callback-directive> |
| 314 <td> | 305 |
| 315 {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__
EXTRACOLUMNS__RESULT_TYPE]}} | 306 <td ng-repeat="columnName in orderedColumnNames"> |
| 307 {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][columnName]}} |
| 316 <br> | 308 <br> |
| 317 <button class="show-only-button" | 309 <button class="show-only-button" |
| 318 ng-show="viewingTab == defaultTab" | 310 ng-show="viewingTab == defaultTab" |
| 319 ng-disabled="1 == setSize(showingColumnValues[constants.KEY_
_EXTRACOLUMNS__RESULT_TYPE])" | 311 ng-disabled="1 == setSize(showingColumnValues[columnName])" |
| 320 ng-click="showOnlyColumnValue(constants.KEY__EXTRACOLUMNS__R
ESULT_TYPE, imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EX
TRACOLUMNS__RESULT_TYPE])" | 312 ng-click="showOnlyColumnValue(columnName, imagePair[constant
s.KEY__IMAGEPAIRS__EXTRACOLUMNS][columnName])" |
| 321 title="show only results of type {{imagePair[constants.KEY__
IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__RESULT_TYPE]}}"> | 313 title="show only results of {{extraColumnHeaders[columnName]
[constants.KEY__EXTRACOLUMNHEADERS__HEADER_TEXT]}} {{imagePair[constants.KEY__IM
AGEPAIRS__EXTRACOLUMNS][columnName]}}"> |
| 322 show only | 314 show only |
| 323 </button> | 315 </button> |
| 324 <br> | 316 <br> |
| 325 <button class="show-all-button" | 317 <button class="show-all-button" |
| 326 ng-show="viewingTab == defaultTab" | 318 ng-show="viewingTab == defaultTab" |
| 327 ng-disabled="allColumnValues[constants.KEY__EXTRACOLUMNS__RE
SULT_TYPE].length == setSize(showingColumnValues[constants.KEY__EXTRACOLUMNS__RE
SULT_TYPE])" | 319 ng-disabled="allColumnValues[columnName].length == setSize(s
howingColumnValues[columnName])" |
| 328 ng-click="showAllColumnValues(constants.KEY__EXTRACOLUMNS__R
ESULT_TYPE)" | 320 ng-click="showAllColumnValues(columnName)" |
| 329 title="show results of all types"> | 321 title="show results of all {{extraColumnHeaders[columnName][
constants.KEY__EXTRACOLUMNHEADERS__HEADER_TEXT]}}s"> |
| 330 show all | 322 show all |
| 331 </button> | 323 </button> |
| 332 </td> | 324 </td> |
| 333 <td ng-repeat="categoryName in [constants.KEY__EXTRACOLUMNS__BUILDER,
constants.KEY__EXTRACOLUMNS__TEST]"> | 325 |
| 334 {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName]}} | 326 <!-- bugs --> |
| 335 <br> | |
| 336 <button class="show-only-button" | |
| 337 ng-show="viewingTab == defaultTab" | |
| 338 ng-disabled="imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUM
NS][categoryName] == categoryValueMatch[categoryName]" | |
| 339 ng-click="setCategoryValueMatch(categoryName, imagePair[cons
tants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName])" | |
| 340 title="show only results of {{categoryName}} {{imagePair[con
stants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName]}}"> | |
| 341 show only | |
| 342 </button> | |
| 343 <br> | |
| 344 <button class="show-all-button" | |
| 345 ng-show="viewingTab == defaultTab" | |
| 346 ng-disabled="'' == categoryValueMatch[categoryName]" | |
| 347 ng-click="setCategoryValueMatch(categoryName, '')" | |
| 348 title="show results of all {{categoryName}}s"> | |
| 349 show all | |
| 350 </button> | |
| 351 </td> | |
| 352 <td> | |
| 353 {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__
EXTRACOLUMNS__CONFIG]}} | |
| 354 <br> | |
| 355 <button class="show-only-button" | |
| 356 ng-show="viewingTab == defaultTab" | |
| 357 ng-disabled="1 == setSize(showingColumnValues[constants.KEY_
_EXTRACOLUMNS__CONFIG])" | |
| 358 ng-click="showOnlyColumnValue(constants.KEY__EXTRACOLUMNS__C
ONFIG, imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EXTRACO
LUMNS__CONFIG])" | |
| 359 title="show only results of config {{imagePair[constants.KEY
__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__CONFIG]}}"> | |
| 360 show only | |
| 361 </button> | |
| 362 <br> | |
| 363 <button class="show-all-button" | |
| 364 ng-show="viewingTab == defaultTab" | |
| 365 ng-disabled="allColumnValues[constants.KEY__EXTRACOLUMNS__CO
NFIG].length == setSize(showingColumnValues[constants.KEY__EXTRACOLUMNS__CONFIG]
)" | |
| 366 ng-click="showAllColumnValues(constants.KEY__EXTRACOLUMNS__C
ONFIG)" | |
| 367 title="show results of all configs"> | |
| 368 show all | |
| 369 </button> | |
| 370 </td> | |
| 371 <td> | 327 <td> |
| 372 <a ng-repeat="bug in imagePair[constants.KEY__IMAGEPAIRS__EXPECTATIO
NS][constants.KEY__EXPECTATIONS__BUGS]" | 328 <a ng-repeat="bug in imagePair[constants.KEY__IMAGEPAIRS__EXPECTATIO
NS][constants.KEY__EXPECTATIONS__BUGS]" |
| 373 href="https://code.google.com/p/skia/issues/detail?id={{bug}}" | 329 href="https://code.google.com/p/skia/issues/detail?id={{bug}}" |
| 374 target="_blank"> | 330 target="_blank"> |
| 375 {{bug}} | 331 {{bug}} |
| 376 </a> | 332 </a> |
| 377 </td> | 333 </td> |
| 378 | 334 |
| 379 <!-- image A --> | 335 <!-- image A --> |
| 380 <td width="{{imageSize}}" ng-if="imagePair[constants.KEY__IMAGEPAIRS__
ROWSPAN] > 0" rowspan="{{imagePair[constants.KEY__IMAGEPAIRS__ROWSPAN]}}"> | 336 <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... |
| 452 ng-click="toggleSomeImagePairs($index, imagePair[constants.KE
Y__IMAGEPAIRS__ROWSPAN])"> | 408 ng-click="toggleSomeImagePairs($index, imagePair[constants.KE
Y__IMAGEPAIRS__ROWSPAN])"> |
| 453 </tr> | 409 </tr> |
| 454 </table> <!-- imagePairs --> | 410 </table> <!-- imagePairs --> |
| 455 </td></tr></table> <!-- table holding results header + imagePairs table --> | 411 </td></tr></table> <!-- table holding results header + imagePairs table --> |
| 456 | 412 |
| 457 </div><!-- main display area of selected tab --> | 413 </div><!-- main display area of selected tab --> |
| 458 </div><!-- everything: hide until readyToDisplay --> | 414 </div><!-- everything: hide until readyToDisplay --> |
| 459 | 415 |
| 460 </body> | 416 </body> |
| 461 </html> | 417 </html> |
| OLD | NEW |