diff --git a/public/src/client/tags.js b/public/src/client/tags.js index bf4395f497..e5c2dcaa45 100644 --- a/public/src/client/tags.js +++ b/public/src/client/tags.js @@ -14,6 +14,11 @@ define('forum/tags', ['forum/infinitescroll'], function(infinitescroll) { clearTimeout(timeoutId); timeoutId = 0; } + + if (!$('#tag-search').val().length) { + return; + } + timeoutId = setTimeout(function() { socket.emit('topics.searchAndLoadTags', {query: $('#tag-search').val()}, function(err, results) { if (err) { diff --git a/src/socket.io/topics.js b/src/socket.io/topics.js index 5ca5e37989..c7bfaa49a0 100644 --- a/src/socket.io/topics.js +++ b/src/socket.io/topics.js @@ -521,6 +521,12 @@ SocketTopics.search = 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) { if (err) { return callback(err); diff --git a/src/topics/tags.js b/src/topics/tags.js index 681d137fc9..07b65b9ceb 100644 --- a/src/topics/tags.js +++ b/src/topics/tags.js @@ -222,14 +222,15 @@ module.exports = function(Topics) { return callback(null, tags); } data.query = data.query.toLowerCase(); + var matches = []; for(var i=0; i b; });