From 96fde83488c19c6533a7482ee7168ea14d0cf26b Mon Sep 17 00:00:00 2001 From: Drewster727 Date: Sun, 3 Apr 2016 11:29:26 -0500 Subject: [PATCH] #131 fix for default selected tab --- PlexRequests.UI/Content/search.js | 487 +++++++++++++++--------------- 1 file changed, 249 insertions(+), 238 deletions(-) diff --git a/PlexRequests.UI/Content/search.js b/PlexRequests.UI/Content/search.js index 1c2daa06d..4dfb7dc12 100644 --- a/PlexRequests.UI/Content/search.js +++ b/PlexRequests.UI/Content/search.js @@ -5,283 +5,294 @@ return opts.inverse(this); }); -var searchSource = $("#search-template").html(); -var musicSource = $("#music-template").html(); -var searchTemplate = Handlebars.compile(searchSource); -var musicTemplate = Handlebars.compile(musicSource); +$(function () { -var searchTimer = 0; + var searchSource = $("#search-template").html(); + var musicSource = $("#music-template").html(); + var searchTemplate = Handlebars.compile(searchSource); + var musicTemplate = Handlebars.compile(musicSource); -// Type in movie search -$("#movieSearchContent").on("input", function () { - if (searchTimer) { - clearTimeout(searchTimer); + var searchTimer = 0; + + // fix for selecting a default tab + var $tabs = $('#nav-tabs').children('li'); + if ($tabs.filter(function (li) { return $(li).hasClass('active') }).length <= 0) { + $tabs.first().children('a:first-child').tab('show'); } - $('#movieSearchButton').attr("class","fa fa-spinner fa-spin"); - searchTimer = setTimeout(movieSearch, 400); -}); -$('#moviesComingSoon').on('click', function (e) { - e.preventDefault(); - moviesComingSoon(); -}); + // Type in movie search + $("#movieSearchContent").on("input", function () { + if (searchTimer) { + clearTimeout(searchTimer); + } + $('#movieSearchButton').attr("class", "fa fa-spinner fa-spin"); + searchTimer = setTimeout(movieSearch, 400); -$('#moviesInTheaters').on('click', function (e) { - e.preventDefault(); - moviesInTheaters(); -}); + }); -// Type in TV search -$("#tvSearchContent").on("input", function () { - if (searchTimer) { - clearTimeout(searchTimer); - } - $('#tvSearchButton').attr("class", "fa fa-spinner fa-spin"); - searchTimer = setTimeout(tvSearch, 400); -}); + $('#moviesComingSoon').on('click', function (e) { + e.preventDefault(); + moviesComingSoon(); + }); -// Click TV dropdown option -$(document).on("click", ".dropdownTv", function (e) { - e.preventDefault(); - var buttonId = e.target.id; - if ($("#" + buttonId).attr('disabled')) { - return; - } + $('#moviesInTheaters').on('click', function (e) { + e.preventDefault(); + moviesInTheaters(); + }); - $("#" + buttonId).prop("disabled", true); - loadingButton(buttonId, "primary"); + // Type in TV search + $("#tvSearchContent").on("input", function () { + if (searchTimer) { + clearTimeout(searchTimer); + } + $('#tvSearchButton').attr("class", "fa fa-spinner fa-spin"); + searchTimer = setTimeout(tvSearch, 400); + }); + // Click TV dropdown option + $(document).on("click", ".dropdownTv", function (e) { + e.preventDefault(); + var buttonId = e.target.id; + if ($("#" + buttonId).attr('disabled')) { + return; + } - var $form = $('#form' + buttonId); - var data = $form.serialize(); - var seasons = $(this).attr("season-select"); - if (seasons === "2") { - // Send over the latest - data = data + "&seasons=latest"; - } - if (seasons === "1") { - // Send over the first season - data = data + "&seasons=first"; + $("#" + buttonId).prop("disabled", true); + loadingButton(buttonId, "primary"); - } - var type = $form.prop('method'); - var url = $form.prop('action'); + var $form = $('#form' + buttonId); + var data = $form.serialize(); + var seasons = $(this).attr("season-select"); + if (seasons === "2") { + // Send over the latest + data = data + "&seasons=latest"; + } + if (seasons === "1") { + // Send over the first season + data = data + "&seasons=first"; - 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); + var type = $form.prop('method'); + var url = $form.prop('action'); -}); + sendRequestAjax(data, type, url, buttonId); + }); -// Click Request for movie -$(document).on("click", ".requestMovie", function (e) { - e.preventDefault(); - var buttonId = e.target.id; - if ($("#" + buttonId).attr('disabled')) { - return; - } + // Search Music + $("#musicSearchContent").on("input", function () { + if (searchTimer) { + clearTimeout(searchTimer); + } + $('#musicSearchButton').attr("class", "fa fa-spinner fa-spin"); + searchTimer = setTimeout(musicSearch, 400); - $("#" + buttonId).prop("disabled", true); - loadingButton(buttonId, "primary"); + }); + // Click Request for movie + $(document).on("click", ".requestMovie", function (e) { + e.preventDefault(); + var buttonId = e.target.id; + if ($("#" + buttonId).attr('disabled')) { + return; + } - var $form = $('#form' + buttonId); + $("#" + buttonId).prop("disabled", true); + loadingButton(buttonId, "primary"); - var type = $form.prop('method'); - var url = $form.prop('action'); - var data = $form.serialize(); - sendRequestAjax(data, type, url, buttonId); - -}); + var $form = $('#form' + buttonId); -// Click Request for album -$(document).on("click", ".requestAlbum", function (e) { - e.preventDefault(); - var buttonId = e.target.id; - if ($("#" + buttonId).attr('disabled')) { - return; - } + var type = $form.prop('method'); + var url = $form.prop('action'); + var data = $form.serialize(); - $("#" + buttonId).prop("disabled", true); - loadingButton(buttonId, "primary"); + sendRequestAjax(data, type, url, buttonId); + }); - var $form = $('#form' + buttonId); + // Click Request for album + $(document).on("click", ".requestAlbum", function (e) { + e.preventDefault(); + var buttonId = e.target.id; + if ($("#" + buttonId).attr('disabled')) { + return; + } - var type = $form.prop('method'); - var url = $form.prop('action'); - var data = $form.serialize(); + $("#" + buttonId).prop("disabled", true); + loadingButton(buttonId, "primary"); - sendRequestAjax(data, type, url, buttonId); -}); + var $form = $('#form' + buttonId); + + var type = $form.prop('method'); + var url = $form.prop('action'); + var data = $form.serialize(); + + sendRequestAjax(data, type, url, buttonId); -function sendRequestAjax(data, type, url, buttonId) { - $.ajax({ - type: type, - url: url, - data: data, - dataType: "json", - success: function (response) { - console.log(response); - if (response.result === true) { - generateNotify(response.message || "Success!", "success"); - - $('#' + buttonId).html(" Requested"); - $('#' + buttonId).removeClass("btn-primary-outline"); - $('#' + buttonId).removeAttr("data-toggle"); - $('#' + buttonId).addClass("btn-success-outline"); - } else { - generateNotify(response.message, "warning"); - $('#' + buttonId).html(" Request"); - $('#' + buttonId).attr("data-toggle", "dropdown"); - $("#" + buttonId).removeAttr("disabled"); - } - }, - error: function (e) { - console.log(e); - generateNotify("Something went wrong!", "danger"); - } }); -} -function movieSearch() { - var query = $("#movieSearchContent").val(); - getMovies("/search/movie/" + query); -} + function sendRequestAjax(data, type, url, buttonId) { + $.ajax({ + type: type, + url: url, + data: data, + dataType: "json", + success: function (response) { + console.log(response); + if (response.result === true) { + generateNotify(response.message || "Success!", "success"); + + $('#' + buttonId).html(" Requested"); + $('#' + buttonId).removeClass("btn-primary-outline"); + $('#' + buttonId).removeAttr("data-toggle"); + $('#' + buttonId).addClass("btn-success-outline"); + } else { + generateNotify(response.message, "warning"); + $('#' + buttonId).html(" Request"); + $('#' + buttonId).attr("data-toggle", "dropdown"); + $("#" + buttonId).removeAttr("disabled"); + } + }, + error: function (e) { + console.log(e); + generateNotify("Something went wrong!", "danger"); + } + }); + } + + function movieSearch() { + var query = $("#movieSearchContent").val(); + getMovies("/search/movie/" + query); + } -function moviesComingSoon() { - getMovies("/search/movie/upcoming"); -} + function moviesComingSoon() { + getMovies("/search/movie/upcoming"); + } -function moviesInTheaters() { - getMovies("/search/movie/playing"); -} + function moviesInTheaters() { + getMovies("/search/movie/playing"); + } -function getMovies(url) { - $("#movieList").html(""); - + function getMovies(url) { + $("#movieList").html(""); - $.ajax(url).success(function (results) { - if (results.length > 0) { - results.forEach(function(result) { - var context = buildMovieContext(result); - var html = searchTemplate(context); - $("#movieList").append(html); - }); - } - else { - $("#movieList").html(noResultsHtml); - } - $('#movieSearchButton').attr("class","fa fa-search"); - }); -}; - -function tvSearch() { - var query = $("#tvSearchContent").val(); - getTvShows("/search/tv/" + query); -} - -function getTvShows(url) { - $("#tvList").html(""); - - $.ajax(url).success(function (results) { - if (results.length > 0) { - results.forEach(function(result) { - var context = buildTvShowContext(result); - var html = searchTemplate(context); - $("#tvList").append(html); - }); - } - else { - $("#tvList").html(noResultsHtml); - } - $('#tvSearchButton').attr("class", "fa fa-search"); - }); -}; - -function musicSearch() { - var query = $("#musicSearchContent").val(); - getMusic("/search/music/" + query); -} - -function getMusic(url) { - $("#musicList").html(""); - - $.ajax(url).success(function (results) { - if (results.length > 0) { - results.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); - var year = date.getFullYear(); - var context = { - posterPath: result.posterPath, - id: result.id, - title: result.title, - overview: result.overview, - voteCount: result.voteCount, - voteAverage: result.voteAverage, - year: year, - type: "movie", - imdb: result.imdbId + $.ajax(url).success(function (results) { + if (results.length > 0) { + results.forEach(function (result) { + var context = buildMovieContext(result); + + var html = searchTemplate(context); + $("#movieList").append(html); + }); + } + else { + $("#movieList").html(noResultsHtml); + } + $('#movieSearchButton').attr("class", "fa fa-search"); + }); }; - return context; -} - -function buildTvShowContext(result) { - var date = new Date(result.firstAired); - var year = date.getFullYear(); - var context = { - posterPath: result.banner, - id: result.id, - title: result.seriesName, - overview: result.overview, - year: year, - type: "tv", - imdb: result.imdbId + function tvSearch() { + var query = $("#tvSearchContent").val(); + getTvShows("/search/tv/" + query); + } + + function getTvShows(url) { + $("#tvList").html(""); + + $.ajax(url).success(function (results) { + if (results.length > 0) { + results.forEach(function (result) { + var context = buildTvShowContext(result); + var html = searchTemplate(context); + $("#tvList").append(html); + }); + } + else { + $("#tvList").html(noResultsHtml); + } + $('#tvSearchButton').attr("class", "fa fa-search"); + }); }; - return context; -} - -function buildMusicContext(result) { - - var context = { - id: result.id, - title: result.title, - overview: result.overview, - year: result.releaseDate, - type: "album", - trackCount: result.trackCount, - coverArtUrl: result.coverArtUrl, - artist: result.artist, - releaseType: result.releaseType, - country: result.country + + function musicSearch() { + var query = $("#musicSearchContent").val(); + getMusic("/search/music/" + query); + } + + function getMusic(url) { + $("#musicList").html(""); + + $.ajax(url).success(function (results) { + if (results.length > 0) { + results.forEach(function (result) { + var context = buildMusicContext(result); + + var html = musicTemplate(context); + $("#musicList").append(html); + }); + } + else { + $("#musicList").html(noResultsMusic); + } + $('#musicSearchButton').attr("class", "fa fa-search"); + }); }; - return context; -} + function buildMovieContext(result) { + var date = new Date(result.releaseDate); + var year = date.getFullYear(); + var context = { + posterPath: result.posterPath, + id: result.id, + title: result.title, + overview: result.overview, + voteCount: result.voteCount, + voteAverage: result.voteAverage, + year: year, + type: "movie", + imdb: result.imdbId + }; + + return context; + } + + function buildTvShowContext(result) { + var date = new Date(result.firstAired); + var year = date.getFullYear(); + var context = { + posterPath: result.banner, + id: result.id, + title: result.seriesName, + overview: result.overview, + year: year, + type: "tv", + imdb: result.imdbId + }; + return context; + } + + function buildMusicContext(result) { + + var context = { + id: result.id, + title: result.title, + overview: result.overview, + year: result.releaseDate, + type: "album", + trackCount: result.trackCount, + coverArtUrl: result.coverArtUrl, + artist: result.artist, + releaseType: result.releaseType, + country: result.country + }; + + return context; + } + +});