| Index: gm/rebaseline_server/static/view.html
|
| diff --git a/gm/rebaseline_server/static/view.html b/gm/rebaseline_server/static/view.html
|
| index 94dc9ba63e5e6e2a0bb71d30b994db29b183ef4a..d94c47d02fa3abfcfa122b911e84942305f8ee58 100644
|
| --- a/gm/rebaseline_server/static/view.html
|
| +++ b/gm/rebaseline_server/static/view.html
|
| @@ -18,12 +18,12 @@
|
| </a>
|
| </h2>
|
|
|
| - <em ng-show="!extraColumnHeaders"><!-- show until data is loaded -->
|
| + <em ng-show="!readyToDisplay">
|
| Loading results from <a href="{{resultsToLoad}}">{{resultsToLoad}}</a> ...
|
| {{loadingMessage}}
|
| </em>
|
|
|
| - <div ng-show="extraColumnHeaders"><!-- everything: hide until data is loaded -->
|
| + <div ng-show="readyToDisplay">
|
|
|
| <div class="warning-div"
|
| ng-show="urlSchemaVersionLoaded != constants.URL_VALUE__SCHEMA_VERSION__CURRENT">
|
| @@ -74,26 +74,32 @@
|
| </th>
|
| </tr>
|
| <tr valign="top">
|
| - <td>
|
| - resultType<br>
|
| - <label ng-repeat="valueAndCount in extraColumnHeaders[constants.KEY__EXTRACOLUMNS__RESULT_TYPE][constants.KEY__EXTRACOLUMNHEADERS__VALUES_AND_COUNTS]">
|
| +
|
| + <!-- columns that we filter using checkboxes -->
|
| + <td ng-repeat="category in [constants.KEY__EXTRACOLUMNS__RESULT_TYPE, constants.KEY__EXTRACOLUMNS__CONFIG]">
|
| + {{category}}
|
| + <br>
|
| + <label ng-repeat="valueAndCount in extraColumnHeaders[category][constants.KEY__EXTRACOLUMNHEADERS__VALUES_AND_COUNTS]">
|
| <input type="checkbox"
|
| - name="resultTypes"
|
| value="{{valueAndCount[0]}}"
|
| - ng-checked="!isValueInSet(valueAndCount[0], hiddenResultTypes)"
|
| - ng-click="toggleValueInSet(valueAndCount[0], hiddenResultTypes); setUpdatesPending(true)">
|
| + ng-checked="isValueInSet(valueAndCount[0], showingColumnValues[category])"
|
| + ng-click="toggleValueInSet(valueAndCount[0], showingColumnValues[category]); setUpdatesPending(true)">
|
| {{valueAndCount[0]}} ({{valueAndCount[1]}})<br>
|
| </label>
|
| - <button ng-click="hiddenResultTypes = {}; updateResults()">
|
| + <button ng-click="showingColumnValues[category] = {}; toggleValuesInSet(allColumnValues[category], showingColumnValues[category]); updateResults()"
|
| + ng-disabled="!readyToDisplay || allColumnValues[category].length == setSize(showingColumnValues[category])">
|
| all
|
| </button>
|
| - <button ng-click="hiddenResultTypes = {}; toggleValuesInSet(allResultTypes, hiddenResultTypes); updateResults()">
|
| + <button ng-click="showingColumnValues[category] = {}; updateResults()"
|
| + ng-disabled="!readyToDisplay || 0 == setSize(showingColumnValues[category])">
|
| none
|
| </button>
|
| - <button ng-click="toggleValuesInSet(allResultTypes, hiddenResultTypes); updateResults()">
|
| + <button ng-click="toggleValuesInSet(allColumnValues[category], showingColumnValues[category]); updateResults()">
|
| toggle
|
| </button>
|
| </td>
|
| +
|
| + <!-- columns that we filter using partial text match -->
|
| <td ng-repeat="category in [constants.KEY__EXTRACOLUMNS__BUILDER, constants.KEY__EXTRACOLUMNS__TEST]">
|
| {{category}}
|
| <br>
|
| @@ -106,26 +112,8 @@
|
| clear (show all)
|
| </button>
|
| </td>
|
| - <td>
|
| - config<br>
|
| - <label ng-repeat="valueAndCount in extraColumnHeaders[constants.KEY__EXTRACOLUMNS__CONFIG][constants.KEY__EXTRACOLUMNHEADERS__VALUES_AND_COUNTS]">
|
| - <input type="checkbox"
|
| - name="configs"
|
| - value="{{valueAndCount[0]}}"
|
| - ng-checked="!isValueInSet(valueAndCount[0], hiddenConfigs)"
|
| - ng-click="toggleValueInSet(valueAndCount[0], hiddenConfigs); setUpdatesPending(true)">
|
| - {{valueAndCount[0]}} ({{valueAndCount[1]}})<br>
|
| - </label>
|
| - <button ng-click="hiddenConfigs = {}; updateResults()">
|
| - all
|
| - </button>
|
| - <button ng-click="hiddenConfigs = {}; toggleValuesInSet(allConfigs, hiddenConfigs); updateResults()">
|
| - none
|
| - </button>
|
| - <button ng-click="toggleValuesInSet(allConfigs, hiddenConfigs); updateResults()">
|
| - toggle
|
| - </button>
|
| - </td>
|
| +
|
| + <!-- settings -->
|
| <td><table>
|
| <tr><td>
|
| <input type="checkbox" ng-model="showThumbnailsPending"
|
| @@ -244,7 +232,7 @@
|
| <table border="1" ng-app="diff_viewer"> <!-- results -->
|
| <tr>
|
| <!-- Most column headers are displayed in a common fashion... -->
|
| - <th ng-repeat="categoryName in [constants.KEY__EXTRACOLUMNS__RESULT_TYPE, constants.KEY__EXTRACOLUMNS__BUILDER, constants.KEY__EXTRACOLUMNS__TEST, constants.KEY__EXTRACOLUMNS__CONFIG]">
|
| + <th ng-repeat="categoryName in [constants.KEY__EXTRACOLUMNS__RESULT_TYPE, constants.KEY__EXTRACOLUMNS__CONFIG, constants.KEY__EXTRACOLUMNS__BUILDER, constants.KEY__EXTRACOLUMNS__TEST]">
|
| <input type="radio"
|
| name="sortColumnRadio"
|
| value="{{categoryName}}"
|
| @@ -307,24 +295,29 @@
|
| <tr ng-repeat="imagePair in limitedImagePairs" valign="top"
|
| ng-class-odd="'results-odd'" ng-class-even="'results-even'"
|
| results-updated-callback-directive>
|
| - <td>
|
| - {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__RESULT_TYPE]}}
|
| +
|
| + <!-- columns that we filter using checkboxes -->
|
| + <td ng-repeat="categoryName in [constants.KEY__EXTRACOLUMNS__RESULT_TYPE, constants.KEY__EXTRACOLUMNS__CONFIG]">
|
| + {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName]}}
|
| <br>
|
| <button class="show-only-button"
|
| ng-show="viewingTab == defaultTab"
|
| - ng-click="showOnlyResultType(imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__RESULT_TYPE])"
|
| - title="show only results of type {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__RESULT_TYPE]}}">
|
| + ng-disabled="1 == setSize(showingColumnValues[categoryName])"
|
| + ng-click="showOnlyColumnValue(categoryName, imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName])"
|
| + title="show only results of {{categoryName}} {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName]}}">
|
| show only
|
| </button>
|
| <br>
|
| <button class="show-all-button"
|
| ng-show="viewingTab == defaultTab"
|
| - ng-disabled="0 == setSize(hiddenResultTypes)"
|
| - ng-click="showAllResultTypes()"
|
| - title="show results of all types">
|
| + ng-disabled="allColumnValues[categoryName].length == setSize(showingColumnValues[categoryName])"
|
| + ng-click="showAllColumnValues(categoryName)"
|
| + title="show results of all {{categoryName}}s">
|
| show all
|
| </button>
|
| </td>
|
| +
|
| + <!-- columns that we filter using partial-text matching -->
|
| <td ng-repeat="categoryName in [constants.KEY__EXTRACOLUMNS__BUILDER, constants.KEY__EXTRACOLUMNS__TEST]">
|
| {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][categoryName]}}
|
| <br>
|
| @@ -344,24 +337,8 @@
|
| show all
|
| </button>
|
| </td>
|
| - <td>
|
| - {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__CONFIG]}}
|
| - <br>
|
| - <button class="show-only-button"
|
| - ng-show="viewingTab == defaultTab"
|
| - ng-click="showOnlyConfig(imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__CONFIG])"
|
| - title="show only results of config {{imagePair[constants.KEY__IMAGEPAIRS__EXTRACOLUMNS][constants.KEY__EXTRACOLUMNS__CONFIG]}}">
|
| - show only
|
| - </button>
|
| - <br>
|
| - <button class="show-all-button"
|
| - ng-show="viewingTab == defaultTab"
|
| - ng-disabled="0 == setSize(hiddenConfigs)"
|
| - ng-click="showAllConfigs()"
|
| - title="show results of all configs">
|
| - show all
|
| - </button>
|
| - </td>
|
| +
|
| + <!-- bugs -->
|
| <td>
|
| <a ng-repeat="bug in imagePair[constants.KEY__IMAGEPAIRS__EXPECTATIONS][constants.KEY__EXPECTATIONS__BUGS]"
|
| href="https://code.google.com/p/skia/issues/detail?id={{bug}}"
|
|
|