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

Side by Side Diff: chrome/browser/resources/translate_internals/translate_internals.js

Issue 19724006: Use URL hashes to switch tabs of chrome://translate-internals/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 5 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 (function() { 5 (function() {
6 'use strict'; 6 'use strict';
7 7
8 cr.define('cr.translateInternals', function() { 8 cr.define('cr.translateInternals', function() {
9 9
10 var detectionLogs_ = null; 10 var detectionLogs_ = null;
(...skipping 13 matching lines...) Expand all
24 chrome.send('requestInfo'); 24 chrome.send('requestInfo');
25 25
26 var button = $('detection-logs-dump'); 26 var button = $('detection-logs-dump');
27 button.addEventListener('click', onDetectionLogsDump); 27 button.addEventListener('click', onDetectionLogsDump);
28 28
29 var enableTranslateSettings = templateData['enable-translate-settings']; 29 var enableTranslateSettings = templateData['enable-translate-settings'];
30 if (!enableTranslateSettings) { 30 if (!enableTranslateSettings) {
31 $('prefs-blocked-languages').hidden = true; 31 $('prefs-blocked-languages').hidden = true;
32 $('prefs-language-blacklist').querySelector('h2 span').hidden = true; 32 $('prefs-language-blacklist').querySelector('h2 span').hidden = true;
33 } 33 }
34
35 var tabpanelNodeList = document.getElementsByTagName('tabpanel');
36 var tabpanels = Array.prototype.slice.call(tabpanelNodeList, 0);
37 var tabpanelIds = tabpanels.map(function(tab) {
38 return tab.id;
39 });
40
41 var tabNodeList = document.getElementsByTagName('tab');
42 var tabs = Array.prototype.slice.call(tabNodeList, 0);
43 tabs.forEach(function(tab) {
44 tab.onclick = function(e) {
45 var tabbox = document.querySelector('tabbox');
46 var tabpanel = tabpanels[tabbox.selectedIndex];
47 var hash = tabpanel.id.match(/(?:^tabpanel-)(.+)/)[1];
48 window.location.hash = hash;
49 };
50 });
51
52 window.onhashchange = function(e) {
53 var hash = window.location.hash;
54
55 // Remove the first character '#'.
56 hash = hash.substring(1);
57
58 var id = 'tabpanel-' + hash;
59 if (tabpanelIds.indexOf(id) == -1)
60 return;
61
62 $(id).selected = true;
63 };
34 } 64 }
35 65
36 /** 66 /**
37 * Creates a new LI element with a button to dismiss the item. 67 * Creates a new LI element with a button to dismiss the item.
38 * 68 *
39 * @param {string} text The lable of the LI element. 69 * @param {string} text The lable of the LI element.
40 * @param {Function} func Callback called when the button is clicked. 70 * @param {Function} func Callback called when the button is clicked.
41 */ 71 */
42 function createLIWithDismissingButton(text, func) { 72 function createLIWithDismissingButton(text, func) {
43 var span = document.createElement('span'); 73 var span = document.createElement('span');
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 'detection-logs-content'); 322 'detection-logs-content');
293 323
294 // TD (and TR) can't use the CSS property 'max-height', so DIV 324 // TD (and TR) can't use the CSS property 'max-height', so DIV
295 // in the content is needed. 325 // in the content is needed.
296 var contentTD = tr.querySelector('.detection-logs-content'); 326 var contentTD = tr.querySelector('.detection-logs-content');
297 var div = document.createElement('div'); 327 var div = document.createElement('div');
298 div.textContent = contentTD.textContent; 328 div.textContent = contentTD.textContent;
299 contentTD.textContent = ''; 329 contentTD.textContent = '';
300 contentTD.appendChild(div); 330 contentTD.appendChild(div);
301 331
302 var tbody = $('detection-logs').getElementsByTagName('tbody')[0]; 332 var tabpanel = $('tabpanel-detection-logs');
Evan Stade 2013/07/22 19:06:04 no need to stick this in its own var
333 var tbody = tabpanel.getElementsByTagName('tbody')[0];
303 tbody.appendChild(tr); 334 tbody.appendChild(tr);
304 } 335 }
305 336
306 /** 337 /**
307 * Handles the message of 'translateErrorDetailsAdded' from the 338 * Handles the message of 'translateErrorDetailsAdded' from the
308 * browser. 339 * browser.
309 * 340 *
310 * @param {Object} details The object which represents the logs. 341 * @param {Object} details The object which represents the logs.
311 */ 342 */
312 function onTranslateErrorDetailsAdded(details) { 343 function onTranslateErrorDetailsAdded(details) {
313 var tr = document.createElement('tr'); 344 var tr = document.createElement('tr');
314 345
315 appendTD(tr, formatDate(new Date(details['time'])), 'error-logs-time'); 346 appendTD(tr, formatDate(new Date(details['time'])), 'error-logs-time');
316 appendTD(tr, details['url'], 'error-logs-url'); 347 appendTD(tr, details['url'], 'error-logs-url');
317 appendTD( 348 appendTD(
318 tr, 349 tr,
319 details['error'] + ': ' + formatTranslateErrorsType(details['error']), 350 details['error'] + ': ' + formatTranslateErrorsType(details['error']),
320 'error-logs-error'); 351 'error-logs-error');
321 352
322 var tbody = $('error-logs').getElementsByTagName('tbody')[0]; 353 var tabpanel = $('tabpanel-error-logs');
Evan Stade 2013/07/22 19:06:04 no need to stick this in its own var
354 var tbody = tabpanel.getElementsByTagName('tbody')[0];
323 tbody.appendChild(tr); 355 tbody.appendChild(tr);
324 } 356 }
325 357
326 /** 358 /**
327 * Handles the message of 'translateEventDetailsAdded' from the browser. 359 * Handles the message of 'translateEventDetailsAdded' from the browser.
328 * 360 *
329 * @param {Object} details The object which contains event information. 361 * @param {Object} details The object which contains event information.
330 */ 362 */
331 function onTranslateEventDetailsAdded(details) { 363 function onTranslateEventDetailsAdded(details) {
332 var tr = document.createElement('tr'); 364 var tr = document.createElement('tr');
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 /** 430 /**
399 * The entry point of the UI. 431 * The entry point of the UI.
400 */ 432 */
401 function main() { 433 function main() {
402 cr.doc.addEventListener('DOMContentLoaded', 434 cr.doc.addEventListener('DOMContentLoaded',
403 cr.translateInternals.initialize); 435 cr.translateInternals.initialize);
404 } 436 }
405 437
406 main(); 438 main();
407 })(); 439 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698