Chromium Code Reviews| Index: chrome/browser/resources/settings/languages_page/languages_page.js |
| diff --git a/chrome/browser/resources/settings/languages_page/languages_page.js b/chrome/browser/resources/settings/languages_page/languages_page.js |
| index 5168f03669f61214e91bf9cc520c1c286002332c..00de1b579dc7c3422404321ea4a9392f30c13cbf 100644 |
| --- a/chrome/browser/resources/settings/languages_page/languages_page.js |
| +++ b/chrome/browser/resources/settings/languages_page/languages_page.js |
| @@ -51,6 +51,10 @@ Polymer({ |
| showAddLanguagesDialog_: Boolean, |
| }, |
| + ready: function() { |
| + this.menu_ = /** @type {CrSharedMenuElement} */(this.$$('cr-shared-menu')); |
| + }, |
| + |
| /** |
| * Handler for clicking a language on the main page, which selects the |
| * language as the prospective UI language on Chrome OS and Windows. |
| @@ -68,16 +72,6 @@ Polymer({ |
| }, |
| /** |
| - * Stops tap events on the language options menu, its trigger, or its items |
| - * from bubbling up to the language itself. Tap events on the language are |
| - * handled in onLanguageTap_. |
| - * @param {!Event} e The tap event. |
| - */ |
| - stopPropagationHandler_: function(e) { |
| - e.stopPropagation(); |
| - }, |
| - |
| - /** |
| * Handler for enabling or disabling spell check. |
| * @param {!{target: Element, model: !{item: !LanguageState}}} e |
| */ |
| @@ -107,25 +101,21 @@ Polymer({ |
| }, |
| /** |
| - * @param {number} index Index of the language in the list of languages. |
| - * @param {!Object} change Polymer change object for languages.enabled.*. |
| - * @return {boolean} True if the given language is the first one in the list |
| - * of languages. |
| + * @return {boolean} True if |language| is first in the list of enabled |
| + * languages. Used to hide the "Move up" option. |
| * @private |
| */ |
| - isFirstLanguage_: function(index, change) { |
| - return index == 0; |
| + isFirstLanguage_: function(language) { |
|
stevenjb
2016/08/25 16:36:57
@param for language
michaelpg
2016/08/26 22:16:21
Done.
|
| + return language == this.languages.enabled[0]; |
| }, |
| /** |
| - * @param {number} index Index of the language in the list of languages. |
| - * @param {!Object} change Polymer change object for languages.enabled.*. |
| - * @return {boolean} True if the given language is the last one in the list of |
| - * languages. |
| + * @return {boolean} True if |language| is last in the list of enabled |
| + * languages. Used to hide the "Move down" option. |
| * @private |
| */ |
| - isLastLanguage_: function(index, change) { |
| - return index == this.languages.enabled.length - 1; |
| + isLastLanguage_: function(language) { |
|
stevenjb
2016/08/25 16:36:57
ditto
michaelpg
2016/08/26 22:16:20
Done.
|
| + return language == this.languages.enabled.slice(-1)[0]; |
|
stevenjb
2016/08/25 16:36:57
eww, but I guess that's JS for you. (I did a sear
michaelpg
2016/08/26 22:16:20
pretty sure creating a 1-length array containing a
|
| }, |
| /** |
| @@ -138,38 +128,37 @@ Polymer({ |
| /** |
| * Moves the language up in the list. |
| - * @param {!{model: !{item: !LanguageState}}} e |
| * @private |
| */ |
| onMoveUpTap_: function(e) { |
|
stevenjb
2016/08/25 16:36:57
elim (e) if unused
michaelpg
2016/08/26 22:16:20
Done.
|
| - this.languageHelper.moveLanguage(e.model.item.language.code, -1); |
| + this.menu_.closeMenu(); |
| + this.languageHelper.moveLanguage(this.detailLanguage_.language.code, -1); |
| }, |
| /** |
| * Moves the language down in the list. |
| - * @param {!{model: !{item: !LanguageState}}} e |
| * @private |
| */ |
| onMoveDownTap_: function(e) { |
| - this.languageHelper.moveLanguage(e.model.item.language.code, 1); |
| + this.menu_.closeMenu(); |
| + this.languageHelper.moveLanguage(this.detailLanguage_.language.code, 1); |
| }, |
| /** |
| * Disables the language. |
| - * @param {!{model: !{item: !LanguageState}}} e |
| * @private |
| */ |
| onRemoveLanguageTap_: function(e) { |
| - this.languageHelper.disableLanguage(e.model.item.language.code); |
| + this.menu_.closeMenu(); |
| + this.languageHelper.disableLanguage(this.detailLanguage_.language.code); |
| }, |
| /** |
| * Opens the Language Detail page for the language. |
| - * @param {!{model: !{item: !LanguageState}}} e |
| * @private |
| */ |
| - onShowLanguageDetailTap_: function(e) { |
| - this.detailLanguage_ = e.model.item; |
| + onShowLanguageDetailTap_: function() { |
| + this.menu_.closeMenu(); |
| settings.navigateTo(settings.Route.LANGUAGES_DETAIL); |
| }, |
| @@ -348,5 +337,12 @@ Polymer({ |
| forceRenderList_: function(tagName) { |
| this.$$(tagName).$$('iron-list').fire('iron-resize'); |
| }, |
| + |
| + toggleMenu_: function(e) { |
|
stevenjb
2016/08/25 16:36:57
@param for e
michaelpg
2016/08/26 22:16:20
Done.
|
| + e.stopPropagation(); // Prevent the tap event from closing the menu. |
| + |
| + this.detailLanguage_ = e.model.item; |
| + this.menu_.toggleMenu(e.target, e.model.item); |
| + }, |
| }); |
| })(); |