skia2/gm/rebaseline_server/static/view.html
2013-10-02 18:57:48 +00:00

165 lines
5.7 KiB
HTML

<!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 -->
<em ng-hide="categories">
Loading data, please wait...
</em>
<div ng-hide="!categories">
<table border="1">
<tr>
<th colspan="2">
Filters
</th>
<th>
Settings
</th>
</tr>
<tr valign="top">
<td>
resultType<br>
<label ng-repeat="(resultType, count) in categories['resultType']">
<input type="checkbox"
name="resultTypes"
value="{{resultType}}"
ng-checked="!isHiddenResultType(resultType)"
ng-click="toggleHiddenResultType(resultType)">
{{resultType}} ({{count}})<br>
</label>
</td>
<td>
config<br>
<label ng-repeat="(config, count) in categories['config']">
<input type="checkbox"
name="configs"
value="{{config}}"
ng-checked="!isHiddenConfig(config)"
ng-click="toggleHiddenConfig(config)">
{{config}} ({{count}})<br>
</label>
</td>
<td><table>
<tr><td>
Image size
<input type="text" ng-model="imageSizePending"
ng-init="imageSizePending=100"
ng-change="areUpdatesPending = true"
maxlength="4"/>
</td></tr>
<tr><td>
Max records to display
<input type="text" ng-model="displayLimitPending"
ng-init="displayLimitPending=50"
ng-change="areUpdatesPending = true"
maxlength="4"/>
</td></tr>
<tr><td>
<button style="font-size:30px"
ng-click="updateResults()"
ng-disabled="!areUpdatesPending">
Update Results
</button>
</td></tr>
</tr></table></td>
</tr>
</table>
<p>
TODO(epoger): Add ability to filter builder and test names
(using a free-form text field, with partial string match)
<br>
TODO(epoger): Add more columns, such as pixel diffs, notes/bugs,
ignoreFailure boolean
<br>
TODO(epoger): Improve the column sorting, as per
<a href="http://jsfiddle.net/vojtajina/js64b/14/">
http://jsfiddle.net/vojtajina/js64b/14/
</a>
<br>
TODO(epoger): 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?
<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)
<br>
<table border="1">
<tr>
<th ng-repeat="categoryName in ['resultType', 'builder', 'test', 'config']">
<input type="radio"
name="sortColumnRadio"
value="{{categoryName}}"
ng-checked="(sortColumn == categoryName)"
ng-click="sortResultsBy(categoryName)">
{{categoryName}}
</th>
<th>
<input type="radio"
name="sortColumnRadio"
value="expectedHashDigest"
ng-checked="(sortColumn == 'expectedHashDigest')"
ng-click="sortResultsBy('expectedHashDigest')">
expected image
</th>
<th>
<input type="radio"
name="sortColumnRadio"
value="actualHashDigest"
ng-checked="(sortColumn == 'actualHashDigest')"
ng-click="sortResultsBy('actualHashDigest')">
actual image
</th>
</tr>
<tr ng-repeat="result in limitedTestData">
<td>{{result.resultType}}</td>
<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>
</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>