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

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: setPrefValue_ 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}>|
Dan Beam 2015/09/25 01:50:50 /** * @type
michaelpg 2015/09/25 02:08:44 Done.
33 * undefined}
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
46 * @private
47 */
48 onRemoveLanguageTap_: function(e) {
49 this.$.languages.disableLanguage(e.model.item.language.code);
50 },
51
52 /**
53 * Handler for adding a language.
54 * @param {!{model: {item: !chrome.languageSettingsPrivate.Language}}} e
55 * @private
56 */
57 onAddLanguageTap_: function(e) {
58 this.$.languages.enableLanguage(e.model.item.code);
59 },
60
61 /**
62 * True if a language is not the prospective UI language or the last remaining
63 * language.
64 * @param {string} languageCode
65 * @param {!Array<!LanguageInfo>} enableLanguage
66 * @private
67 * @return {boolean}
68 */
69 canRemoveLanguage_: function(languageCode, enabledLanguages) {
70 var appLocale = this.prefs.intl.app_locale.value || navigator.language;
71 if (languageCode == appLocale)
72 return false;
73 if (enabledLanguages.length == 1)
74 return false;
75 return true;
76 },
77
78 /**
79 * Updates the available languages to be bound to the iron-list.
80 * TODO(michaelpg): Update properties of individual items instead of
81 * rebuilding entire list.
82 * @private
83 */
84 enabledLanguagesChanged_: function() {
85 var availableLanguages = [];
86 for (var i = 0; i < this.languages.supportedLanguages.length; i++) {
87 var language = this.languages.supportedLanguages[i];
88 availableLanguages.push({
89 code: language.code,
90 displayName: language.displayName,
91 enabled: this.$.languages.isEnabled(language.code)
92 });
93 }
94 this.availableLanguages_ = availableLanguages;
95 },
96 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698