| <!DOCTYPE html> |
| |
| <html ng-app="Loader"> |
| |
| <head> |
| <title>Current GM Results</title> |
| <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js"></script> |
| <script src="loader.js"></script> |
| </head> |
| |
| <body> |
| <div ng-controller="Loader.Controller"> |
| |
| <!-- TODO(epoger): Add a warning banner if the server is running in |
| --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 |
| fetch, modify the UI: add a column showing resultType, and allow |
| the user to sort/filter on that column just like all the |
| others. --> |
| <li>show results of type |
| <select ng-model="showResultsOfType" |
| ng-init="showResultsOfType='failed'"> |
| <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). |
| |
| 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... |
| 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="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><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 |
| ignoreFailure boolean |
| --> |
| </tr> |
| <!-- TODO(epoger): improve the column sorting, as per |
| http://jsfiddle.net/vojtajina/js64b/14/ --> |
| <tr ng-repeat="result in testData | filter: { resultType: showResultsOfType } | orderBy: sortColumn"> |
| <td>{{result.builder}}</td> |
| <td>{{result.test}}</td> |
| <td>{{result.config}}</td> |
| <td> |
| <a target="_blank" href="http://chromium-skia-gm.commondatastorage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHashDigest}}.png"> |
| <img width="{{imageSize}}" src="http://chromium-skia-gm.commondatastorage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHashDigest}}.png"/> |
| </a> |
| </td> |
| <td> |
| <a target="_blank" href="http://chromium-skia-gm.commondatastorage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDigest}}.png"> |
| <img width="{{imageSize}}" src="http://chromium-skia-gm.commondatastorage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDigest}}.png"/> |
| </a> |
| </td> |
| </tr> |
| </table> |
| </div> |
| |
| <!-- TODO(epoger): Can we get the base URLs (commondatastorage and |
| issues list) from |
| http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json |
| ? I tried importing the |
| http://skia.googlecode.com/svn/buildbot/skia_tools.js script and using |
| that to do so, but I got Access-Control-Allow-Origin errors. |
| --> |
| |
| </body> |
| </html> |