| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // TODO(kochi): Generalize the notification as a component and put it | 5 // TODO(kochi): Generalize the notification as a component and put it |
| 6 // in js/cr/ui/notification.js . | 6 // in js/cr/ui/notification.js . |
| 7 | 7 |
| 8 cr.define('options', function() { | 8 cr.define('options', function() { |
| 9 /** @const */ var OptionsPage = options.OptionsPage; | 9 /** @const */ var Page = cr.ui.pageManager.Page; |
| 10 /** @const */ var PageManager = cr.ui.pageManager.PageManager; |
| 10 /** @const */ var LanguageList = options.LanguageList; | 11 /** @const */ var LanguageList = options.LanguageList; |
| 11 /** @const */ var ThirdPartyImeConfirmOverlay = | 12 /** @const */ var ThirdPartyImeConfirmOverlay = |
| 12 options.ThirdPartyImeConfirmOverlay; | 13 options.ThirdPartyImeConfirmOverlay; |
| 13 | 14 |
| 14 /** | 15 /** |
| 15 * Spell check dictionary download status. | 16 * Spell check dictionary download status. |
| 16 * @type {Enum} | 17 * @type {Enum} |
| 17 */ | 18 */ |
| 18 /** @const*/ var DOWNLOAD_STATUS = { | 19 /** @const*/ var DOWNLOAD_STATUS = { |
| 19 IN_PROGRESS: 1, | 20 IN_PROGRESS: 1, |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 var ENABLE_TRANSLATE = 'translate.enabled'; | 67 var ENABLE_TRANSLATE = 'translate.enabled'; |
| 67 | 68 |
| 68 ///////////////////////////////////////////////////////////////////////////// | 69 ///////////////////////////////////////////////////////////////////////////// |
| 69 // LanguageOptions class: | 70 // LanguageOptions class: |
| 70 | 71 |
| 71 /** | 72 /** |
| 72 * Encapsulated handling of ChromeOS language options page. | 73 * Encapsulated handling of ChromeOS language options page. |
| 73 * @constructor | 74 * @constructor |
| 74 */ | 75 */ |
| 75 function LanguageOptions(model) { | 76 function LanguageOptions(model) { |
| 76 OptionsPage.call(this, 'languages', | 77 Page.call(this, 'languages', |
| 77 loadTimeData.getString('languagePageTabTitle'), | 78 loadTimeData.getString('languagePageTabTitle'), 'languagePage'); |
| 78 'languagePage'); | |
| 79 } | 79 } |
| 80 | 80 |
| 81 cr.addSingletonGetter(LanguageOptions); | 81 cr.addSingletonGetter(LanguageOptions); |
| 82 | 82 |
| 83 // Inherit LanguageOptions from OptionsPage. | 83 // Inherit LanguageOptions from Page. |
| 84 LanguageOptions.prototype = { | 84 LanguageOptions.prototype = { |
| 85 __proto__: OptionsPage.prototype, | 85 __proto__: Page.prototype, |
| 86 | 86 |
| 87 /* For recording the prospective language (the next locale after relaunch). | 87 /* For recording the prospective language (the next locale after relaunch). |
| 88 * @type {?string} | 88 * @type {?string} |
| 89 * @private | 89 * @private |
| 90 */ | 90 */ |
| 91 prospectiveUiLanguageCode_: null, | 91 prospectiveUiLanguageCode_: null, |
| 92 | 92 |
| 93 /* | 93 /* |
| 94 * Map from language code to spell check dictionary download status for that | 94 * Map from language code to spell check dictionary download status for that |
| 95 * language. | 95 * language. |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 | 151 |
| 152 /** | 152 /** |
| 153 * The value that indicates if Translate feature is enabled or not. | 153 * The value that indicates if Translate feature is enabled or not. |
| 154 * @type {boolean} | 154 * @type {boolean} |
| 155 * @private | 155 * @private |
| 156 */ | 156 */ |
| 157 enableTranslate_: false, | 157 enableTranslate_: false, |
| 158 | 158 |
| 159 /** | 159 /** |
| 160 * Initializes LanguageOptions page. | 160 * Initializes LanguageOptions page. |
| 161 * Calls base class implementation to start preference initialization. | |
| 162 */ | 161 */ |
| 163 initializePage: function() { | 162 initializePage: function() { |
| 164 OptionsPage.prototype.initializePage.call(this); | 163 Page.prototype.initializePage.call(this); |
| 165 | 164 |
| 166 var languageOptionsList = $('language-options-list'); | 165 var languageOptionsList = $('language-options-list'); |
| 167 LanguageList.decorate(languageOptionsList); | 166 LanguageList.decorate(languageOptionsList); |
| 168 | 167 |
| 169 languageOptionsList.addEventListener('change', | 168 languageOptionsList.addEventListener('change', |
| 170 this.handleLanguageOptionsListChange_.bind(this)); | 169 this.handleLanguageOptionsListChange_.bind(this)); |
| 171 languageOptionsList.addEventListener('save', | 170 languageOptionsList.addEventListener('save', |
| 172 this.handleLanguageOptionsListSave_.bind(this)); | 171 this.handleLanguageOptionsListSave_.bind(this)); |
| 173 | 172 |
| 174 this.prospectiveUiLanguageCode_ = | 173 this.prospectiveUiLanguageCode_ = |
| (...skipping 23 matching lines...) Expand all Loading... |
| 198 // Set up add button. | 197 // Set up add button. |
| 199 var onclick = function(e) { | 198 var onclick = function(e) { |
| 200 // Add the language without showing the overlay if it's specified in | 199 // Add the language without showing the overlay if it's specified in |
| 201 // the URL hash (ex. lang_add=ja). Used for automated testing. | 200 // the URL hash (ex. lang_add=ja). Used for automated testing. |
| 202 var match = document.location.hash.match(/\blang_add=([\w-]+)/); | 201 var match = document.location.hash.match(/\blang_add=([\w-]+)/); |
| 203 if (match) { | 202 if (match) { |
| 204 var addLanguageCode = match[1]; | 203 var addLanguageCode = match[1]; |
| 205 $('language-options-list').addLanguage(addLanguageCode); | 204 $('language-options-list').addLanguage(addLanguageCode); |
| 206 this.addBlockedLanguage_(addLanguageCode); | 205 this.addBlockedLanguage_(addLanguageCode); |
| 207 } else { | 206 } else { |
| 208 OptionsPage.navigateToPage('addLanguage'); | 207 PageManager.showPageByName('addLanguage'); |
| 209 } | 208 } |
| 210 }; | 209 }; |
| 211 $('language-options-add-button').onclick = onclick.bind(this); | 210 $('language-options-add-button').onclick = onclick.bind(this); |
| 212 | 211 |
| 213 if (!cr.isMac) { | 212 if (!cr.isMac) { |
| 214 // Set up the button for editing custom spelling dictionary. | 213 // Set up the button for editing custom spelling dictionary. |
| 215 $('edit-dictionary-button').onclick = function(e) { | 214 $('edit-dictionary-button').onclick = function(e) { |
| 216 OptionsPage.navigateToPage('editDictionary'); | 215 PageManager.showPageByName('editDictionary'); |
| 217 }; | 216 }; |
| 218 $('dictionary-download-retry-button').onclick = function(e) { | 217 $('dictionary-download-retry-button').onclick = function(e) { |
| 219 chrome.send('retryDictionaryDownload'); | 218 chrome.send('retryDictionaryDownload'); |
| 220 }; | 219 }; |
| 221 } | 220 } |
| 222 | 221 |
| 223 // Listen to add language dialog ok button. | 222 // Listen to add language dialog ok button. |
| 224 $('add-language-overlay-ok-button').addEventListener( | 223 $('add-language-overlay-ok-button').addEventListener( |
| 225 'click', this.handleAddLanguageOkButtonClick_.bind(this)); | 224 'click', this.handleAddLanguageOkButtonClick_.bind(this)); |
| 226 | 225 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 246 this.handleSpellCheckLanguageButtonClick_.bind(this)); | 245 this.handleSpellCheckLanguageButtonClick_.bind(this)); |
| 247 } | 246 } |
| 248 | 247 |
| 249 if (cr.isChromeOS) { | 248 if (cr.isChromeOS) { |
| 250 $('language-options-ui-restart-button').onclick = function() { | 249 $('language-options-ui-restart-button').onclick = function() { |
| 251 chrome.send('uiLanguageRestart'); | 250 chrome.send('uiLanguageRestart'); |
| 252 }; | 251 }; |
| 253 } | 252 } |
| 254 | 253 |
| 255 $('language-confirm').onclick = | 254 $('language-confirm').onclick = |
| 256 OptionsPage.closeOverlay.bind(OptionsPage); | 255 PageManager.closeOverlay.bind(PageManager); |
| 257 | 256 |
| 258 // Public session users cannot change the locale. | 257 // Public session users cannot change the locale. |
| 259 if (cr.isChromeOS && UIAccountTweaks.loggedInAsPublicAccount()) | 258 if (cr.isChromeOS && UIAccountTweaks.loggedInAsPublicAccount()) |
| 260 $('language-options-ui-language-section').hidden = true; | 259 $('language-options-ui-language-section').hidden = true; |
| 260 PageManager.closeOverlay.bind(PageManager); |
| 261 }, | 261 }, |
| 262 | 262 |
| 263 /** | 263 /** |
| 264 * Initializes the input method list. | 264 * Initializes the input method list. |
| 265 */ | 265 */ |
| 266 initializeInputMethodList_: function() { | 266 initializeInputMethodList_: function() { |
| 267 var inputMethodList = $('language-options-input-method-list'); | 267 var inputMethodList = $('language-options-input-method-list'); |
| 268 var inputMethodPrototype = $('language-options-input-method-template'); | 268 var inputMethodPrototype = $('language-options-input-method-template'); |
| 269 | 269 |
| 270 // Add all input methods, but make all of them invisible here. We'll | 270 // Add all input methods, but make all of them invisible here. We'll |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 this.translateBlockedLanguages_.filter( | 377 this.translateBlockedLanguages_.filter( |
| 378 function(langCodeNotTranslated) { | 378 function(langCodeNotTranslated) { |
| 379 return langCodeNotTranslated != langCode; | 379 return langCodeNotTranslated != langCode; |
| 380 }); | 380 }); |
| 381 Preferences.setListPref(TRANSLATE_BLOCKED_LANGUAGES_PREF, | 381 Preferences.setListPref(TRANSLATE_BLOCKED_LANGUAGES_PREF, |
| 382 this.translateBlockedLanguages_, true); | 382 this.translateBlockedLanguages_, true); |
| 383 } | 383 } |
| 384 }, | 384 }, |
| 385 | 385 |
| 386 /** | 386 /** |
| 387 * Handles OptionsPage's visible property change event. | 387 * Handles Page's visible property change event. |
| 388 * @param {Event} e Property change event. | 388 * @param {Event} e Property change event. |
| 389 * @private | 389 * @private |
| 390 */ | 390 */ |
| 391 handleVisibleChange_: function(e) { | 391 handleVisibleChange_: function(e) { |
| 392 if (this.visible) { | 392 if (this.visible) { |
| 393 $('language-options-list').redraw(); | 393 $('language-options-list').redraw(); |
| 394 chrome.send('languageOptionsOpen'); | 394 chrome.send('languageOptionsOpen'); |
| 395 } | 395 } |
| 396 }, | 396 }, |
| 397 | 397 |
| (...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 886 * @private | 886 * @private |
| 887 */ | 887 */ |
| 888 handleAddLanguageOkButtonClick_: function(e) { | 888 handleAddLanguageOkButtonClick_: function(e) { |
| 889 var languagesSelect = $('add-language-overlay-language-list'); | 889 var languagesSelect = $('add-language-overlay-language-list'); |
| 890 var selectedIndex = languagesSelect.selectedIndex; | 890 var selectedIndex = languagesSelect.selectedIndex; |
| 891 if (selectedIndex >= 0) { | 891 if (selectedIndex >= 0) { |
| 892 var selection = languagesSelect.options[selectedIndex]; | 892 var selection = languagesSelect.options[selectedIndex]; |
| 893 var langCode = String(selection.value); | 893 var langCode = String(selection.value); |
| 894 $('language-options-list').addLanguage(langCode); | 894 $('language-options-list').addLanguage(langCode); |
| 895 this.addBlockedLanguage_(langCode); | 895 this.addBlockedLanguage_(langCode); |
| 896 OptionsPage.closeOverlay(); | 896 PageManager.closeOverlay(); |
| 897 } | 897 } |
| 898 }, | 898 }, |
| 899 | 899 |
| 900 /** | 900 /** |
| 901 * Checks if languageCode is deletable or not. | 901 * Checks if languageCode is deletable or not. |
| 902 * @param {string} languageCode the languageCode to check for deletability. | 902 * @param {string} languageCode the languageCode to check for deletability. |
| 903 */ | 903 */ |
| 904 languageIsDeletable: function(languageCode) { | 904 languageIsDeletable: function(languageCode) { |
| 905 // Don't allow removing the language if it's a UI language. | 905 // Don't allow removing the language if it's a UI language. |
| 906 if (languageCode == this.prospectiveUiLanguageCode_) | 906 if (languageCode == this.prospectiveUiLanguageCode_) |
| (...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1358 | 1358 |
| 1359 LanguageOptions.onDictionaryDownloadFailure = function(languageCode) { | 1359 LanguageOptions.onDictionaryDownloadFailure = function(languageCode) { |
| 1360 LanguageOptions.getInstance().onDictionaryDownloadFailure_(languageCode); | 1360 LanguageOptions.getInstance().onDictionaryDownloadFailure_(languageCode); |
| 1361 }; | 1361 }; |
| 1362 | 1362 |
| 1363 // Export | 1363 // Export |
| 1364 return { | 1364 return { |
| 1365 LanguageOptions: LanguageOptions | 1365 LanguageOptions: LanguageOptions |
| 1366 }; | 1366 }; |
| 1367 }); | 1367 }); |
| OLD | NEW |