OLD | NEW |
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 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 if (tabpanelIds.indexOf(id) == -1) | 53 if (tabpanelIds.indexOf(id) == -1) |
54 return; | 54 return; |
55 | 55 |
56 $(id).selected = true; | 56 $(id).selected = true; |
57 }; | 57 }; |
58 | 58 |
59 window.onhashchange = activateTabByHash; | 59 window.onhashchange = activateTabByHash; |
60 activateTabByHash(); | 60 activateTabByHash(); |
61 } | 61 } |
62 | 62 |
| 63 /* |
| 64 * Creates a button to dismiss an item. |
| 65 * |
| 66 * @param {Function} func Callback called when the button is clicked. |
| 67 */ |
| 68 function createDismissingButton(func) { |
| 69 var button = document.createElement('button'); |
| 70 button.textContent = 'X'; |
| 71 button.classList.add('dismissing'); |
| 72 button.addEventListener('click', function(e) { |
| 73 e.preventDefault(); |
| 74 func(); |
| 75 }, false); |
| 76 return button; |
| 77 } |
| 78 |
63 /** | 79 /** |
64 * Creates a new LI element with a button to dismiss the item. | 80 * Creates a new LI element with a button to dismiss the item. |
65 * | 81 * |
66 * @param {string} text The lable of the LI element. | 82 * @param {string} text The lable of the LI element. |
67 * @param {Function} func Callback called when the button is clicked. | 83 * @param {Function} func Callback called when the button is clicked. |
68 */ | 84 */ |
69 function createLIWithDismissingButton(text, func) { | 85 function createLIWithDismissingButton(text, func) { |
70 var span = document.createElement('span'); | 86 var span = document.createElement('span'); |
71 span.textContent = text; | 87 span.textContent = text; |
72 | 88 |
73 var li = document.createElement('li'); | 89 var li = document.createElement('li'); |
74 li.appendChild(span); | 90 li.appendChild(span); |
75 | 91 li.appendChild(createDismissingButton(func)); |
76 var button = document.createElement('button'); | |
77 button.textContent = 'X'; | |
78 button.addEventListener('click', function(e) { | |
79 e.preventDefault(); | |
80 func(); | |
81 }, false); | |
82 | |
83 li.appendChild(button); | |
84 return li; | 92 return li; |
85 } | 93 } |
86 | 94 |
87 /** | 95 /** |
88 * Formats the language name to a human-readable text. For example, if | 96 * Formats the language name to a human-readable text. For example, if |
89 * |langCode| is 'en', this may return 'en (English)'. | 97 * |langCode| is 'en', this may return 'en (English)'. |
90 * | 98 * |
91 * @param {string} langCode ISO 639 language code. | 99 * @param {string} langCode ISO 639 language code. |
92 * @return {string} The formatted string. | 100 * @return {string} The formatted string. |
93 */ | 101 */ |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 formatLanguageCode(toLangCode); | 207 formatLanguageCode(toLangCode); |
200 | 208 |
201 var li = createLIWithDismissingButton(text, function() { | 209 var li = createLIWithDismissingButton(text, function() { |
202 chrome.send('removePrefItem', | 210 chrome.send('removePrefItem', |
203 ['whitelists', fromLangCode, toLangCode]); | 211 ['whitelists', fromLangCode, toLangCode]); |
204 }); | 212 }); |
205 ul.appendChild(li); | 213 ul.appendChild(li); |
206 }); | 214 }); |
207 } | 215 } |
208 | 216 |
209 var p = document.querySelector('#prefs-dump p'); | 217 var p = $('prefs-too-often-denied'); |
| 218 p.classList.toggle('prefs-setting-disabled', |
| 219 !detail['translate_too_often_denied']); |
| 220 p.appendChild(createDismissingButton( |
| 221 chrome.send.bind(null, 'removePrefItem', ['too_often_denied']))); |
| 222 |
| 223 p = document.querySelector('#prefs-dump p'); |
210 var content = JSON.stringify(detail, null, 2); | 224 var content = JSON.stringify(detail, null, 2); |
211 p.textContent = content; | 225 p.textContent = content; |
212 } | 226 } |
213 | 227 |
214 /** | 228 /** |
215 * Handles the message of 'supportedLanguagesUpdated' from the browser. | 229 * Handles the message of 'supportedLanguagesUpdated' from the browser. |
216 * | 230 * |
217 * @param {Object} details the object which represents the supported | 231 * @param {Object} details the object which represents the supported |
218 * languages by the Translate server. | 232 * languages by the Translate server. |
219 */ | 233 */ |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
431 /** | 445 /** |
432 * The entry point of the UI. | 446 * The entry point of the UI. |
433 */ | 447 */ |
434 function main() { | 448 function main() { |
435 cr.doc.addEventListener('DOMContentLoaded', | 449 cr.doc.addEventListener('DOMContentLoaded', |
436 cr.translateInternals.initialize); | 450 cr.translateInternals.initialize); |
437 } | 451 } |
438 | 452 |
439 main(); | 453 main(); |
440 })(); | 454 })(); |
OLD | NEW |