From 4b5d5b4bd98ab6f74326c365e1d03ffa80be0830 Mon Sep 17 00:00:00 2001 From: pichalite Date: Mon, 8 Feb 2016 23:01:23 +0000 Subject: [PATCH 1/8] search user and initiate chat from expanded chat page --- public/src/app.js | 7 +++- public/src/client/chats.js | 71 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) diff --git a/public/src/app.js b/public/src/app.js index 16af336b40..855e6192ee 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -276,7 +276,12 @@ app.cacheBuster = null; if (err) { return app.alertError(err.message); } - app.openChat(roomId); + if (!ajaxify.currentPage.match(/^chats\//)) { + app.openChat(roomId); + } + else { + ajaxify.go('chats/' + roomId); + } }); }; diff --git a/public/src/client/chats.js b/public/src/client/chats.js index 9b35d735cb..a914aeff82 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -29,6 +29,8 @@ define('forum/chats', ['components', 'string', 'sounds', 'forum/infinitescroll', Chats.scrollToBottom($('.expanded-chat ul')); Chats.initialised = true; + + Chats.handleSearch(); if (ajaxify.data.hasOwnProperty('roomId')) { components.get('chat/input').focus(); @@ -530,6 +532,75 @@ define('forum/chats', ['components', 'string', 'sounds', 'forum/infinitescroll', callback(); }); } + + Chats.handleSearch = function() { + var timeoutId = 0; + + components.get('chat/search').on('keyup', function() { + if (timeoutId) { + clearTimeout(timeoutId); + timeoutId = 0; + } + + timeoutId = setTimeout(doSearch, 250); + }); + + function doSearch() { + var username = components.get('chat/search').val(); + var chatsListEl = $('[component="chat/search/list"]'); + + if(username) { + socket.emit('user.search', { + query: username, + searchBy: 'username' + }, function(err, data) { + if (err) { + return app.alertError(err.message); + } + + chatsListEl.empty(); + + if (data.users.length === 0) { + chatsListEl.append('
  • No users found!
  • '); + } + else { + data.users.forEach(function(userObj) { + function createUserImage() { + return (userObj.picture ? + '' : + '
    ' + userObj['icon:text'] + '
    ') + + ' ' + + userObj.username; + } + + var chatEl = $('
  • ') + .attr('data-uid', userObj.uid) + .appendTo(chatsListEl); + + chatEl.append(createUserImage()); + + chatEl.click(function() { + socket.emit('modules.chats.hasPrivateChat', userObj.uid, function(err, roomId) { + if (err) { + return app.alertError(err.message); + } + if (roomId) { + ajaxify.go('chats/' + roomId); + } else { + app.newChat(userObj.uid); + } + }); + }); + }); + } + + }); + } + else { + chatsListEl.empty(); + } + } + }; return Chats; }); From 2c5e9dc4cfa55942665ea2b1f8ad2b20dbdbc0bb Mon Sep 17 00:00:00 2001 From: pichalite Date: Mon, 8 Feb 2016 15:03:30 -0800 Subject: [PATCH 2/8] fix indent --- public/src/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/src/app.js b/public/src/app.js index 855e6192ee..c3bb7ee609 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -276,7 +276,7 @@ app.cacheBuster = null; if (err) { return app.alertError(err.message); } - if (!ajaxify.currentPage.match(/^chats\//)) { + if (!ajaxify.currentPage.match(/^chats\//)) { app.openChat(roomId); } else { From 99014380019acd2baedeb3b5556bb4621b4deb36 Mon Sep 17 00:00:00 2001 From: pichalite Date: Tue, 9 Feb 2016 06:11:16 -0800 Subject: [PATCH 3/8] indentation --- public/src/app.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/public/src/app.js b/public/src/app.js index c3bb7ee609..0b23476968 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -278,8 +278,7 @@ app.cacheBuster = null; } if (!ajaxify.currentPage.match(/^chats\//)) { app.openChat(roomId); - } - else { + } else { ajaxify.go('chats/' + roomId); } }); From 971c3eb0e1f61003ac6c3dc05b1812e9504e0b5f Mon Sep 17 00:00:00 2001 From: pichalite Date: Tue, 9 Feb 2016 06:16:11 -0800 Subject: [PATCH 4/8] indentation --- public/src/client/chats.js | 51 ++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/public/src/client/chats.js b/public/src/client/chats.js index a914aeff82..617b30e23b 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -546,11 +546,11 @@ define('forum/chats', ['components', 'string', 'sounds', 'forum/infinitescroll', }); function doSearch() { - var username = components.get('chat/search').val(); - var chatsListEl = $('[component="chat/search/list"]'); + var username = components.get('chat/search').val(); + var chatsListEl = $('[component="chat/search/list"]'); - if(username) { - socket.emit('user.search', { + if(username) { + socket.emit('user.search', { query: username, searchBy: 'username' }, function(err, data) { @@ -558,26 +558,25 @@ define('forum/chats', ['components', 'string', 'sounds', 'forum/infinitescroll', return app.alertError(err.message); } - chatsListEl.empty(); + chatsListEl.empty(); - if (data.users.length === 0) { - chatsListEl.append('
  • No users found!
  • '); - } - else { - data.users.forEach(function(userObj) { + if (data.users.length === 0) { + chatsListEl.append('
  • No users found!
  • '); + } else { + data.users.forEach(function(userObj) { function createUserImage() { - return (userObj.picture ? - '' : - '
    ' + userObj['icon:text'] + '
    ') + - ' ' + - userObj.username; - } + return (userObj.picture ? + '' : + '
    ' + userObj['icon:text'] + '
    ') + + ' ' + + userObj.username; + } var chatEl = $('
  • ') - .attr('data-uid', userObj.uid) - .appendTo(chatsListEl); + .attr('data-uid', userObj.uid) + .appendTo(chatsListEl); - chatEl.append(createUserImage()); + chatEl.append(createUserImage()); chatEl.click(function() { socket.emit('modules.chats.hasPrivateChat', userObj.uid, function(err, roomId) { @@ -592,15 +591,13 @@ define('forum/chats', ['components', 'string', 'sounds', 'forum/infinitescroll', }); }); }); - } + } - }); - } - else { - chatsListEl.empty(); - } - } + }); + } else { + chatsListEl.empty(); + } + } }; - return Chats; }); From 272380062875768d3564a57c25ebc11e04e34b2e Mon Sep 17 00:00:00 2001 From: pichalite Date: Tue, 9 Feb 2016 06:17:31 -0800 Subject: [PATCH 5/8] indentation --- public/src/client/chats.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/public/src/client/chats.js b/public/src/client/chats.js index 617b30e23b..83a867516e 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -580,15 +580,15 @@ define('forum/chats', ['components', 'string', 'sounds', 'forum/infinitescroll', chatEl.click(function() { socket.emit('modules.chats.hasPrivateChat', userObj.uid, function(err, roomId) { - if (err) { - return app.alertError(err.message); - } - if (roomId) { - ajaxify.go('chats/' + roomId); - } else { - app.newChat(userObj.uid); - } - }); + if (err) { + return app.alertError(err.message); + } + if (roomId) { + ajaxify.go('chats/' + roomId); + } else { + app.newChat(userObj.uid); + } + }); }); }); } From 44d4c2bc7c659c2dfb692eb1c3310afad34f1eff Mon Sep 17 00:00:00 2001 From: pichalite Date: Wed, 10 Feb 2016 06:16:48 -0800 Subject: [PATCH 6/8] hopefully I got everything right this time!! --- public/src/client/chats.js | 79 +++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 40 deletions(-) diff --git a/public/src/client/chats.js b/public/src/client/chats.js index 83a867516e..a85d527b0a 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -548,55 +548,54 @@ define('forum/chats', ['components', 'string', 'sounds', 'forum/infinitescroll', function doSearch() { var username = components.get('chat/search').val(); var chatsListEl = $('[component="chat/search/list"]'); - - if(username) { - socket.emit('user.search', { + + if (!username) { + return chatsListEl.empty(); + } + + socket.emit('user.search', { query: username, searchBy: 'username' - }, function(err, data) { - if (err) { - return app.alertError(err.message); - } + }, function(err, data) { + if (err) { + return app.alertError(err.message); + } - chatsListEl.empty(); + chatsListEl.empty(); - if (data.users.length === 0) { - chatsListEl.append('
  • No users found!
  • '); - } else { - data.users.forEach(function(userObj) { - function createUserImage() { - return (userObj.picture ? - '' : - '
    ' + userObj['icon:text'] + '
    ') + - ' ' + - userObj.username; - } + if (data.users.length === 0) { + chatsListEl.translateHtml('
  • [[users:no-users-found]]
  • '); + } else { + data.users.forEach(function(userObj) { + function createUserImage() { + return (userObj.picture ? + '' : + '
    ' + userObj['icon:text'] + '
    ') + + ' ' + userObj.username; + } - var chatEl = $('
  • ') - .attr('data-uid', userObj.uid) - .appendTo(chatsListEl); + var chatEl = $('
  • ') + .attr('data-uid', userObj.uid) + .appendTo(chatsListEl); - chatEl.append(createUserImage()); + chatEl.append(createUserImage()); - chatEl.click(function() { - socket.emit('modules.chats.hasPrivateChat', userObj.uid, function(err, roomId) { - if (err) { - return app.alertError(err.message); - } - if (roomId) { - ajaxify.go('chats/' + roomId); - } else { - app.newChat(userObj.uid); - } - }); - }); + chatEl.click(function() { + socket.emit('modules.chats.hasPrivateChat', userObj.uid, function(err, roomId) { + if (err) { + return app.alertError(err.message); + } + if (roomId) { + ajaxify.go('chats/' + roomId); + } else { + app.newChat(userObj.uid); + } + }); }); - } + }); + } - }); - } else { - chatsListEl.empty(); - } + }); } }; return Chats; From d83b11dde3398b1642973a699e8f01e8912b57a4 Mon Sep 17 00:00:00 2001 From: pichalite Date: Wed, 10 Feb 2016 14:25:12 +0000 Subject: [PATCH 7/8] add language string --- public/language/en_GB/users.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/public/language/en_GB/users.json b/public/language/en_GB/users.json index 5616cda575..1232555be5 100644 --- a/public/language/en_GB/users.json +++ b/public/language/en_GB/users.json @@ -17,5 +17,6 @@ "unread_topics": "Unread Topics", "categories": "Categories", "tags": "Tags", - "map": "Map" + "map": "Map", + "no-users-found": "No users found!" } \ No newline at end of file From d81b6947f6206238dfc96bd6467e9442ea18b895 Mon Sep 17 00:00:00 2001 From: pichalite Date: Wed, 10 Feb 2016 10:58:57 -0800 Subject: [PATCH 8/8] conditional change --- public/src/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/src/app.js b/public/src/app.js index 0b23476968..9fbe1c9f14 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -276,7 +276,7 @@ app.cacheBuster = null; if (err) { return app.alertError(err.message); } - if (!ajaxify.currentPage.match(/^chats\//)) { + if (!ajaxify.currentPage.startsWith('chats/')) { app.openChat(roomId); } else { ajaxify.go('chats/' + roomId);