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 'settings-manage-languages-page' is a sub-page for enabling | |
7 * and disabling languages. | |
8 */ | |
9 Polymer({ | |
10 is: 'settings-manage-languages-page', | |
11 | |
12 properties: { | |
13 /** | |
14 * Preferences state. | |
15 */ | |
16 prefs: { | |
17 type: Object, | |
18 notify: true, | |
19 }, | |
20 | |
21 /** | |
22 * @type {!LanguagesModel|undefined} | |
23 */ | |
24 languages: { | |
25 type: Object, | |
26 notify: true, | |
27 }, | |
28 | |
29 /** @type {!LanguageHelper} */ | |
30 languageHelper: Object, | |
31 }, | |
32 | |
33 /** | |
34 * @param {!chrome.languageSettingsPrivate.Language} language | |
35 * @param {!Object} change Polymer change object (provided in the HTML so this | |
36 * gets called whenever languages.enabled.* changes). | |
37 * @return {boolean} | |
38 * @private | |
39 */ | |
40 isCheckboxChecked_: function(language, change) { | |
41 return this.languageHelper.isLanguageEnabled(language.code); | |
42 }, | |
43 | |
44 /** | |
45 * Determines whether a language must be enabled. If so, the checkbox in the | |
46 * available languages list should not be changeable. | |
47 * @param {!chrome.languageSettingsPrivate.Language} language | |
48 * @param {!Object} change Polymer change object (provided in the HTML so this | |
49 * gets called whenever languages.enabled.* changes). | |
50 * @return {boolean} | |
51 * @private | |
52 */ | |
53 isLanguageRequired_: function(language, change) { | |
54 // This check only applies to enabled languages. | |
55 if (!this.languageHelper.isLanguageEnabled(language.code)) | |
56 return false; | |
57 return !this.languageHelper.canDisableLanguage(language.code); | |
58 }, | |
59 | |
60 /** | |
61 * Handler for removing a language. | |
62 * @param {!{model: !{item: !LanguageState}}} e | |
63 * @private | |
64 */ | |
65 onRemoveLanguageTap_: function(e) { | |
66 this.languageHelper.disableLanguage(e.model.item.language.code); | |
67 }, | |
68 | |
69 /** | |
70 * Handler for checking or unchecking a language item. | |
71 * @param {!{model: !{item: !chrome.languageSettingsPrivate.Language}, | |
72 * target: !PaperCheckboxElement}} e | |
73 * @private | |
74 */ | |
75 onLanguageCheckboxChange_: function(e) { | |
76 var code = e.model.item.code; | |
77 if (e.target.checked) | |
78 this.languageHelper.enableLanguage(code); | |
79 else | |
80 this.languageHelper.disableLanguage(code); | |
81 }, | |
82 }); | |
OLD | NEW |