Chromium Code Reviews| Index: gm/rebaseline_server/static/view.html |
| =================================================================== |
| --- gm/rebaseline_server/static/view.html (revision 11911) |
| +++ gm/rebaseline_server/static/view.html (working copy) |
| @@ -6,6 +6,7 @@ |
| <title ng-bind="windowTitle"></title> |
| <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js"></script> |
| <script src="loader.js"></script> |
| + <link rel="stylesheet" href="view.css"> |
| </head> |
| <body> |
| @@ -13,16 +14,69 @@ |
| {{loadingMessage}} |
| </em> |
| - <div ng-hide="!categories"> |
| + <div ng-hide="!categories"><!-- everything: hide until data is loaded --> |
| + |
| <div ng-hide="!(header.isEditable && header.isExported)" |
| style="background-color:#ffbb00"> |
| WARNING! These results are editable and exported, so any user |
| who can connect to this server over the network can modify them. |
| </div> |
| + |
| + <div style="background-color:#bbffbb"><!-- TODOs --> |
| + <p> |
| + TODO(epoger): |
| + <input type="checkbox" name="showTodosCheckbox" value="true" |
| + ng-checked="showTodos == true" |
| + ng-click="showTodos = !showTodos"> |
| + show |
| + <ul ng-hide="!showTodos"> |
| + <li> |
| + If server was run with --reload flag, automatically check for |
| + new results and tell the user when new results are available |
| + (the user can reload the page if he wants to see them). |
| + </li><li> |
| + Add ability to filter builder and test names |
| + (using a free-form text field, with partial string match) |
| + </li><li> |
| + Add more columns, such as pixel diffs, notes/bugs, |
| + ignoreFailure boolean |
| + </li><li> |
| + Improve the column sorting, as per |
| + <a href="http://jsfiddle.net/vojtajina/js64b/14/"> |
| + http://jsfiddle.net/vojtajina/js64b/14/ |
| + </a> |
| + </li><li> |
| + Right now, if you change which column is used to |
| + sort the data, the column widths may fluctuate based on the |
| + longest string <i>currently visible</i> within the top {{displayLimit}} |
| + results. Can we fix the column widths to be wide enough to hold |
| + any result, even the currently hidden results? |
| + </li> |
| + </ul> |
| + </div><!-- TODOs --> |
| + |
| <div ng-hide="!(header.timeUpdated)"> |
| Results current as of {{localTimeString(header.timeUpdated)}} |
| </div> |
| - <table border="1"> |
| + |
| + <div style="font-size:20px"><!-- tabs --> |
| + <div ng-repeat="tab in tabs" |
| + style="display:inline-block"> |
| + <div class="tab-{{tab == viewingTab}}" |
| + style="display:inline-block" |
| + ng-click="setViewingTab(tab)"> |
| + {{tab}} ({{numResultsPerTab[tab]}}) |
|
epoger
2013/10/22 21:17:45
I figured the typical rebaselining workflow would
|
| + </div> |
| + <div style="display:inline-block"> |
| + |
| + </div> |
| + </div> |
| + </div><!-- tabs --> |
| + |
| + <div class="tab-true"><!-- display of current tab --> |
| + |
| + <br> |
| + <table ng-hide="viewingTab != defaultTab" border="1"> |
| <tr> |
| <th colspan="2"> |
| Filters |
| @@ -80,49 +134,52 @@ |
| </tr> |
| </table> |
| - <p> |
| - TODO(epoger): |
| - <input type="checkbox" name="showTodosCheckbox" value="true" |
| - ng-checked="showTodos == true" |
| - ng-click="showTodos = !showTodos"> |
| - show |
| - <ul ng-hide="!showTodos"> |
| - <li> |
| - Implement editing of results (we have added the --editable |
| - flag to the server, but it's not fully implemented yet). |
| - <div ng-hide="!header.isEditable"> |
| - Currently selected items are: {{selectedItems}} |
| + <p> |
| + |
| + <div ng-hide="'Pending Approval' != viewingTab"> |
| + <div style="display:inline-block"> |
| + <button style="font-size:20px" |
| + ng-click="submitApprovals(filteredTestData)" |
| + ng-disabled="submitPending || (filteredTestData.length == 0)"> |
| + Update these {{filteredTestData.length}} expectations on the server |
| + </button> |
| + </div> |
| + <div style="display:inline-block"> |
| + <div style="font-size:20px" |
| + ng-hide="!submitPending"> |
| + Submitting, please wait... |
| </div> |
| - </li><li> |
| - If server was run with --reload flag, automatically check for |
| - new results and tell the user when new results are available |
| - (the user can reload the page if he wants to see them). |
| - </li><li> |
| - Add ability to filter builder and test names |
| - (using a free-form text field, with partial string match) |
| - </li><li> |
| - Add more columns, such as pixel diffs, notes/bugs, |
| - ignoreFailure boolean |
| - </li><li> |
| - Improve the column sorting, as per |
| - <a href="http://jsfiddle.net/vojtajina/js64b/14/"> |
| - http://jsfiddle.net/vojtajina/js64b/14/ |
| - </a> |
| - </li><li> |
| - Right now, if you change which column is used to |
| - sort the data, the column widths may fluctuate based on the |
| - longest string <i>currently visible</i> within the top {{displayLimit}} |
| - results. Can we fix the column widths to be wide enough to hold |
| - any result, even the currently hidden results? |
| - </li> |
| - </ul> |
| + </div> |
| + </div> |
| + |
| <p> |
| - Found {{filteredTestData.length}} matches, and displaying the first |
| - {{displayLimit}}: <br> |
| - <!-- TODO(epoger): If (displayLimit <= filteredTestData.length), |
| - modify this message to indicate that all results are shown. --> |
| - (click on the column header radio buttons to re-sort by that column) |
| + |
| + <div> |
| + <div style="float:left"> |
| + Found {{filteredTestData.length}} matches; |
| + <span ng-hide="filteredTestData.length <= limitedTestData.length"> |
| + displaying the first {{limitedTestData.length}} |
| + </span> |
| + <span ng-hide="filteredTestData.length > limitedTestData.length"> |
| + displaying them all |
| + </span> |
| + <br> |
| + (click on the column header radio buttons to re-sort by that column) |
| + </div> |
| + <div style="float:right"> |
| + <div ng-repeat="otherTab in tabs"> |
| + <button ng-click="moveSelectedItemsToTab(otherTab)" |
| + ng-disabled="selectedItems.length == 0" |
| + ng-hide="otherTab == viewingTab"> |
| + {{selectedItems.length}} move selected tests to {{otherTab}} tab |
| + </button> |
| + </div> |
| + </div> |
| + <div style="clear:both"> |
| + </div> |
| + </div> |
| <br> |
| + |
| <table border="1"> |
| <tr> |
| <th ng-repeat="categoryName in ['resultType', 'builder', 'test', 'config']"> |
| @@ -149,7 +206,7 @@ |
| ng-click="sortResultsBy('actualHashDigest')"> |
| actual image |
| </th> |
| - <th ng-hide="!header.isEditable"> |
| + <th> |
| <!-- item-selection checkbox column --> |
| </th> |
| </tr> |
| @@ -168,7 +225,7 @@ |
| <img width="{{imageSize}}" src="http://chromium-skia-gm.commondatastorage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDigest}}.png"/> |
| </a> |
| </td> |
| - <td ng-hide="!header.isEditable"> |
| + <td> |
| <input type="checkbox" |
| name="rowSelect" |
| value="{{result.index}}" |
| @@ -176,7 +233,8 @@ |
| ng-click="toggleItemSelected(result.index)"> |
| </tr> |
| </table> |
| - </div> |
| + </div><!-- display of current tab --> |
| + </div><!-- everything: hide until data is loaded --> |
| <!-- TODO(epoger): Can we get the base URLs (commondatastorage and |
| issues list) from |