vrfs988: refactoring search results; added fans/bands result template handling
This commit is contained in:
parent
a4816fecfd
commit
da980ce699
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/template" id="template-search-musicians-result">
|
||||
<script type="text/template" id="template-musicians-search-result">
|
||||
<div user-id="{userId}" class="search-result">
|
||||
<a href="#" class="avatar-small"><img src="{avatar_url}" /></a>
|
||||
<div class="search-result-name"><a href="{profile_url}">{userName}</a><br />
|
||||
|
|
@ -49,7 +49,17 @@
|
|||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/template" id="template-search-fans-result">
|
||||
<script type="text/template" id="template-bands-search-result">
|
||||
<div user-id="{userId}" class="search-result">
|
||||
<a href="#" class="avatar-small"><img src="{avatar_url}" /></a>
|
||||
<div class="search-result-name"><a href="{profile_url}">{userName}</a><br />
|
||||
<span class="search-result-location">{location}</span>
|
||||
</div>
|
||||
<br clear="left" />
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/template" id="template-fans-search-result">
|
||||
<div user-id="{userId}" class="search-result">
|
||||
<a href="#" class="avatar-small"><img src="{avatar_url}" /></a>
|
||||
<div class="search-result-name"><a href="{profile_url}">{userName}</a><br />
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@
|
|||
</div>
|
||||
|
||||
<!-- Search result template -->
|
||||
<script type="text/template" id="template-sidebar-search-result">
|
||||
<script type="text/template" id="template-musicians-sidebar-search-result">
|
||||
<div user-id="{userId}" class="sidebar-search-result">
|
||||
<a class="avatar-small"><img src="{avatar_url}" /></a>
|
||||
<div class="result-name"><a href="{profile_url}">{userName}</a><br />
|
||||
|
|
@ -134,6 +134,22 @@
|
|||
<br clear="all" />
|
||||
</div>
|
||||
</script>
|
||||
<script type="text/template" id="template-bands-sidebar-search-result">
|
||||
<div user-id="{userId}" class="sidebar-search-result">
|
||||
<a class="avatar-small"><img src="{avatar_url}" /></a>
|
||||
<div class="result-name"><a href="{profile_url}">{userName}</a><br />
|
||||
<span class="result-location">{location}</span>
|
||||
</div><br />
|
||||
</div>
|
||||
</script>
|
||||
<script type="text/template" id="template-fans-sidebar-search-result">
|
||||
<div user-id="{userId}" class="sidebar-search-result">
|
||||
<a class="avatar-small"><img src="{avatar_url}" /></a>
|
||||
<div class="result-name"><a href="{profile_url}">{userName}</a><br />
|
||||
<span class="result-location">{location}</span>
|
||||
</div><br />
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<!-- Friend panel template -->
|
||||
<script type="text/template" id="template-friend-panel">
|
||||
|
|
|
|||
Loading…
Reference in New Issue