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

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

Issue 1370143003: MD Settings: Minor fixes to manage languages page (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@PolicyIndicatorUsers
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
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 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 /** 5 /**
6 * @fileoverview 'cr-settings-manage-languages-page' is a sub-page for enabling 6 * @fileoverview 'cr-settings-manage-languages-page' is a sub-page for enabling
7 * and disabling languages. 7 * and disabling languages.
8 * 8 *
9 * @group Chrome Settings Elements 9 * @group Chrome Settings Elements
10 * @element cr-settings-manage-languages-page 10 * @element cr-settings-manage-languages-page
(...skipping 12 matching lines...) Expand all
23 23
24 /** 24 /**
25 * @type {LanguagesModel|undefined} 25 * @type {LanguagesModel|undefined}
26 */ 26 */
27 languages: { 27 languages: {
28 type: Object, 28 type: Object,
29 notify: true, 29 notify: true,
30 }, 30 },
31 31
32 /** 32 /**
33 * @private {Array<{code: string, displayName: string, enabled: boolean}>| 33 * @private {Array<{code: string, displayName: string,
stevenjb 2015/09/28 23:51:54 !Array<!{
michaelpg 2015/09/29 00:20:32 Done.
34 * nativeDisplayName: string, enabled: boolean}>|
34 * undefined} 35 * undefined}
35 */ 36 */
36 availableLanguages_: Array, 37 availableLanguages_: Array,
37 }, 38 },
38 39
39 observers: [ 40 observers: [
40 'enabledLanguagesChanged_(languages.enabledLanguages.*)', 41 'enabledLanguagesChanged_(languages.enabledLanguages.*)',
41 ], 42 ],
42 43
43 /** 44 /**
44 * Handler for removing a language. 45 * Handler for removing a language.
45 * @param {!{model: !{item: !Language}}} e 46 * @param {!{model: !{item: !Language}}} e
46 * @private 47 * @private
47 */ 48 */
48 onRemoveLanguageTap_: function(e) { 49 onRemoveLanguageTap_: function(e) {
49 this.$.languages.disableLanguage(e.model.item.language.code); 50 this.$.languages.disableLanguage(e.model.item.language.code);
50 }, 51 },
51 52
52 /** 53 /**
53 * Handler for adding a language. 54 * Handler for adding a language.
54 * @param {!{model: {item: !chrome.languageSettingsPrivate.Language}}} e 55 * @param {!{model: {item: !chrome.languageSettingsPrivate.Language}}} e
55 * @private 56 * @private
56 */ 57 */
57 onAddLanguageTap_: function(e) { 58 onAddLanguageTap_: function(e) {
58 this.$.languages.enableLanguage(e.model.item.code); 59 this.$.languages.enableLanguage(e.model.item.code);
59 }, 60 },
60 61
61 /** 62 /**
62 * True if a language is not the prospective UI language or the last remaining 63 * True if a language is not the current or prospective UI language.
63 * language.
64 * @param {string} languageCode 64 * @param {string} languageCode
65 * @param {!Array<!LanguageInfo>} enableLanguage 65 * @param {!Array<!LanguageInfo>} enabledLanguages
66 * @return {boolean}
66 * @private 67 * @private
67 * @return {boolean}
68 */ 68 */
69 canRemoveLanguage_: function(languageCode, enabledLanguages) { 69 canRemoveLanguage_: function(languageCode, prospectiveUILanguage) {
stevenjb 2015/09/28 23:51:54 enabledLanguages or prospective... ?
michaelpg 2015/09/29 00:20:32 Done. Forgot to Closure-compile this file!
70 var appLocale = this.prefs.intl.app_locale.value || navigator.language; 70 if (languageCode == navigator.language ||
71 if (languageCode == appLocale) 71 languageCode == prospectiveUILanguage) {
72 return false; 72 return false;
73 if (enabledLanguages.length == 1) 73 }
74 return false; 74 assert(this.languages.enabledLanguages.length > 1);
75 return true; 75 return true;
76 }, 76 },
77 77
78 /** 78 /**
79 * Updates the available languages to be bound to the iron-list. 79 * Updates the available languages that are bound to the iron-list.
80 * TODO(michaelpg): Update properties of individual items instead of
81 * rebuilding entire list.
82 * @private 80 * @private
83 */ 81 */
84 enabledLanguagesChanged_: function() { 82 enabledLanguagesChanged_: function() {
85 var availableLanguages = []; 83 var availableLanguages = this.availableLanguages_ || [];
86 for (var i = 0; i < this.languages.supportedLanguages.length; i++) { 84 for (var i = 0; i < this.languages.supportedLanguages.length; i++) {
87 var language = this.languages.supportedLanguages[i]; 85 if (this.availableLanguages_) {
88 availableLanguages.push({ 86 this.set('availableLanguages_.' + i + '.enabled',
89 code: language.code, 87 this.$.languages.isEnabled(this.availableLanguages_[i].code));
stevenjb 2015/09/28 23:51:54 This is weird... if (this.availableLanguages_) the
michaelpg 2015/09/29 00:20:32 Done. This should make more sense. Hope you don't
90 displayName: language.displayName, 88 } else {
91 enabled: this.$.languages.isEnabled(language.code) 89 var language = this.languages.supportedLanguages[i];
92 }); 90 availableLanguages.push({
91 code: language.code,
92 displayName: language.displayName,
93 nativeDisplayName: language.nativeDisplayName,
94 enabled: this.$.languages.isEnabled(language.code)
95 });
96 }
93 } 97 }
94 this.availableLanguages_ = availableLanguages; 98 if (!this.availableLanguages_)
99 this.availableLanguages_ = availableLanguages;
95 }, 100 },
96 }); 101 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698