Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 /** | |
| 6 * @fileoverview 'cr-settings-manage-languages-page' is a sub-page for enabling | |
| 7 * and disabling languages. | |
| 8 * | |
| 9 * @group Chrome Settings Elements | |
| 10 * @element cr-settings-manage-languages-page | |
| 11 */ | |
| 12 Polymer({ | |
| 13 is: 'cr-settings-manage-languages-page', | |
| 14 | |
| 15 properties: { | |
| 16 /** | |
| 17 * Preferences state. | |
| 18 */ | |
| 19 prefs: { | |
| 20 type: Object, | |
| 21 notify: true, | |
| 22 }, | |
| 23 | |
| 24 /** | |
| 25 * @type {(LanguagesModel|undefined)} | |
| 26 */ | |
| 27 languages: { | |
| 28 type: Object, | |
| 29 notify: true, | |
| 30 }, | |
| 31 | |
| 32 /** @type {Array<{code: string, displayName: string, enabled: boolean}>| | |
| 33 * undefined} | |
|
Dan Beam
2015/09/23 23:28:17
nit: indent off
michaelpg
2015/09/24 02:15:20
Done.
| |
| 34 * @private | |
| 35 */ | |
| 36 availableLanguages_: Array, | |
| 37 }, | |
| 38 | |
| 39 observers: [ | |
| 40 'enabledLanguagesChanged_(languages.enabledLanguages.*)', | |
| 41 ], | |
| 42 | |
| 43 /** | |
| 44 * Handler for removing a language. | |
| 45 * @param {!{model: !{item: !Language}}} e | |
|
Dan Beam
2015/09/23 23:28:17
!!!
Dan Beam
2015/09/23 23:28:17
@private for all of these
michaelpg
2015/09/24 02:15:20
???
would you prefer it not be typed?
"model" is
michaelpg
2015/09/24 02:15:20
Done.
Dan Beam
2015/09/24 16:35:26
nah, it was just funny
| |
| 46 */ | |
| 47 onRemoveLanguageTap_: function(e) { | |
| 48 this.$.languages.disableLanguage(e.model.item.language.code); | |
| 49 }, | |
| 50 | |
| 51 /** | |
| 52 * Handler for adding a language. | |
| 53 * @param {!{model: {item: !chrome.languageSettingsPrivate.Language}}} e | |
| 54 */ | |
| 55 onAddLanguageTap_: function(e) { | |
| 56 this.$.languages.enableLanguage(e.model.item.code); | |
| 57 }, | |
| 58 | |
| 59 /** | |
| 60 * True if a language is not the prospective UI language or the last remaining | |
| 61 * language. | |
| 62 * @param {string} languageCode | |
| 63 * @param {!Array<!LanguageInfo>} enableLanguage | |
| 64 * @return {boolean} | |
| 65 */ | |
| 66 canRemoveLanguage_: function(languageCode, enabledLanguages) { | |
| 67 var appLocale = this.prefs.intl.app_locale.value || navigator.language; | |
| 68 if (languageCode == appLocale) | |
| 69 return false; | |
| 70 if (enabledLanguages.length == 1) | |
| 71 return false; | |
| 72 return true; | |
| 73 }, | |
| 74 | |
| 75 /** | |
| 76 * Updates the available languages to be bound to the iron-list. | |
| 77 * TODO(michaelpg): Update properties of individual items instead of | |
| 78 * rebuilding entire list. | |
| 79 */ | |
| 80 enabledLanguagesChanged_: function() { | |
| 81 var availableLanguages = []; | |
| 82 for (var i = 0; i < this.languages.supportedLanguages.length; i++) { | |
| 83 var language = this.languages.supportedLanguages[i]; | |
| 84 availableLanguages.push({ | |
| 85 code: language.code, | |
| 86 displayName: language.displayName, | |
| 87 enabled: this.$.languages.isEnabled(language.code) | |
| 88 }); | |
| 89 } | |
| 90 this.availableLanguages_ = availableLanguages; | |
| 91 }, | |
| 92 }); | |
| OLD | NEW |