summaryrefslogtreecommitdiff
path: root/app/helpers/selects_helper.rb
diff options
context:
space:
mode:
authorSean McGivern <sean@gitlab.com>2016-07-13 15:38:21 +0100
committerSean McGivern <sean@gitlab.com>2016-07-27 14:10:49 +0100
commitdc4de2d8e2a42640cc24816fd28112c2f2d0bc91 (patch)
tree31b0b71bbf9cc0130fb3f7577af3d6fc9df8c152 /app/helpers/selects_helper.rb
parentaed644ccc084223cb1f9c5d955569c5ff9eeaf88 (diff)
downloadgitlab-ce-dc4de2d8e2a42640cc24816fd28112c2f2d0bc91.tar.gz
Allow skipping users in autocompleteallow-skipping-users-in-autocomplete
Pass an array of user IDs in the `skip_users` param to have them excluded from the results (unless they are explicitly included through the `current_user` or `author_id` params).
Diffstat (limited to 'app/helpers/selects_helper.rb')
-rw-r--r--app/helpers/selects_helper.rb30
1 files changed, 17 insertions, 13 deletions
diff --git a/app/helpers/selects_helper.rb b/app/helpers/selects_helper.rb
index bb395e37884..5f27e33c6ad 100644
--- a/app/helpers/selects_helper.rb
+++ b/app/helpers/selects_helper.rb
@@ -5,21 +5,9 @@ module SelectsHelper
css_class << "skip_ldap " if opts[:skip_ldap]
css_class << (opts[:class] || '')
value = opts[:selected] || ''
-
- first_user = opts[:first_user] && current_user ? current_user.username : false
-
html = {
class: css_class,
- data: {
- placeholder: opts[:placeholder] || 'Search for a user',
- null_user: opts[:null_user] || false,
- any_user: opts[:any_user] || false,
- email_user: opts[:email_user] || false,
- first_user: first_user,
- current_user: opts[:current_user] || false,
- "push-code-to-protected-branches" => opts[:push_code_to_protected_branches],
- author_id: opts[:author_id] || ''
- }
+ data: users_select_data_attributes(opts)
}
unless opts[:scope] == :all
@@ -68,4 +56,20 @@ module SelectsHelper
hidden_field_tag(id, value, class: css_class)
end
+
+ private
+
+ def users_select_data_attributes(opts)
+ {
+ placeholder: opts[:placeholder] || 'Search for a user',
+ null_user: opts[:null_user] || false,
+ any_user: opts[:any_user] || false,
+ email_user: opts[:email_user] || false,
+ first_user: opts[:first_user] && current_user ? current_user.username : false,
+ current_user: opts[:current_user] || false,
+ "push-code-to-protected-branches" => opts[:push_code_to_protected_branches],
+ author_id: opts[:author_id] || '',
+ skip_users: opts[:skip_users] ? opts[:skip_users].map(&:id) : nil,
+ }
+ end
end