diff options
author | epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-09-30 15:06:25 +0000 |
---|---|---|
committer | epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-09-30 15:06:25 +0000 |
commit | afaad3dd7002feb6e69983ddc4e5148d7803baed (patch) | |
tree | 9933a754bc7a94efa3d88ff348d8647e91a758ed /gm/rebaseline_server/static | |
parent | 5e49738c99f573b2e5ba342f6ec8bfa3bcf125e4 (diff) |
HTTP GM results viewer: server now returns category summaries along with testData
(SkipBuildbotRuns)
R=borenet@google.com
Review URL: https://codereview.chromium.org/25045003
git-svn-id: http://skia.googlecode.com/svn/trunk@11520 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gm/rebaseline_server/static')
-rw-r--r-- | gm/rebaseline_server/static/loader.js | 8 | ||||
-rw-r--r-- | gm/rebaseline_server/static/view.html | 55 |
2 files changed, 36 insertions, 27 deletions
diff --git a/gm/rebaseline_server/static/loader.js b/gm/rebaseline_server/static/loader.js index 68da73afda..d08fdccbf6 100644 --- a/gm/rebaseline_server/static/loader.js +++ b/gm/rebaseline_server/static/loader.js @@ -1,7 +1,7 @@ /* * Loader: - * Reads GM result reports written out by results_loader.py, and imports - * their data into $scope.results . + * Reads GM result reports written out by results.py, and imports + * them into $scope.categories and $scope.testData . */ var Loader = angular.module( 'Loader', @@ -12,8 +12,10 @@ Loader.controller( function($scope, $http) { $http.get("/results/all").then( function(response) { - $scope.results = response.data; + $scope.categories = response.data.categories; + $scope.testData = response.data.testData; $scope.sortColumn = 'test'; + $scope.showResultsOfType = 'failed'; } ); } diff --git a/gm/rebaseline_server/static/view.html b/gm/rebaseline_server/static/view.html index 89ef538271..5913e5c2ca 100644 --- a/gm/rebaseline_server/static/view.html +++ b/gm/rebaseline_server/static/view.html @@ -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> - - 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 - (e.g. http://www.appelsiini.net/projects/lazyload ), so that - the images are only loaded as they become viewable... - --> - <!-- - <option>succeeded</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). - --> - </select> + + 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="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> |