Files
NodeBB/public/src/modules/autocomplete.js

76 lines
1.6 KiB
JavaScript
Raw Normal View History

2015-02-19 15:56:04 -05:00
'use strict';
/* globals define, socket, app */
define('autocomplete', function() {
var module = {};
2015-06-15 16:03:38 -04:00
module.user = function (input, onselect) {
2015-06-08 16:58:53 -04:00
app.loadJQueryUI(function() {
2015-06-15 16:03:38 -04:00
input.autocomplete({
2015-06-08 16:58:53 -04:00
delay: 100,
2015-06-15 16:03:38 -04:00
select: onselect,
2015-06-08 16:58:53 -04:00
source: function(request, response) {
socket.emit('user.search', {query: request.term}, function(err, result) {
if (err) {
return app.alertError(err.message);
}
2015-02-19 15:56:04 -05:00
2015-06-08 16:58:53 -04:00
if (result && result.users) {
var names = result.users.map(function(user) {
return user && {
label: user.username,
value: user.username,
user: {
uid: user.uid,
name: user.username,
slug: user.userslug
}
};
});
response(names);
}
$('.ui-autocomplete a').attr('data-ajaxify', 'false');
});
}
});
2015-02-19 15:56:04 -05:00
});
};
2015-06-15 16:03:38 -04:00
module.group = function(input, onselect) {
2015-06-08 16:58:53 -04:00
app.loadJQueryUI(function() {
2015-06-15 16:03:38 -04:00
input.autocomplete({
2015-06-08 16:58:53 -04:00
delay: 100,
2015-06-15 16:03:38 -04:00
select: onselect,
2015-06-08 16:58:53 -04:00
source: function(request, response) {
socket.emit('groups.search', {
query: request.term
2015-06-08 16:58:53 -04:00
}, function(err, results) {
if (err) {
return app.alertError(err.message);
}
2015-06-08 16:58:53 -04:00
if (results && results.length) {
var names = results.map(function(group) {
return group && {
label: group.name,
value: group.name,
group: {
name: group.name,
slug: group.slug
}
};
});
response(names);
}
$('.ui-autocomplete a').attr('data-ajaxify', 'false');
});
}
});
});
};
2015-02-19 15:56:04 -05:00
return module;
});