Basic search working for #32

This commit is contained in:
tidusjar 2016-04-01 10:15:09 +01:00
commit 1596dce629
7 changed files with 296 additions and 15 deletions

View file

@ -6,19 +6,22 @@
});
var searchSource = $("#search-template").html();
var musicSource = $("#music-template").html();
var searchTemplate = Handlebars.compile(searchSource);
var musicTemplate = Handlebars.compile(musicSource);
var noResultsHtml = "<div class='no-search-results'>" +
"<i class='fa fa-film no-search-results-icon'></i><div class='no-search-results-text'>Sorry, we didn't find any results!</div></div>";
var movieTimer = 0;
var tvimer = 0;
var noResultsMusic = "<div class='no-search-results'>" +
"<i class='fa fa-headphones no-search-results-icon'></i><div class='no-search-results-text'>Sorry, we didn't find any results!</div></div>";
var searchTimer = 0;
// Type in movie search
$("#movieSearchContent").on("input", function () {
if (movieTimer) {
clearTimeout(movieTimer);
if (searchTimer) {
clearTimeout(searchTimer);
}
$('#movieSearchButton').attr("class","fa fa-spinner fa-spin");
movieTimer = setTimeout(movieSearch, 400);
searchTimer = setTimeout(movieSearch, 400);
});
@ -34,11 +37,11 @@ $('#moviesInTheaters').on('click', function (e) {
// Type in TV search
$("#tvSearchContent").on("input", function () {
if (tvimer) {
clearTimeout(tvimer);
if (searchTimer) {
clearTimeout(searchTimer);
}
$('#tvSearchButton').attr("class", "fa fa-spinner fa-spin");
tvimer = setTimeout(tvSearch, 400);
searchTimer = setTimeout(tvSearch, 400);
});
// Click TV dropdown option
@ -72,6 +75,16 @@ $(document).on("click", ".dropdownTv", function (e) {
sendRequestAjax(data, type, url, buttonId);
});
// Search Music
$("#musicSearchContent").on("input", function () {
if (searchTimer) {
clearTimeout(searchTimer);
}
$('#musicSearchButton').attr("class", "fa fa-spinner fa-spin");
searchTimer = setTimeout(musicSearch, 400);
});
// Click Request for movie
$(document).on("click", ".requestMovie", function (e) {
e.preventDefault();
@ -133,7 +146,7 @@ function moviesComingSoon() {
}
function moviesInTheaters() {
getMovies("/search/movie/playing")
getMovies("/search/movie/playing");
}
function getMovies(url) {
@ -179,6 +192,29 @@ function getTvShows(url) {
});
};
function musicSearch() {
var query = $("#musicSearchContent").val();
getMusic("/search/music/" + query);
}
function getMusic(url) {
$("#musicList").html("");
$.ajax(url).success(function (results) {
if (results.count > 0) {
results.releases.forEach(function (result) {
var context = buildMusicContext(result);
var html = musicTemplate(context);
$("#musicList").append(html);
});
}
else {
$("#musicList").html(noResultsMusic);
}
$('#musicSearchButton').attr("class", "fa fa-search");
});
};
function buildMovieContext(result) {
var date = new Date(result.releaseDate);
@ -212,3 +248,16 @@ function buildTvShowContext(result) {
};
return context;
}
function buildMusicContext(result) {
var context = {
id: result.id,
title: result.title,
overview: result.disambiguation,
year: result.date,
type: "music"
};
return context;
}