OLD | NEW |
---|---|
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 'settings-languages-page' is the settings page | 6 * @fileoverview 'settings-languages-page' is the settings page |
7 * for language and input method settings. | 7 * for language and input method settings. |
8 */ | 8 */ |
9 (function() { | 9 (function() { |
10 'use strict'; | 10 'use strict'; |
(...skipping 28 matching lines...) Expand all Loading... | |
39 type: String, | 39 type: String, |
40 value: 'Placeholder, e.g. English (United States)', | 40 value: 'Placeholder, e.g. English (United States)', |
41 }, | 41 }, |
42 | 42 |
43 /** | 43 /** |
44 * The language to display the details for. | 44 * The language to display the details for. |
45 * @type {!LanguageState|undefined} | 45 * @type {!LanguageState|undefined} |
46 * @private | 46 * @private |
47 */ | 47 */ |
48 detailLanguage_: Object, | 48 detailLanguage_: Object, |
49 | |
50 /** @private */ | |
51 showAddLanguagesDialog_: Boolean, | |
49 }, | 52 }, |
50 | 53 |
51 /** | 54 /** |
52 * Handler for clicking a language on the main page, which selects the | 55 * Handler for clicking a language on the main page, which selects the |
53 * language as the prospective UI language on Chrome OS and Windows. | 56 * language as the prospective UI language on Chrome OS and Windows. |
54 * @param {!Event} e The tap event. | 57 * @param {!Event} e The tap event. |
55 */ | 58 */ |
56 onLanguageTap_: function(e) { | 59 onLanguageTap_: function(e) { |
57 // Only change the UI language on platforms that allow it. | 60 // Only change the UI language on platforms that allow it. |
58 if ((!cr.isChromeOS && !cr.isWindows) || loadTimeData.getBoolean('isGuest')) | 61 if ((!cr.isChromeOS && !cr.isWindows) || loadTimeData.getBoolean('isGuest')) |
(...skipping 23 matching lines...) Expand all Loading... | |
82 this.languageHelper.toggleSpellCheck(e.model.item.language.code, | 85 this.languageHelper.toggleSpellCheck(e.model.item.language.code, |
83 e.target.checked); | 86 e.target.checked); |
84 }, | 87 }, |
85 | 88 |
86 /** @private */ | 89 /** @private */ |
87 onBackTap_: function() { | 90 onBackTap_: function() { |
88 this.$.pages.back(); | 91 this.$.pages.back(); |
89 }, | 92 }, |
90 | 93 |
91 /** | 94 /** |
92 * Opens the Manage Languages page. | 95 * Stamps and opens the Add Languages dialog, registering a listener to |
96 * disable the dialog's dom-if again on close. | |
93 * @private | 97 * @private |
94 */ | 98 */ |
95 onManageLanguagesTap_: function() { | 99 onAddLanguagesTap_: function() { |
96 settings.navigateTo(settings.Route.MANAGE_LANGUAGES); | 100 this.showAddLanguagesDialog_ = true; |
97 this.forceRenderList_('settings-manage-languages-page'); | 101 this.async(function() { |
102 var dialog = this.$$('settings-add-languages-dialog'); | |
103 dialog.addEventListener('close', function() { | |
104 this.showAddLanguagesDialog_ = false; | |
105 }.bind(this)); | |
stevenjb
2016/08/23 17:08:04
Don't we need to call show() or showModal() on the
michaelpg
2016/08/23 23:37:06
attached() does that (so we don't have to do it as
| |
106 }); | |
98 }, | 107 }, |
99 | 108 |
100 /** | 109 /** |
101 * @param {number} index Index of the language in the list of languages. | 110 * @param {number} index Index of the language in the list of languages. |
102 * @param {!Object} change Polymer change object for languages.enabled.*. | 111 * @param {!Object} change Polymer change object for languages.enabled.*. |
103 * @return {boolean} True if the given language is the first one in the list | 112 * @return {boolean} True if the given language is the first one in the list |
104 * of languages. | 113 * of languages. |
105 * @private | 114 * @private |
106 */ | 115 */ |
107 isFirstLanguage_: function(index, change) { | 116 isFirstLanguage_: function(index, change) { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
139 /** | 148 /** |
140 * Moves the language down in the list. | 149 * Moves the language down in the list. |
141 * @param {!{model: !{item: !LanguageState}}} e | 150 * @param {!{model: !{item: !LanguageState}}} e |
142 * @private | 151 * @private |
143 */ | 152 */ |
144 onMoveDownTap_: function(e) { | 153 onMoveDownTap_: function(e) { |
145 this.languageHelper.moveLanguage(e.model.item.language.code, 1); | 154 this.languageHelper.moveLanguage(e.model.item.language.code, 1); |
146 }, | 155 }, |
147 | 156 |
148 /** | 157 /** |
158 * Disables the language. | |
159 * @param {!{model: !{item: !LanguageState}}} e | |
160 * @private | |
161 */ | |
162 onRemoveLanguageTap_: function(e) { | |
163 this.languageHelper.disableLanguage(e.model.item.language.code); | |
164 }, | |
165 | |
166 /** | |
149 * Opens the Language Detail page for the language. | 167 * Opens the Language Detail page for the language. |
150 * @param {!{model: !{item: !LanguageState}}} e | 168 * @param {!{model: !{item: !LanguageState}}} e |
151 * @private | 169 * @private |
152 */ | 170 */ |
153 onShowLanguageDetailTap_: function(e) { | 171 onShowLanguageDetailTap_: function(e) { |
154 this.detailLanguage_ = e.model.item; | 172 this.detailLanguage_ = e.model.item; |
155 settings.navigateTo(settings.Route.LANGUAGES_DETAIL); | 173 settings.navigateTo(settings.Route.LANGUAGES_DETAIL); |
156 }, | 174 }, |
157 | 175 |
158 /** | 176 /** |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
325 * HACK(michaelpg): This is necessary to show the list when navigating to | 343 * HACK(michaelpg): This is necessary to show the list when navigating to |
326 * the sub-page. Remove this function when PolymerElements/neon-animation#60 | 344 * the sub-page. Remove this function when PolymerElements/neon-animation#60 |
327 * is fixed. | 345 * is fixed. |
328 * @param {string} tagName Name of the element containing the <iron-list>. | 346 * @param {string} tagName Name of the element containing the <iron-list>. |
329 */ | 347 */ |
330 forceRenderList_: function(tagName) { | 348 forceRenderList_: function(tagName) { |
331 this.$$(tagName).$$('iron-list').fire('iron-resize'); | 349 this.$$(tagName).$$('iron-list').fire('iron-resize'); |
332 }, | 350 }, |
333 }); | 351 }); |
334 })(); | 352 })(); |
OLD | NEW |