From 163908b393bf69e4accbe22cbba1df50fa491649 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 13 Mar 2013 21:37:13 +0200 Subject: [PATCH] user select2 javascript --- app/assets/javascripts/users_select.js.coffee | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 app/assets/javascripts/users_select.js.coffee diff --git a/app/assets/javascripts/users_select.js.coffee b/app/assets/javascripts/users_select.js.coffee new file mode 100644 index 00000000000..70e5bb958c3 --- /dev/null +++ b/app/assets/javascripts/users_select.js.coffee @@ -0,0 +1,47 @@ +$ -> + userFormatResult = (user) -> + avatar = gon.gravatar_url + avatar = avatar.replace('%{hash}', md5(user.email)) + avatar = avatar.replace('%{size}', '24') + + markup = "
" + markup += "
" + markup += "
" + user.name + "
" + markup += "
" + user.username + "
" + markup += "
" + markup + + + $('.ajax-users-select').select2 + placeholder: "Search for a user" + minimumInputLength: 0 + ajax: # instead of writing the function to execute the request we use Select2's convenient helper + url: "/api/v3/users.json" + dataType: "json" + data: (term, page) -> + search: term # search term + per_page: 10 + private_token: gon.api_token + + results: (data, page) -> # parse the results into the format expected by Select2. + # since we are using custom formatting functions we do not need to alter remote JSON data + results: data + + initSelection: (element, callback) -> + id = $(element).val() + if id isnt "" + $.ajax("http://api.rottentomatoes.com/api/public/v1.0/users/" + id + ".json", + data: + apikey: "ju6z9mjyajq2djue3gbvv26t" + + dataType: "jsonp" + ).done (data) -> + callback data + + + formatResult: userFormatResult # omitted for brevity, see the source of this page + #formatSelection: userFormatSelection # omitted for brevity, see the source of this page + dropdownCssClass: "ajax-users-dropdown" # apply css that makes the dropdown taller + escapeMarkup: (m) -> # we do not want to escape markup since we are displaying html in results + m + -- GitLab