| Index: gm/rebaseline_server/static/view.html
 | 
| ===================================================================
 | 
| --- gm/rebaseline_server/static/view.html	(revision 11507)
 | 
| +++ gm/rebaseline_server/static/view.html	(working copy)
 | 
| @@ -15,6 +15,9 @@
 | 
|    --export mode
 | 
|    -->
 | 
|  
 | 
| +  <!-- TODO(epoger): Add some indication of how old the
 | 
| +  expected/actual data is -->
 | 
| +
 | 
|   Settings:
 | 
|    <ul>
 | 
|      <!-- TODO(epoger): Now that we get multiple result types in a single
 | 
| @@ -24,45 +27,49 @@
 | 
|      <li>show results of type
 | 
|        <select ng-model="showResultsOfType"
 | 
|                ng-init="showResultsOfType='failed'">
 | 
| -        <option>failed</option>
 | 
| -        <option>failure-ignored</option>
 | 
| -        <!--
 | 
| -        <option>no-comparison</option>
 | 
| +        <option ng-repeat="(resultType, count) in categories['resultType']"
 | 
| +                value="{{resultType}}">
 | 
| +          {{resultType}} ({{count}})
 | 
| +        </option>
 | 
| +      </select>
 | 
| +      <!--
 | 
| +        TODO(epoger): See results.py: for now, I have disabled
 | 
| +        returning succeeded tests as part of the JSON, because it
 | 
| +        makes the returned JSON too big (and slows down the client).
 | 
|  
 | 
| -        TODO(epoger): For now, I have disabled viewing the
 | 
| -        no-comparison results because there are so many of them, and
 | 
| -        the browser takes forever to download all the images.  Maybe
 | 
| -        we should use some sort of lazy-loading technique
 | 
| +        Also, we should use some sort of lazy-loading technique
 | 
|          (e.g. http://www.appelsiini.net/projects/lazyload ), so that
 | 
|          the images are only loaded as they become viewable...
 | 
| -        -->
 | 
| -        <!--
 | 
| -        <option>succeeded</option>
 | 
| -
 | 
| -        TODO(epoger): See results.py: for now, I have disabled
 | 
| -        returning succeeded tests as part of the JSON, because it
 | 
| -        makes the returned JSON too big (and slows down the client).
 | 
| -        -->
 | 
| -      </select>
 | 
| +        that will help with long lists like resultType='no-comparison'.
 | 
| +      -->
 | 
| +      <br>
 | 
| +      TODO(epoger): 'no-comparison' will probably take forever;
 | 
| +      see HTML source for details
 | 
| +      <br>
 | 
| +      TODO(epoger): 'succeeded' will not show any results;
 | 
| +      see HTML source for details
 | 
|      </li>
 | 
|      <li>image size
 | 
| -      <input type="text" ng-model="imageSize" ng-init="imageSize=100"
 | 
| +      <input type="text" ng-model="imageSizePending"
 | 
| +             ng-init="imageSizePending=100; imageSize=100"
 | 
|               maxlength="4"/>
 | 
| +      <button ng:click="imageSize=imageSizePending">apply</button>
 | 
|      </li>
 | 
|    </ul>
 | 
|  
 | 
|      <p>
 | 
| +      Click on the column header radio buttons to re-sort by that column...<br>
 | 
|        <!-- TODO(epoger): Show some sort of "loading" message, instead of
 | 
|             an empty table, while the data is loading.  Otherwise, if there are
 | 
|             a lot of failures and it takes a long time to load them, the user
 | 
|             might think there are NO failures and leave the page! -->
 | 
|        <table border="1">
 | 
|          <tr>
 | 
| -          <th ng:click="sortColumn='builder'">Builder</th>
 | 
| -          <th ng:click="sortColumn='test'">Test</th>
 | 
| -          <th ng:click="sortColumn='config'">Config</th>
 | 
| -          <th ng:click="sortColumn='expectedHashDigest'">Expected Image</th>
 | 
| -          <th ng:click="sortColumn='actualHashDigest'">Actual Image</th>
 | 
| +          <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" value="builder">Builder</input></th>
 | 
| +          <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" value="test">Test</input></th>
 | 
| +          <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" value="config">Config</input></th>
 | 
| +          <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" value="expectedHashDigest">Expected Image</input></th>
 | 
| +          <th><input ng-model="sortColumn" name="sortColumnRadio" type="radio" value="actualHashDigest">Actual Image</input></th>
 | 
|            <!-- TODO(epoger): Add more columns, such as...
 | 
|                 pixel diff
 | 
|                 notes/bugs
 | 
| @@ -71,7 +78,7 @@
 | 
|          </tr>
 | 
|          <!-- TODO(epoger): improve the column sorting, as per
 | 
|               http://jsfiddle.net/vojtajina/js64b/14/ -->
 | 
| -        <tr ng-repeat="result in results | filter: { resultType: showResultsOfType } | orderBy: sortColumn">
 | 
| +        <tr ng-repeat="result in testData | filter: { resultType: showResultsOfType } | orderBy: sortColumn">
 | 
|            <td>{{result.builder}}</td>
 | 
|            <td>{{result.test}}</td>
 | 
|            <td>{{result.config}}</td>
 | 
| 
 |