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

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: tabs_to_spaces 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
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 -->
epoger 2013/10/19 01:15:56 The TODO section just moved up from below.
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 Implement editing of results (we have added the --editable
35 flag to the server, but it&#39;s not fully implemented yet).
36 </li><li>
37 If server was run with --reload flag, automatically check for
38 new results and tell the user when new results are available
39 (the user can reload the page if he wants to see them).
40 </li><li>
41 Add ability to filter builder and test names
42 (using a free-form text field, with partial string match)
43 </li><li>
44 Add more columns, such as pixel diffs, notes/bugs,
45 ignoreFailure boolean
46 </li><li>
47 Improve the column sorting, as per
48 <a href="http://jsfiddle.net/vojtajina/js64b/14/">
49 http://jsfiddle.net/vojtajina/js64b/14/
50 </a>
51 </li><li>
52 Right now, if you change which column is used to
53 sort the data, the column widths may fluctuate based on the
54 longest string <i>currently visible</i> within the top {{displayLimit} }
55 results. Can we fix the column widths to be wide enough to hold
56 any result, even the currently hidden results?
57 </li>
58 </ul>
59 </div><!-- TODOs -->
60
22 <div ng-hide="!(header.timeUpdated)"> 61 <div ng-hide="!(header.timeUpdated)">
23 Results current as of {{localTimeString(header.timeUpdated)}} 62 Results current as of {{localTimeString(header.timeUpdated)}}
24 </div> 63 </div>
25 <table border="1"> 64
65 <div style="font-size:20px"><!-- tabs -->
66 <div ng-repeat="tab in tabs"
67 style="display:inline-block">
68 <div class="tab-{{tab == viewingTab}}"
epoger 2013/10/19 01:15:56 World's ugliest tabs. But they work.
69 style="display:inline-block"
70 ng-click="setViewingTab(tab)">
71 &nbsp;{{tab}}&nbsp;
72 </div>
73 <div style="display:inline-block">
74 &nbsp;
75 </div>
76 </div>
77 </div><!-- tabs -->
78
79 <div class="tab-true"><!-- display of current tab -->
80
81 <br>
82 <table ng-hide="viewingTab != defaultTab" border="1">
26 <tr> 83 <tr>
27 <th colspan="2"> 84 <th colspan="2">
28 Filters 85 Filters
29 </th> 86 </th>
30 <th> 87 <th>
31 Settings 88 Settings
32 </th> 89 </th>
33 </tr> 90 </tr>
34 <tr valign="top"> 91 <tr valign="top">
35 <td> 92 <td>
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 <button style="font-size:30px" 130 <button style="font-size:30px"
74 ng-click="updateResults()" 131 ng-click="updateResults()"
75 ng-disabled="!areUpdatesPending"> 132 ng-disabled="!areUpdatesPending">
76 Update Results 133 Update Results
77 </button> 134 </button>
78 </td></tr> 135 </td></tr>
79 </tr></table></td> 136 </tr></table></td>
80 </tr> 137 </tr>
81 </table> 138 </table>
82 139
83 <p>
84 TODO(epoger):
85 <input type="checkbox" name="showTodosCheckbox" value="true"
86 ng-checked="showTodos == true"
87 ng-click="showTodos = !showTodos">
88 show
89 <ul ng-hide="!showTodos">
90 <li>
91 Implement editing of results (we have added the --editable
92 flag to the server, but it&#39;s not fully implemented yet).
93 <div ng-hide="!header.isEditable">
94 Currently selected items are: {{selectedItems}}
95 </div>
96 </li><li>
97 If server was run with --reload flag, automatically check for
98 new results and tell the user when new results are available
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> 140 <p>
120 Found {{filteredTestData.length}} matches, and displaying the first 141
121 {{displayLimit}}: <br> 142 <div ng-hide="'Pending Approval' != viewingTab">
122 <!-- TODO(epoger): If (displayLimit <= filteredTestData.length), 143 TODO(epoger): This is where we will add a
123 modify this message to indicate that all results are shown. --> 144 <button>
124 (click on the column header radio buttons to re-sort by that column) 145 send approved items to server
146 </button>
147 button.
148 <p>
149 </div>
150
151 <div>
152 <div style="float:left">
153 Found {{filteredTestData.length}} matches;
154 <span ng-hide="filteredTestData.length <= limitedTestData.length">
155 displaying the first {{limitedTestData.length}}
156 </span>
157 <span ng-hide="filteredTestData.length > limitedTestData.length">
158 displaying them all
159 </span>
160 <br>
161 (click on the column header radio buttons to re-sort by that column)
162 </div>
163 <div style="float:right">
164 <button ng-click="moveSelectedItems()"
165 ng-disabled="selectedItems.length == 0">
166 Move selected tests
167 </button>
168 to tab
169 <select ng-model="newTab"
170 ng-options="d for d in tabs">
171 </select>
172 </div>
173 <div style="clear:both">
174 </div>
175 </div>
125 <br> 176 <br>
177
126 <table border="1"> 178 <table border="1">
127 <tr> 179 <tr>
128 <th ng-repeat="categoryName in ['resultType', 'builder', 'test', 'conf ig']"> 180 <th ng-repeat="categoryName in ['resultType', 'builder', 'test', 'conf ig']">
129 <input type="radio" 181 <input type="radio"
130 name="sortColumnRadio" 182 name="sortColumnRadio"
131 value="{{categoryName}}" 183 value="{{categoryName}}"
132 ng-checked="(sortColumn == categoryName)" 184 ng-checked="(sortColumn == categoryName)"
133 ng-click="sortResultsBy(categoryName)"> 185 ng-click="sortResultsBy(categoryName)">
134 {{categoryName}} 186 {{categoryName}}
135 </th> 187 </th>
136 <th> 188 <th>
137 <input type="radio" 189 <input type="radio"
138 name="sortColumnRadio" 190 name="sortColumnRadio"
139 value="expectedHashDigest" 191 value="expectedHashDigest"
140 ng-checked="(sortColumn == 'expectedHashDigest')" 192 ng-checked="(sortColumn == 'expectedHashDigest')"
141 ng-click="sortResultsBy('expectedHashDigest')"> 193 ng-click="sortResultsBy('expectedHashDigest')">
142 expected image 194 expected image
143 </th> 195 </th>
144 <th> 196 <th>
145 <input type="radio" 197 <input type="radio"
146 name="sortColumnRadio" 198 name="sortColumnRadio"
147 value="actualHashDigest" 199 value="actualHashDigest"
148 ng-checked="(sortColumn == 'actualHashDigest')" 200 ng-checked="(sortColumn == 'actualHashDigest')"
149 ng-click="sortResultsBy('actualHashDigest')"> 201 ng-click="sortResultsBy('actualHashDigest')">
150 actual image 202 actual image
151 </th> 203 </th>
152 <th ng-hide="!header.isEditable"> 204 <th>
153 <!-- item-selection checkbox column --> 205 <!-- item-selection checkbox column -->
154 </th> 206 </th>
155 </tr> 207 </tr>
156 <tr ng-repeat="result in limitedTestData"> 208 <tr ng-repeat="result in limitedTestData">
157 <td>{{result.resultType}}</td> 209 <td>{{result.resultType}}</td>
158 <td>{{result.builder}}</td> 210 <td>{{result.builder}}</td>
159 <td>{{result.test}}</td> 211 <td>{{result.test}}</td>
160 <td>{{result.config}}</td> 212 <td>{{result.config}}</td>
161 <td> 213 <td>
162 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHa shDigest}}.png"> 214 <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"/> 215 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.e xpectedHashDigest}}.png"/>
164 </a> 216 </a>
165 </td> 217 </td>
166 <td> 218 <td>
167 <a target="_blank" href="http://chromium-skia-gm.commondatastorage.g oogleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDi gest}}.png"> 219 <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"/> 220 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.act ualHashDigest}}.png"/>
169 </a> 221 </a>
170 </td> 222 </td>
171 <td ng-hide="!header.isEditable"> 223 <td>
172 <input type="checkbox" 224 <input type="checkbox"
173 name="rowSelect" 225 name="rowSelect"
174 value="{{result.index}}" 226 value="{{result.index}}"
175 ng-checked="isItemSelected(result.index)" 227 ng-checked="isItemSelected(result.index)"
176 ng-click="toggleItemSelected(result.index)"> 228 ng-click="toggleItemSelected(result.index)">
177 </tr> 229 </tr>
178 </table> 230 </table>
179 </div> 231 </div><!-- display of current tab -->
232 </div><!-- everything: hide until data is loaded -->
180 233
181 <!-- TODO(epoger): Can we get the base URLs (commondatastorage and 234 <!-- TODO(epoger): Can we get the base URLs (commondatastorage and
182 issues list) from 235 issues list) from
183 http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json 236 http://skia.googlecode.com/svn/buildbot/site_config/global_variables.json
184 ? I tried importing the 237 ? I tried importing the
185 http://skia.googlecode.com/svn/buildbot/skia_tools.js script and using 238 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. 239 that to do so, but I got Access-Control-Allow-Origin errors.
187 --> 240 -->
188 241
189 </body> 242 </body>
190 </html> 243 </html>
OLDNEW
« gm/rebaseline_server/static/loader.js ('K') | « gm/rebaseline_server/static/view.css ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698