From bbd428fb949bcd410e2521c5a6f8d76109b3574f Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX Date: Fri, 25 Aug 2017 01:48:32 +0200 Subject: [PATCH] FIX: more consistent filter from keyboard on select-box --- .../discourse/components/select-box.js.es6 | 12 ++++++++++++ .../components/select-box/select-box-filter.hbs | 4 ++++ .../discourse/templates/preferences/emails.hbs | 4 ++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/components/select-box.js.es6 b/app/assets/javascripts/discourse/components/select-box.js.es6 index 961210f688a..60a3a0bcc0c 100644 --- a/app/assets/javascripts/discourse/components/select-box.js.es6 +++ b/app/assets/javascripts/discourse/components/select-box.js.es6 @@ -78,6 +78,10 @@ export default Ember.Component.extend({ this.set("content", []); } + if (this.site.isMobileDevice) { + this.set("filterable", false); + } + this.setProperties({ componentId: this.elementId, filteredContent: [] @@ -193,6 +197,13 @@ export default Ember.Component.extend({ this.$(".select-box-offscreen").blur(); return false; } + + if (keyCode >= 65 && keyCode <= 90) { + this.setProperties({expanded: true, focused: false}); + Ember.run.schedule("afterRender", () => { + this.$(".filter-query").focus().val(String.fromCharCode(keyCode)); + }); + } }); this.$(".select-box-offscreen").on("focusout.select-box", () => { @@ -259,6 +270,7 @@ export default Ember.Component.extend({ _bindTab() { $(document).on("keydown.select-box", (event) => { const keyCode = event.keyCode || event.which; + if (keyCode === 9) { this.set("expanded", false); } diff --git a/app/assets/javascripts/discourse/templates/components/select-box/select-box-filter.hbs b/app/assets/javascripts/discourse/templates/components/select-box/select-box-filter.hbs index 269abe97461..3ec68be715c 100644 --- a/app/assets/javascripts/discourse/templates/components/select-box/select-box-filter.hbs +++ b/app/assets/javascripts/discourse/templates/components/select-box/select-box-filter.hbs @@ -3,6 +3,10 @@ class="filter-query" placeholder=filterPlaceholder key-up=onFilterChange + autocomplete="off" + autocorrect="off" + autocapitalize="off" + spellcheck=false }} {{#if filterIcon}} diff --git a/app/assets/javascripts/discourse/templates/preferences/emails.hbs b/app/assets/javascripts/discourse/templates/preferences/emails.hbs index 375bb5124dc..72e2f9a18a8 100644 --- a/app/assets/javascripts/discourse/templates/preferences/emails.hbs +++ b/app/assets/javascripts/discourse/templates/preferences/emails.hbs @@ -2,7 +2,7 @@
- {{combo-box valueAttribute="value" content=previousRepliesOptions value=model.user_option.email_previous_replies}} + {{select-box idKey="value" textKey="name" content=previousRepliesOptions value=model.user_option.email_previous_replies}}
{{preference-checkbox labelKey="user.email_in_reply_to" checked=model.user_option.email_in_reply_to}} {{preference-checkbox labelKey="user.email_private_messages" checked=model.user_option.email_private_messages}} @@ -25,7 +25,7 @@ {{preference-checkbox labelKey="user.email_digests.title" disabled=model.user_option.mailing_list_mode checked=model.user_option.email_digests}} {{#if model.user_option.email_digests}}
- {{combo-box valueAttribute="value" content=digestFrequencies value=model.user_option.digest_after_minutes}} + {{select-box idKey="value" filterable=true textKey="name" content=digestFrequencies value=model.user_option.digest_after_minutes}}
{{preference-checkbox labelKey="user.include_tl0_in_digests" disabled=model.user_option.mailing_list_mode checked=model.user_option.include_tl0_in_digests}} {{/if}}