dont search empty string, get 20 tags instead of 10

This commit is contained in:
barisusakli
2014-10-17 19:12:18 -04:00
parent 93d4a7c1f1
commit d2334fbb4a
3 changed files with 14 additions and 2 deletions

View File

@@ -14,6 +14,11 @@ define('forum/tags', ['forum/infinitescroll'], function(infinitescroll) {
clearTimeout(timeoutId); clearTimeout(timeoutId);
timeoutId = 0; timeoutId = 0;
} }
if (!$('#tag-search').val().length) {
return;
}
timeoutId = setTimeout(function() { timeoutId = setTimeout(function() {
socket.emit('topics.searchAndLoadTags', {query: $('#tag-search').val()}, function(err, results) { socket.emit('topics.searchAndLoadTags', {query: $('#tag-search').val()}, function(err, results) {
if (err) { if (err) {

View File

@@ -521,6 +521,12 @@ SocketTopics.search = function(socket, data, callback) {
}; };
SocketTopics.searchAndLoadTags = function(socket, data, callback) { SocketTopics.searchAndLoadTags = function(socket, data, callback) {
if (!data) {
return callback(new Error('[[error:invalid-data]]'));
}
if (!data.query || !data.query.length) {
return callback(null, []);
}
topics.searchTags(data, function(err, tags) { topics.searchTags(data, function(err, tags) {
if (err) { if (err) {
return callback(err); return callback(err);

View File

@@ -222,14 +222,15 @@ module.exports = function(Topics) {
return callback(null, tags); return callback(null, tags);
} }
data.query = data.query.toLowerCase(); data.query = data.query.toLowerCase();
var matches = []; var matches = [];
for(var i=0; i<tags.length; ++i) { for(var i=0; i<tags.length; ++i) {
if (tags[i].toLowerCase().indexOf(data.query) === 0) { if (tags[i].toLowerCase().startsWith(data.query)) {
matches.push(tags[i]); matches.push(tags[i]);
} }
} }
matches = matches.slice(0, 10).sort(function(a, b) { matches = matches.slice(0, 20).sort(function(a, b) {
return a > b; return a > b;
}); });