Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(490)

Side by Side Diff: gm/rebaseline_server/static/view.html

Issue 28903008: rebaseline_server: add tabs, and ability to submit new baselines to the server (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: more Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gm/rebaseline_server/static/view.css ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 2
3 <html ng-app="Loader" ng-controller="Loader.Controller"> 3 <html ng-app="Loader" ng-controller="Loader.Controller">
4 4
5 <head> 5 <head>
6 <title ng-bind="windowTitle"></title> 6 <title ng-bind="windowTitle"></title>
7 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js" ></script> 7 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js" ></script>
8 <script src="loader.js"></script> 8 <script src="loader.js"></script>
9 <link rel="stylesheet" href="view.css">
9 </head> 10 </head>
10 11
11 <body> 12 <body>
12 <em> 13 <em>
13 {{loadingMessage}} 14 {{loadingMessage}}
14 </em> 15 </em>
15 16
16 <div ng-hide="!categories"> 17 <div ng-hide="!categories"><!-- everything: hide until data is loaded -->
18
17 <div ng-hide="!(header.isEditable && header.isExported)" 19 <div ng-hide="!(header.isEditable && header.isExported)"
18 style="background-color:#ffbb00"> 20 style="background-color:#ffbb00">
19 WARNING! These results are editable and exported, so any user 21 WARNING! These results are editable and exported, so any user
20 who can connect to this server over the network can modify them. 22 who can connect to this server over the network can modify them.
21 </div> 23 </div>
24
25 <div style="background-color:#bbffbb"><!-- TODOs -->
26 <p>
27 TODO(epoger):
28 <input type="checkbox" name="showTodosCheckbox" value="true"
29 ng-checked="showTodos == true"
30 ng-click="showTodos = !showTodos">
31 show
32 <ul ng-hide="!showTodos">
33 <li>
34 If server was run with --reload flag, automatically check for
35 new results and tell the user when new results are available
36 (the user can reload the page if he wants to see them).
37 </li><li>
38 Add ability to filter builder and test names
39 (using a free-form text field, with partial string match)
40 </li><li>
41 Add more columns, such as pixel diffs, notes/bugs,
42 ignoreFailure boolean
43 </li><li>
44 Improve the column sorting, as per
45 <a href="http://jsfiddle.net/vojtajina/js64b/14/">
46 http://jsfiddle.net/vojtajina/js64b/14/
47 </a>
48 </li><li>
49 Right now, if you change which column is used to
50 sort the data, the column widths may fluctuate based on the
51 longest string <i>currently visible</i> within the top {{displayLimit} }
52 results. Can we fix the column widths to be wide enough to hold
53 any result, even the currently hidden results?
54 </li>
55 </ul>
56 </div><!-- TODOs -->
57
22 <div ng-hide="!(header.timeUpdated)"> 58 <div ng-hide="!(header.timeUpdated)">
23 Results current as of {{localTimeString(header.timeUpdated)}} 59 Results current as of {{localTimeString(header.timeUpdated)}}
24 </div> 60 </div>
25 <table border="1"> 61
62 <div style="font-size:20px"><!-- tabs -->
63 <div ng-repeat="tab in tabs"
64 style="display:inline-block">
65 <div class="tab-{{tab == viewingTab}}"
66 style="display:inline-block"
67 ng-click="setViewingTab(tab)">
68 &nbsp;{{tab}} ({{numResultsPerTab[tab]}})&nbsp;
69 </div>
70 <div style="display:inline-block">
71 &nbsp;
72 </div>
73 </div>
74 </div><!-- tabs -->
75
76 <div class="tab-true"><!-- display of current tab -->
77
78 <br>
79 <table ng-hide="viewingTab != defaultTab" border="1">
26 <tr> 80 <tr>
27 <th colspan="2"> 81 <th colspan="2">
28 Filters 82 Filters
29 </th> 83 </th>
30 <th> 84 <th>
31 Settings 85 Settings
32 </th> 86 </th>
33 </tr> 87 </tr>
34 <tr valign="top"> 88 <tr valign="top">
35 <td> 89 <td>
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 <button style="font-size:30px" 127 <button style="font-size:30px"
74 ng-click="updateResults()" 128 ng-click="updateResults()"
75 ng-disabled="!areUpdatesPending"> 129 ng-disabled="!areUpdatesPending">
76 Update Results 130 Update Results
77 </button> 131 </button>
78 </td></tr> 132 </td></tr>
79 </tr></table></td> 133 </tr></table></td>
80 </tr> 134 </tr>
81 </table> 135 </table>
82 136
83 <p> 137 <p>
84 TODO(epoger): 138
85 <input type="checkbox" name="showTodosCheckbox" value="true" 139 <div ng-hide="'Pending Approval' != viewingTab">
86 ng-checked="showTodos == true" 140 <div style="display:inline-block">
87 ng-click="showTodos = !showTodos"> 141 <button style="font-size:20px"
88 show 142 ng-click="submitApprovals(filteredTestData)"
89 <ul ng-hide="!showTodos"> 143 ng-disabled="submitPending || (filteredTestData.length == 0)">
90 <li> 144 Update these {{filteredTestData.length}} expectations on the server
91 Implement editing of results (we have added the --editable 145 </button>
92 flag to the server, but it&#39;s not fully implemented yet). 146 </div>
93 <div ng-hide="!header.isEditable"> 147 <div style="display:inline-block">
94 Currently selected items are: {{selectedItems}} 148 <div style="font-size:20px"
149 ng-hide="!submitPending">
150 Submitting, please wait...
95 </div> 151 </div>
96 </li><li> 152 </div>
97 If server was run with --reload flag, automatically check for 153 </div>
98 new results and tell the user when new results are available 154
99 (the user can reload the page if he wants to see them).
100 </li><li>
101 Add ability to filter builder and test names
102 (using a free-form text field, with partial string match)
103 </li><li>
104 Add more columns, such as pixel diffs, notes/bugs,
105 ignoreFailure boolean
106 </li><li>
107 Improve the column sorting, as per
108 <a href="http://jsfiddle.net/vojtajina/js64b/14/">
109 http://jsfiddle.net/vojtajina/js64b/14/
110 </a>
111 </li><li>
112 Right now, if you change which column is used to
113 sort the data, the column widths may fluctuate based on the
114 longest string <i>currently visible</i> within the top {{displayLimit} }
115 results. Can we fix the column widths to be wide enough to hold
116 any result, even the currently hidden results?
117 </li>
118 </ul>
119 <p> 155 <p>
120 Found {{filteredTestData.length}} matches, and displaying the first 156
121 {{displayLimit}}: <br> 157 <div>
122 <!-- TODO(epoger): If (displayLimit <= filteredTestData.length), 158 <div style="float:left">
123 modify this message to indicate that all results are shown. --> 159 Found {{filteredTestData.length}} matches;
124 (click on the column header radio buttons to re-sort by that column) 160 <span ng-hide="filteredTestData.length <= limitedTestData.length">
161 displaying the first {{limitedTestData.length}}
162 </span>
163 <span ng-hide="filteredTestData.length > limitedTestData.length">
164 displaying them all
165 </span>
166 <br>
167 (click on the column header radio buttons to re-sort by that column)
168 </div>
169 <div style="float:right">
170 <div ng-repeat="otherTab in tabs">
171 <button ng-click="moveSelectedItemsToTab(otherTab)"
172 ng-disabled="selectedItems.length == 0"
173 ng-hide="otherTab == viewingTab">
174 {{selectedItems.length}} move selected tests to {{otherTab}} tab
175 </button>
176 </div>
177 </div>
178 <div style="clear:both">
179 </div>
180 </div>
125 <br> 181 <br>
182
126 <table border="1"> 183 <table border="1">
127 <tr> 184 <tr>
128 <th ng-repeat="categoryName in ['resultType', 'builder', 'test', 'conf ig']"> 185 <th ng-repeat="categoryName in ['resultType', 'builder', 'test', 'conf ig']">
129 <input type="radio" 186 <input type="radio"
130 name="sortColumnRadio" 187 name="sortColumnRadio"
131 value="{{categoryName}}" 188 value="{{categoryName}}"
132 ng-checked="(sortColumn == categoryName)" 189 ng-checked="(sortColumn == categoryName)"
133 ng-click="sortResultsBy(categoryName)"> 190 ng-click="sortResultsBy(categoryName)">
134 {{categoryName}} 191 {{categoryName}}
135 </th> 192 </th>
136 <th> 193 <th>
137 <input type="radio" 194 <input type="radio"
138 name="sortColumnRadio" 195 name="sortColumnRadio"
139 value="expectedHashDigest" 196 value="expectedHashDigest"
140 ng-checked="(sortColumn == 'expectedHashDigest')" 197 ng-checked="(sortColumn == 'expectedHashDigest')"
141 ng-click="sortResultsBy('expectedHashDigest')"> 198 ng-click="sortResultsBy('expectedHashDigest')">
142 expected image 199 expected image
143 </th> 200 </th>
144 <th> 201 <th>
145 <input type="radio" 202 <input type="radio"
146 name="sortColumnRadio" 203 name="sortColumnRadio"
147 value="actualHashDigest" 204 value="actualHashDigest"
148 ng-checked="(sortColumn == 'actualHashDigest')" 205 ng-checked="(sortColumn == 'actualHashDigest')"
149 ng-click="sortResultsBy('actualHashDigest')"> 206 ng-click="sortResultsBy('actualHashDigest')">
150 actual image 207 actual image
151 </th> 208 </th>
152 <th ng-hide="!header.isEditable"> 209 <th>
153 <!-- item-selection checkbox column --> 210 <!-- item-selection checkbox column -->
154 </th> 211 </th>
155 </tr> 212 </tr>
156 <tr ng-repeat="result in limitedTestData"> 213 <tr ng-repeat="result in limitedTestData">
157 <td>{{result.resultType}}</td> 214 <td>{{result.resultType}}</td>
158 <td>{{result.builder}}</td> 215 <td>{{result.builder}}</td>
159 <td>{{result.test}}</td> 216 <td>{{result.test}}</td>
160 <td>{{result.config}}</td> 217 <td>{{result.config}}</td>
161 <td> 218 <td>
162 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHa shDigest}}.png"> 219 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHa shDigest}}.png">
163 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.e xpectedHashDigest}}.png"/> 220 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.e xpectedHashDigest}}.png"/>
164 </a> 221 </a>
165 </td> 222 </td>
166 <td> 223 <td>
167 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDi gest}}.png"> 224 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDi gest}}.png">
168 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.act ualHashDigest}}.png"/> 225 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.act ualHashDigest}}.png"/>
169 </a> 226 </a>
170 </td> 227 </td>
171 <td ng-hide="!header.isEditable"> 228 <td>
172 <input type="checkbox" 229 <input type="checkbox"
173 name="rowSelect" 230 name="rowSelect"
174 value="{{result.index}}" 231 value="{{result.index}}"
175 ng-checked="isItemSelected(result.index)" 232 ng-checked="isItemSelected(result.index)"
176 ng-click="toggleItemSelected(result.index)"> 233 ng-click="toggleItemSelected(result.index)">
177 </tr> 234 </tr>
178 </table> 235 </table>
179 </div> 236 </div><!-- display of current tab -->
237 </div><!-- everything: hide until data is loaded -->
180 238
181 <!-- TODO(epoger): Can we get the base URLs (commondatastorage and 239 <!-- TODO(epoger): Can we get the base URLs (commondatastorage and
182 issues list) from 240 issues list) from
183 http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json 241 http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json
184 ? I tried importing the 242 ? I tried importing the
185 http://skia.googlecode.com/svn/buildbot/skia_tools.js script and using 243 http://skia.googlecode.com/svn/buildbot/skia_tools.js script and using
186 that to do so, but I got Access-Control-Allow-Origin errors. 244 that to do so, but I got Access-Control-Allow-Origin errors.
187 --> 245 -->
188 246
189 </body> 247 </body>
190 </html> 248 </html>
OLDNEW
« no previous file with comments | « gm/rebaseline_server/static/view.css ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698