From 7c950321d1b6d0d83359d6ccc4560d3b41e53c45 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Wed, 1 Aug 2018 11:52:59 -0400 Subject: [PATCH] FIX: Allow non-english usernames in autocomplete Also add support for username formatters --- .../discourse/components/user-selector.js.es6 | 9 ++------- app/assets/javascripts/discourse/lib/user-search.js.es6 | 3 +-- .../templates/user-selector-autocomplete.raw.hbs | 4 ++-- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/app/assets/javascripts/discourse/components/user-selector.js.es6 b/app/assets/javascripts/discourse/components/user-selector.js.es6 index 2a6b4ceee43..fe239ce9cea 100644 --- a/app/assets/javascripts/discourse/components/user-selector.js.es6 +++ b/app/assets/javascripts/discourse/components/user-selector.js.es6 @@ -2,6 +2,7 @@ import { observes } from "ember-addons/ember-computed-decorators"; import TextField from "discourse/components/text-field"; import userSearch from "discourse/lib/user-search"; import { findRawTemplate } from "discourse/lib/raw-templates"; +import { formatUsername } from "discourse/lib/utilities"; export default TextField.extend({ autocorrect: false, @@ -46,11 +47,6 @@ export default TextField.extend({ return usernames; } - const termRegexp = - currentUser && currentUser.can_send_private_email_messages - ? /[^\w.-@]/g - : /[^\w.-]/g; - this.$() .val(this.get("usernames")) .autocomplete({ @@ -62,7 +58,7 @@ export default TextField.extend({ dataSource(term) { var results = userSearch({ - term: term.replace(termRegexp, ""), + term, topicId: self.get("topicId"), exclude: excludedUsernames(), includeGroups, @@ -72,7 +68,6 @@ export default TextField.extend({ group: self.get("group"), disallowEmails }); - return results; }, diff --git a/app/assets/javascripts/discourse/lib/user-search.js.es6 b/app/assets/javascripts/discourse/lib/user-search.js.es6 index ead4ca1fbc0..4270bc0051f 100644 --- a/app/assets/javascripts/discourse/lib/user-search.js.es6 +++ b/app/assets/javascripts/discourse/lib/user-search.js.es6 @@ -122,8 +122,7 @@ export default function userSearch(options) { currentTerm = term; return new Ember.RSVP.Promise(function(resolve) { - // TODO site setting for allowed regex in username - if (term.match(/[^\w_\-\.@\+]/)) { + if (term.length === 0) { resolve([]); return; } diff --git a/app/assets/javascripts/discourse/templates/user-selector-autocomplete.raw.hbs b/app/assets/javascripts/discourse/templates/user-selector-autocomplete.raw.hbs index 1c0856d2cc6..679a2120ac6 100644 --- a/app/assets/javascripts/discourse/templates/user-selector-autocomplete.raw.hbs +++ b/app/assets/javascripts/discourse/templates/user-selector-autocomplete.raw.hbs @@ -4,7 +4,7 @@
  • {{avatar user imageSize="tiny"}} - {{user.username}} + {{format-username user.username}} {{user.name}}
  • @@ -15,7 +15,7 @@
  • - {{email.username}} + {{format-username email.username}}
  • {{/each}}