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 |