diff --git a/ruby/lib/jam_ruby/models/search.rb b/ruby/lib/jam_ruby/models/search.rb index ec9bba695..8a213e49a 100644 --- a/ruby/lib/jam_ruby/models/search.rb +++ b/ruby/lib/jam_ruby/models/search.rb @@ -46,6 +46,7 @@ module JamRuby User.musicians end @results = rel.where("(name_tsv @@ to_tsquery('jamenglish', ?))", tsquery).limit(10) + @results end def initialize(search_results=nil) diff --git a/web/app/assets/javascripts/searchResults.js b/web/app/assets/javascripts/searchResults.js index afd4541cc..4091d832a 100644 --- a/web/app/assets/javascripts/searchResults.js +++ b/web/app/assets/javascripts/searchResults.js @@ -59,12 +59,23 @@ context.JK.SearchResultScreen.searchResults(response, false) } + function resultDivVisibility(val, isSidebar) { + if (isSidebar) { + $('div[layout=sidebar user-id=' + val.id + '].sidebar-search-connected').hide(); + $('div[layout=sidebar user-id=' + val.id + '].sidebar-search-result').show(); + } else { + $('div[user-id=' + val.id + '].search-connected').hide(); + $('div[user-id=' + val.id + '].search-result').show(); + } + } + context.JK.SearchResultScreen.searchResults = function(response, isSidebar) { var resultCount=0; + var selector; if (response.search_type === 'musicians') { resultCount = response.musicians.length; // TODO: generalize this for each search result type (band, musician, et. al.) - var selector = isSidebar ? "#template-sidebar-search-result" : "#template-search-musicians-result"; + selector = isSidebar ? "#template-musicians-sidebar-search-result" : "#template-musicians-search-result"; $.each(response.musicians, function(index, val) { // fill in template for Connect pre-click var template = $(selector).html(); @@ -73,11 +84,9 @@ avatar_url: context.JK.resolveAvatarUrl(val.photo_url), profile_url: "/#/profile/" + val.id, userName: val.name, - location: val.location + location: val.location, + instruments: getInstrumentHtml(val.instruments) }; - if (!isSidebar) { - args['instruments'] = getInstrumentHtml(val.instruments); - } selector = isSidebar ? '#sidebar-search-results' : '#search-results'; $(selector).append(context.JK.fillTemplate(template, args)); @@ -93,16 +102,7 @@ selector = isSidebar ? '#sidebar-search-results' : '#search-results'; $(selector).append(invitationSentHtml); - // initialize visibility of the divs - if (isSidebar) { - $('div[layout=sidebar user-id=' + val.id + '].sidebar-search-connected').hide(); - $('div[layout=sidebar user-id=' + val.id + '].sidebar-search-result').show(); - } else { - $('div[user-id=' + val.id + '].search-connected').hide(); - $('div[user-id=' + val.id + '].search-result').show(); - } - - // wire up button click handler if search result is not a friend or the current user + // wire up button click handler if search result is not a friend or the current use if (isSidebar) { var $sidebar = $('div[layout=sidebar] div[user-id=' + val.id + ']'); if (!val.is_friend && val.id !== context.JK.currentUserId) { @@ -118,13 +118,14 @@ $('div[user-id=' + val.id + ']').find('.btn-connect-friend').hide(); } } + resultDivVisibility(val, isSidebar); }); } else if (response.search_type === 'bands') { - } else if (response.search_type === 'fans') { - resultCount = response.fans.length; - $.each(response.fans, function(index, val) { + resultCount = response.bands.length; + $.each(response.bands, function(index, val) { // fill in template for Connect pre-click - var template = $('#template-search-fans-result').html(); + selector = isSidebar ? "#template-bands-sidebar-search-result" : "#template-bands-search-result"; + var template = $(selector).html(); var searchResultHtml = context.JK.fillTemplate(template, { userId: val.id, avatar_url: context.JK.resolveAvatarUrl(val.photo_url), @@ -133,8 +134,23 @@ location: val.location }); $('#search-results').append(searchResultHtml); - // initialize visibility of the divs - $('div[user-id=' + val.id + '].search-result').show(); + resultDivVisibility(val, isSidebar); + }); + } else if (response.search_type === 'fans') { + resultCount = response.fans.length; + $.each(response.fans, function(index, val) { + // fill in template for Connect pre-click + selector = isSidebar ? "#template-fans-sidebar-search-result" : "#template-fans-search-result"; + var template = $(selector).html(); + var searchResultHtml = context.JK.fillTemplate(template, { + userId: val.id, + avatar_url: context.JK.resolveAvatarUrl(val.photo_url), + profile_url: "/#/profile/" + val.id, + userName: val.name, + location: val.location + }); + $('#search-results').append(searchResultHtml); + resultDivVisibility(val, isSidebar); }); } if (isSidebar) { diff --git a/web/app/views/clients/_searchResults.html.erb b/web/app/views/clients/_searchResults.html.erb index cdb148294..ea9238448 100644 --- a/web/app/views/clients/_searchResults.html.erb +++ b/web/app/views/clients/_searchResults.html.erb @@ -23,7 +23,7 @@ - - + + + +