From fa190472201433cc9b3045371b1fab39c59d0e4b Mon Sep 17 00:00:00 2001 From: evazion Date: Sun, 11 Aug 2019 15:38:39 -0500 Subject: [PATCH] autocomplete: add username autocompletion sitewide. --- .../src/javascripts/autocomplete.js.erb | 29 ++++++++++--------- app/views/artist_versions/search.html.erb | 2 +- app/views/artists/_search.html.erb | 2 +- app/views/bans/_form.html.erb | 2 +- app/views/bans/_search.html.erb | 4 +-- .../bulk_update_requests/_search.html.erb | 4 +-- app/views/comments/search.html.erb | 2 +- app/views/dmails/_form.html.erb | 2 +- app/views/dmails/_search.html.erb | 4 +-- app/views/forum_posts/search.html.erb | 2 +- app/views/janitor_trials/new.html.erb | 2 +- app/views/mod_actions/_search.html.erb | 2 +- app/views/moderator/bulk_reverts/new.html.erb | 2 +- .../dashboards/_search_ip_addr.html.erb | 2 +- app/views/notes/search.html.erb | 2 +- app/views/pools/_search.html.erb | 2 +- app/views/post_appeals/_search.html.erb | 2 +- app/views/post_approvals/index.html.erb | 2 +- app/views/post_flags/_search.html.erb | 2 +- app/views/post_replacements/index.html.erb | 2 +- app/views/post_versions/search.html.erb | 2 +- app/views/user_feedbacks/new.html.erb | 2 +- app/views/user_feedbacks/search.html.erb | 6 ++-- app/views/users/_quick_search.html.erb | 2 +- app/views/users/search.html.erb | 4 +-- app/views/wiki_pages/search.html.erb | 2 +- 26 files changed, 45 insertions(+), 46 deletions(-) diff --git a/app/javascript/src/javascripts/autocomplete.js.erb b/app/javascript/src/javascripts/autocomplete.js.erb index a7fa76055..2b7db8cff 100644 --- a/app/javascript/src/javascripts/autocomplete.js.erb +++ b/app/javascript/src/javascripts/autocomplete.js.erb @@ -31,6 +31,7 @@ Autocomplete.initialize_all = function() { this.initialize_mention_autocomplete($(".autocomplete-mentions textarea")); this.initialize_artist_autocomplete($('[data-autocomplete="artist"]')); this.initialize_pool_autocomplete($('[data-autocomplete="pool"]')); + this.initialize_user_autocomplete($('[data-autocomplete="user"]')); this.initialize_wiki_autocomplete($('[data-autocomplete="wiki-page"]')); } } @@ -145,7 +146,7 @@ Autocomplete.initialize_tag_autocomplete = function() { case "flagger": case "upvote": case "downvote": - Autocomplete.user_source(term, resp, metatag); + Autocomplete.user_source(term, resp, metatag + ":"); break; case "pool": case "ordpool": @@ -216,6 +217,17 @@ Autocomplete.initialize_pool_autocomplete = function($fields) { }); }; +Autocomplete.initialize_user_autocomplete = function($fields) { + $fields.autocomplete({ + search: function() { + $(this).data("ui-autocomplete").menu.bindings = $(); + }, + source: function(req, resp) { + Autocomplete.user_source(req.term, resp, ""); + }, + }); +}; + Autocomplete.initialize_wiki_autocomplete = function($fields) { $fields.autocomplete({ search: function() { @@ -423,7 +435,7 @@ Autocomplete.static_metatag_source = function(term, resp, metatag) { resp(matches); } -Autocomplete.user_source = function(term, resp, metatag) { +Autocomplete.user_source = function(term, resp, prefix) { return $.ajax({ url: "/users.json", data: { @@ -434,21 +446,10 @@ Autocomplete.user_source = function(term, resp, metatag) { }, method: "get", success: function(data) { - var prefix = ""; - var display_name = null; - - if (metatag === "@") { - prefix = "@"; - display_name = function(name) {return name;}; - } else { - prefix = metatag + ":"; - display_name = function(name) {return name.replace(/_/g, " ");}; - } - resp($.map(data, function(user) { return { type: "user", - label: display_name(user.name), + label: user.name.replace(/_/, " "), value: prefix + user.name, level: user.level_string }; diff --git a/app/views/artist_versions/search.html.erb b/app/views/artist_versions/search.html.erb index e1de40803..e89c10fca 100644 --- a/app/views/artist_versions/search.html.erb +++ b/app/views/artist_versions/search.html.erb @@ -4,7 +4,7 @@