Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(115)

Side by Side Diff: gm/rebaseline_server/static/view.html

Issue 369473005: rebaseline_server: handle category filtering more generically (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rebase after https://codereview.chromium.org/364253003/ ('rebaseline_server: if urlSchemaVersion is… Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gm/rebaseline_server/static/loader.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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>
OLDNEW
« no previous file with comments | « gm/rebaseline_server/static/loader.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698