Chromium Code Reviews| Index: chrome/browser/resources/settings/languages_page/add_languages_dialog.js |
| diff --git a/chrome/browser/resources/settings/languages_page/add_languages_dialog.js b/chrome/browser/resources/settings/languages_page/add_languages_dialog.js |
| index 43457ca2e1fc70b736c2fdaaf1e4733845e9be1e..08900cfc3e0233768d3d73feec6d980316a01f9b 100644 |
| --- a/chrome/browser/resources/settings/languages_page/add_languages_dialog.js |
| +++ b/chrome/browser/resources/settings/languages_page/add_languages_dialog.js |
| @@ -30,6 +30,12 @@ Polymer({ |
| type: Boolean, |
| value: true, |
| }, |
| + |
| + /** @private */ |
| + filterValue_: { |
| + type: String, |
| + value: '', |
| + }, |
| }, |
| attached: function() { |
| @@ -41,18 +47,30 @@ Polymer({ |
| }, |
| /** |
| - * Returns the supported languages that are not yet enabled, based on |
| + * Returns the supported languages that are not yet enabled |
| + * and matching with filter keyword, based on |
| * the LanguageHelper's enabled languages list. |
| * @param {!Array<!chrome.languageSettingsPrivate.Language>} |
| * supportedLanguages |
| * @param {!Object} enabledLanguagesChange Polymer change record for |
| * |enabledLanguages|. |
| + * @param {string} filterValue Keyword to filter languages in |
| + * supported languages. |
| * @return {!Array<!chrome.languageSettingsPrivate.Language>} |
| * @private |
| */ |
| - getAvailableLanguages_: function(supportedLanguages, enabledLanguagesChange) { |
| + getAvailableLanguages_: function(supportedLanguages, |
| + enabledLanguagesChange, |
| + filterValue) { |
| return supportedLanguages.filter(function(language) { |
| - return !this.languageHelper.isLanguageEnabled(language.code); |
| + var isAvailableLanguage = |
| + !this.languageHelper.isLanguageEnabled(language.code); |
| + if (!filterValue) { |
| + return isAvailableLanguage; |
| + } else { |
| + return isAvailableLanguage && |
| + Boolean(~language.displayName.indexOf(filterValue)); |
|
michaelpg
2016/12/02 03:56:41
the ~ trick is a bit too clever; much more readabl
michaelpg
2016/12/02 03:56:41
This comparison should be case-insensitive (e.g. c
|
| + } |
| }.bind(this)); |
| }, |