2017-08-23 17:12:58 +02:00
|
|
|
(function ( $ ) {
|
2017-08-30 14:04:15 +02:00
|
|
|
// See organizations/view_embed.pug for example use.
|
2017-08-23 17:12:58 +02:00
|
|
|
$.fn.userSearch = function(algolia_application_id, algolia_public_key, algolia_index_users, on_selected) {
|
|
|
|
var client = algoliasearch(algolia_application_id, algolia_public_key);
|
|
|
|
var index = client.initIndex(algolia_index_users);
|
|
|
|
|
|
|
|
var target = this;
|
|
|
|
this.autocomplete({hint: false}, [
|
|
|
|
{
|
|
|
|
source: function (q, cb) {
|
|
|
|
index.search(q, {hitsPerPage: 5}, function (error, content) {
|
|
|
|
if (error) {
|
|
|
|
cb([]);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
cb(content.hits, content);
|
|
|
|
});
|
|
|
|
},
|
|
|
|
displayKey: 'full_name',
|
|
|
|
minLength: 2,
|
|
|
|
limit: 10,
|
|
|
|
templates: {
|
|
|
|
suggestion: function (hit) {
|
|
|
|
var suggestion = hit.full_name + ' (' + hit.username + ')';
|
|
|
|
var $p = $('<p>').text(suggestion);
|
|
|
|
return $p.html();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
])
|
|
|
|
.on('autocomplete:selected', function (event, hit, dataset) {
|
|
|
|
on_selected(event, hit, dataset);
|
|
|
|
})
|
|
|
|
;
|
|
|
|
|
|
|
|
return this;
|
|
|
|
};
|
|
|
|
}(jQuery));
|