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

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

Issue 2265253002: Replace Manage Languages with dialog and dropdown item (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@EnableDisableLanguage
Patch Set: indent Created 4 years, 3 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 '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
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
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));
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
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
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 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698