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

Side by Side Diff: chrome/browser/resources/settings/languages_page/manage_languages_page.js

Issue 1351623008: MD Settings: Languages model for language pages (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@SingletonPrefs
Patch Set: Created 5 years, 2 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
(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 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698