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

Side by Side Diff: chrome/browser/resources/sync_internals/sync_index.html

Issue 6531038: [Sync] Split up about:sync html files to be more manageable (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed john's comments Created 9 years, 10 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 <html i18n-values="dir:textdirection;"> 2 <html i18n-values="dir:textdirection;">
3 <head> 3 <head>
4 <!-- If you change the title, make sure you also update 4 <!-- If you change the title, make sure you also update
5 chrome/test/functional/special_tabs.py. --> 5 chrome/test/functional/special_tabs.py. -->
6 <title>Sync Internals</title> 6 <title>Sync Internals</title>
7 <script> 7 <script src="chrome_sync.js"></script>
8 function onLoad() { 8 <!-- Used by about.html. -->
9 chrome.send('getAboutInfo'); 9 <link rel="stylesheet" href="about.css" />
10 chrome.send('getNotificationState');
11 chrome.send('getRootNode');
12 }
13
14 function onGetAboutInfoFinished(aboutInfo) {
15 var aboutInfoDiv = document.getElementById('aboutInfo');
16 jstProcess(new JsEvalContext(aboutInfo), aboutInfoDiv);
17 }
18
19 function onGetNotificationStateFinished(notificationsEnabled) {
20 onSyncNotificationStateChange(notificationsEnabled);
21 }
22
23 function onGetRootNodeFinished(rootNodeInfo) {
24 onGetNodeByIdFinished(rootNodeInfo);
25 }
26
27 function onGetNodeByIdFinished(nodeInfo) {
28 var nodeBrowser = document.getElementById('nodeBrowser');
29 nodeInfo.specifics = JSON.stringify(nodeInfo.specifics);
30 jstProcess(new JsEvalContext(nodeInfo), nodeBrowser);
31 }
32
33 function processNodeLink(link) {
34 var id = link.text;
35 chrome.send('getNodeById', [id]);
36 }
37
38 function onSyncServiceStateChanged() {
39 chrome.send('getAboutInfo');
40 }
41
42 function onSyncNotificationStateChange(notificationsEnabled) {
43 var notificationsEnabledInfo =
44 document.getElementById('notificationsEnabledInfo');
45 jstProcess(
46 new JsEvalContext({ 'notificationsEnabled': notificationsEnabled }),
47 notificationsEnabledInfo);
48 }
49
50 var notificationCounts = {};
51
52 function onSyncIncomingNotification(changedTypes) {
53 for (var i = 0; i < changedTypes.length; ++i) {
54 var changedType = changedTypes[i];
55 notificationCounts[changedType] = notificationCounts[changedType] || 0;
56 ++notificationCounts[changedType];
57 }
58
59 var infos = [];
60 for (var k in notificationCounts) {
61 var info = { 'modelType': k, 'notificationCount': notificationCounts[k] };
62 infos.push(info);
63 }
64
65 var notificationCountsInfo =
66 document.getElementById('notificationCountsInfo');
67 jstProcess(new JsEvalContext({ 'notificationCounts': infos }),
68 notificationCountsInfo);
69 }
70
71 // TODO(akalin): Do something with these notifications.
72
73 function onChangesApplied(modelType, changes) {
74 console.log('onChangesApplied: ' + modelType + ': ' + JSON.stringify(changes)) ;
75 }
76
77 function onChangesComplete(modelType) {
78 console.log('onChangesComplete: ' + modelType);
79 }
80
81 function onSyncCycleCompleted(snapshot) {
82 console.log('onSyncCycleCompleted: ' + JSON.stringify(snapshot));
83 }
84
85 function onAuthError(authError) {
86 console.log('onAuthError: ' + JSON.stringify(authError));
87 }
88
89 function onUpdatedToken(token) {
90 console.log('onUpdatedToken: ' + token);
91 }
92
93 function onPassphraseRequired(forDecryption) {
94 console.log('onPassphraseRequired: ' + forDecryption);
95 }
96
97 function onPassphraseAccepted(bootstrapToken) {
98 console.log('onPassphraseAccepted: ' + bootstrapToken);
99 }
100
101 function onInitializationComplete() {
102 console.log('onInitializationComplete');
103 }
104
105 function onPaused() {
106 console.log('onPaused');
107 }
108
109 function onResumed() {
110 console.log('onResumed');
111 }
112
113 function onStopSyncingPermanently() {
114 console.log('onStopSyncingPermanently');
115 }
116
117 function onClearServerDataSucceeded() {
118 console.log('onClearServerDataSucceeded');
119 }
120
121 function onClearServerDataFailed() {
122 console.log('onClearServerDataFailed');
123 }
124 </script>
125
126 <style type="text/css">
127 body {
128 padding: 0.75em;
129 margin: 0;
130 min-width: 45em;
131 }
132
133 h1 {
134 font-size: 110%;
135 font-weight: bold;
136 color: #4a8ee6;
137 letter-spacing: -1px;
138 padding: 0;
139 margin: 0;
140 }
141 h2 {
142 font-size: 110%;
143 letter-spacing: -1px;
144 font-weight: normal;
145 color: #4a8ee6;
146 padding: 0;
147 margin: 0;
148 padding: 0.5em 1em;
149 color: #3a75bd;
150 margin-left: -38px;
151 padding-left: 38px;
152
153 border-top: 1px solid #3a75bd;
154 padding-top: 0.5em;
155
156 }
157 h2:first-child {
158 border-top: 0;
159 padding-top: 0;
160 }
161
162 div#header {
163 padding: 0.75em 1em;
164 padding-top: 0.6em;
165 padding-left: 0;
166 margin-bottom: 0.75em;
167 position: relative;
168 overflow: hidden;
169 background: #5296de;
170 background-size: 100%;
171 border: 1px solid #3a75bd;
172 border-radius: 6px;
173 color: white;
174 text-shadow: 0 0 2px black;
175 }
176 div#header h1 {
177 padding-left: 37px;
178 margin: 0;
179 display: inline;
180 background: url('../../resources/shared/images/gear.png') 12px 60% no-repeat;
181 color: white;
182 }
183
184 .err {
185 color: red;
186 }
187
188 div#header p {
189 font-style: italic;
190 padding: 0;
191 margin: 0;
192 color: white;
193 padding-left: 0.4em;
194 display: inline;
195 }
196
197 table.list {
198 line-height: 200%;
199 border-collapse: collapse;
200 table-layout: fixed;
201 }
202 table.list:not([class*='filtered']) tr:nth-child(odd) td {
203 background: #eff3ff;
204 }
205 table.list#details2 tr:nth-child(odd) td {
206 background: #ccffcc
207 }
208
209 table.list td {
210 padding: 0 0.5em;
211 vertical-align: top;
212 line-height: 1.4em;
213 padding-top: 0.35em;
214 }
215 table.list tr td:nth-last-child(1),
216 table.list tr th:nth-last-child(1) {
217 padding-right: 1em;
218 }
219 table.list:not([class*='filtered']) .tab .name {
220 padding-left: 1.5em;
221 }
222
223 table.list .name {
224 }
225
226 table.list .name div {
227 height: 1.6em;
228 overflow: hidden;
229 white-space: nowrap;
230 text-overflow: ellipsis;
231 }
232
233 table.list .number {
234 width: 7em;
235 text-align: right;
236 }
237
238 table.list tr:not([class*='firstRow']) > *:nth-child(1),
239 table.list tr:not([class*='firstRow']) > *:nth-child(4),
240 table.list tr.firstRow th:nth-child(1),
241 table.list tr.firstRow th:nth-child(2) {
242 border-right: 1px solid #b5c6de;
243 }
244 table.list#details .name {
245 padding-left: 25px;
246 background-position: 5px center;
247 background-repeat: no-repeat;
248 }
249 </style>
250
251 </head> 10 </head>
252 <body i18n-values=".style.fontFamily:fontfamily;.style.fontSize:fontsize" 11 <body i18n-values=".style.fontFamily:fontfamily;.style.fontSize:fontsize">
253 onload="onLoad()"> 12 <include src="about.html" />
254 13 <include src="notifications.html" />
255 <div id='aboutInfo'> 14 <include src="sync_node_browser.html" />
256 <div id='header'> 15 <include src="sync_events.html" />
257 <h1>Sync Internals</h1>
258 <p> Sync engine diagnostic data</p>
259 </div>
260 <div id='content'>
261 <table width="100%">
262 <tr>
263 <td width="20%">
264 <span class="desc"><h2> Summary </h2></span>
265 <strong jscontent="summary"></strong>
266 </td>
267 <td>
268 <div class="desc" jsdisplay="unrecoverable_error_detected">
269 <span class="err">Unrecoverable Error Detected!</span>
270 <div jscontent="unrecoverable_error_message"></div>
271 <div jscontent="unrecoverable_error_location"></div>
272 </div>
273 </td>
274 </tr>
275 <tr>
276 <td colspan="2">
277 <span class="desc"><h2> Sync URL </h2></span>
278 <strong jscontent="service_url"></strong>
279 </td>
280 </tr>
281 </table>
282 <br /><br /><br />
283 <h2> </h2>
284 <table>
285 <tr>
286 <td>
287 <div class="desc"><h2> Details </h2></div>
288 <table class='list' id='details'>
289 <tr>
290 <td class='name'> Authenticated </td>
291 <td class='number'>
292 <div jscontent="authenticated"> </div>
293 <div jsdisplay="!authenticated"
294 style="color:red"
295 jscontent="auth_problem"></div>
296 </td>
297 </tr>
298 </tr>
299 <tr>
300 <td class='name'>Last Synced</td>
301 <td class='number' jscontent="time_since_sync"> </td>
302 </tr>
303 <tr jsselect="details">
304 <td class='name'>
305 <div jscontent="stat_name"></div>
306 </td>
307 <td class='number'>
308 <div jscontent="stat_value"></div>
309 </td>
310 </tr>
311 </table>
312 </td>
313 <td valign="top">
314 <div class="desc"><h2> Routing Info </h2></div>
315 <table class='list' id='details2'>
316 <tr jsselect="routing_info">
317 <td class ='name'>
318 <div jscontent="model_type"></div>
319 </td>
320 <td class='number'>
321 <div jscontent="group"></div>
322 </td>
323 </tr>
324 </table>
325 </td>
326 </table>
327 </div>
328 </div>
329
330 <div class="desc"><h2> Notifications </h2></div>
331 <p id='notificationsEnabledInfo'>
332 Enabled: <span jscontent='notificationsEnabled'></span>
333 </p>
334
335 <table class='list' id='notificationCountsInfo'>
336 <tr jsselect='notificationCounts'>
337 <td class='name'>
338 <div jscontent='modelType'></div>
339 </td>
340 <td class='number'>
341 <div jscontent='notificationCount'></div>
342 </td>
343 </tr>
344 </table>
345 </td>
346
347 <div class="desc"><h2> Node Browser </h2></div>
348 <ul id='nodeBrowser'>
349 <li>ID: <span jscontent='id'></span></li>
350 <li>Modification Time: <span jscontent='modificationTime'></span></li>
351 <li>Parent: <a jscontent='parentId' href="#" onclick="processNodeLink(this); ret urn false"></a></li>
352 <li>Is Folder: <span jscontent='isFolder'></span></li>
353 <li>Title: <span jscontent='title'></span></li>
354 <li>Type: <span jscontent='type'></span></li>
355 <li>Specifics: <span jscontent='specifics'></span></li>
356 <li>External ID: <span jscontent='externalId'></span></li>
357 <li>Predecessor: <a jscontent='predecessorId' href="#" onclick="processNodeLink( this); return false"></a></li>
358 <li>Successor: <a jscontent='successorId' href="#" onclick="processNodeLink(this ); return false"></a></li>
359 <li>First Child: <a jscontent='firstChildId' href="#" onclick="processNodeLink(t his); return false"></a></li>
360 </ul>
361
362 </body> 16 </body>
363 </html> 17 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698