1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

fixes #296 - Prevent non-movie videos from appearing in Movies view

This commit is contained in:
Luke Pulverenti 2013-05-27 21:59:26 -04:00
parent a3e75d5502
commit 8a7dffff51
16 changed files with 494 additions and 25 deletions

View file

@ -166,7 +166,7 @@
<div style="margin-top: -15px;"></div> <div style="margin-top: -15px;"></div>
</div> </div>
<p id="fldRecursive" style="display: none;"> <p id="fldRecursive" style="display: none;">
<label for="chkRecursive">Recursive</label> <label for="chkRecursive">Refresh child items</label>
<input type="checkbox" id="chkRecursive" name="chkRecursive" data-mini="true" /> <input type="checkbox" id="chkRecursive" name="chkRecursive" data-mini="true" />
</p> </p>
<p> <p>

View file

@ -75,6 +75,7 @@
<a href="musicalbums.html">Albums</a> <a href="musicalbums.html">Albums</a>
<a href="musicartists.html">Artists</a> <a href="musicartists.html">Artists</a>
<a href="musicgenres.html" class="ui-btn-active">Genres</a> <a href="musicgenres.html" class="ui-btn-active">Genres</a>
<a href="musicvideos.html">Music Videos</a>
</div> </div>
</div> </div>
<div id="artistTabs" class="itemTabs" style="display: none;"> <div id="artistTabs" class="itemTabs" style="display: none;">
@ -84,6 +85,7 @@
<a href="musicalbums.html">Albums</a> <a href="musicalbums.html">Albums</a>
<a href="musicartists.html" class="ui-btn-active">Artists</a> <a href="musicartists.html" class="ui-btn-active">Artists</a>
<a href="musicgenres.html">Genres</a> <a href="musicgenres.html">Genres</a>
<a href="musicvideos.html">Music Videos</a>
</div> </div>
</div> </div>
<div id="gameGenreTabs" class="itemTabs" style="display: none;"> <div id="gameGenreTabs" class="itemTabs" style="display: none;">

View file

@ -55,6 +55,7 @@
<a href="musicalbums.html">Albums</a> <a href="musicalbums.html">Albums</a>
<a href="musicartists.html">Artists</a> <a href="musicartists.html">Artists</a>
<a href="musicgenres.html">Genres</a> <a href="musicgenres.html">Genres</a>
<a href="musicvideos.html">Music Videos</a>
</div> </div>
</div> </div>
<div id="albumTabs" class="itemTabs" style="display: none;"> <div id="albumTabs" class="itemTabs" style="display: none;">
@ -64,6 +65,17 @@
<a href="musicalbums.html" class="ui-btn-active">Albums</a> <a href="musicalbums.html" class="ui-btn-active">Albums</a>
<a href="musicartists.html">Artists</a> <a href="musicartists.html">Artists</a>
<a href="musicgenres.html">Genres</a> <a href="musicgenres.html">Genres</a>
<a href="musicvideos.html">Music Videos</a>
</div>
</div>
<div id="musicVideoTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<a href="musicrecommended.html">Suggested</a>
<a href="songs.html">Songs</a>
<a href="musicalbums.html">Albums</a>
<a href="musicartists.html">Artists</a>
<a href="musicgenres.html">Genres</a>
<a href="musicvideos.html" class="ui-btn-active">Music Videos</a>
</div> </div>
</div> </div>
<div id="gameTabs" class="itemTabs" style="display: none;"> <div id="gameTabs" class="itemTabs" style="display: none;">

View file

@ -11,6 +11,7 @@
<a href="musicalbums.html" class="ui-btn-active">Albums</a> <a href="musicalbums.html" class="ui-btn-active">Albums</a>
<a href="musicartists.html">Artists</a> <a href="musicartists.html">Artists</a>
<a href="musicgenres.html">Genres</a> <a href="musicgenres.html">Genres</a>
<a href="musicvideos.html">Music Videos</a>
</div> </div>
<div class="alphabetPicker"> <div class="alphabetPicker">
</div> </div>

View file

@ -11,6 +11,7 @@
<a href="musicalbums.html">Albums</a> <a href="musicalbums.html">Albums</a>
<a href="musicartists.html" class="ui-btn-active">Artists</a> <a href="musicartists.html" class="ui-btn-active">Artists</a>
<a href="musicgenres.html">Genres</a> <a href="musicgenres.html">Genres</a>
<a href="musicvideos.html">Music Videos</a>
</div> </div>
<div class="alphabetPicker"> <div class="alphabetPicker">

View file

@ -11,6 +11,7 @@
<a href="musicalbums.html">Albums</a> <a href="musicalbums.html">Albums</a>
<a href="musicartists.html">Artists</a> <a href="musicartists.html">Artists</a>
<a href="musicgenres.html" class="ui-btn-active">Genres</a> <a href="musicgenres.html" class="ui-btn-active">Genres</a>
<a href="musicvideos.html">Music Videos</a>
</div> </div>
<div data-role="content"> <div data-role="content">
<div class="viewSettings"> <div class="viewSettings">

View file

@ -11,6 +11,7 @@
<a href="musicalbums.html">Albums</a> <a href="musicalbums.html">Albums</a>
<a href="musicartists.html">Artists</a> <a href="musicartists.html">Artists</a>
<a href="musicgenres.html">Genres</a> <a href="musicgenres.html">Genres</a>
<a href="musicvideos.html">Music Videos</a>
</div> </div>
<div data-role="content"> <div data-role="content">
<table class="ehsContent"> <table class="ehsContent">

View file

@ -0,0 +1,155 @@
<!DOCTYPE html>
<html>
<head>
<title>Media Browser</title>
</head>
<body>
<div id="musicVideosPage" data-role="page" class="page libraryPage" data-theme="a" data-view="music">
<div class="libraryViewNav">
<a href="musicrecommended.html">Suggested</a>
<a href="songs.html">Songs</a>
<a href="musicalbums.html">Albums</a>
<a href="musicartists.html">Artists</a>
<a href="musicgenres.html">Genres</a>
<a href="musicvideos.html" class="ui-btn-active">Music Videos</a>
</div>
<div class="alphabetPicker">
</div>
<div data-role="content">
<div class="viewSettings">
<div class="viewControls">
<div style="display: inline-block;">
<select data-mini="true" data-inline="true" id="selectView" name="selectView">
<option value="Backdrop">Backdrop</option>
<option value="Poster">Poster</option>
<option value="Timeline">Timeline</option>
</select>
</div>
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $.mobile.activePage).panel( 'toggle' );">Sort</button>
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $.mobile.activePage).panel( 'toggle' );">Filter</button>
</div>
<div class="listTopPaging">
</div>
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="b" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>
<strong>Sort By:</strong>
</legend>
<input class="radioSortBy" type="radio" name="radioSortBy" data-theme="c" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
<label for="radioSortName">Name</label>
<input class="radioSortBy" type="radio" name="radioSortBy" data-theme="c" id="radioBudget" value="off" data-sortby="Budget" data-mini="true">
<label for="radioBudget">Budget</label>
<input class="radioSortBy" type="radio" name="radioSortBy" data-theme="c" id="radioCommunityRating" value="off" data-sortby="CommunityRating" data-mini="true">
<label for="radioCommunityRating">Community Rating</label>
<input class="radioSortBy" type="radio" name="radioSortBy" data-theme="c" id="radioCriticRating" value="off" data-sortby="CriticRating" data-mini="true">
<label for="radioCriticRating">Critic Rating</label>
<input class="radioSortBy" type="radio" name="radioSortBy" data-theme="c" id="radioDateCreated" value="off" data-sortby="DateCreated" data-mini="true">
<label for="radioDateCreated">Date Added</label>
<input class="radioSortBy" type="radio" name="radioSortBy" data-theme="c" id="radioDatePlayed" value="off" data-sortby="DatePlayed" data-mini="true">
<label for="radioDatePlayed">Date Played</label>
<input class="radioSortBy" type="radio" name="radioSortBy" data-theme="c" id="radioPremiereDate" value="off" data-sortby="PremiereDate" data-mini="true">
<label for="radioPremiereDate">Date Released</label>
<input class="radioSortBy" type="radio" name="radioSortBy" data-theme="c" id="radioPlayCount" value="off" data-sortby="PlayCount" data-mini="true">
<label for="radioPlayCount">Play Count</label>
<input class="radioSortBy" type="radio" name="radioSortBy" data-theme="c" id="radioRevenue" value="off" data-sortby="Revenue" data-mini="true">
<label for="radioRevenue">Revenue</label>
<input class="radioSortBy" type="radio" name="radioSortBy" data-theme="c" id="radioRuntime" value="off" data-sortby="Runtime" data-mini="true">
<label for="radioRuntime">Runtime</label>
</fieldset>
<fieldset data-role="controlgroup">
<legend>
<strong>Sort Order:</strong>
</legend>
<input class="radioSortOrder" type="radio" name="radioSortOrder" data-theme="c" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
<label for="radioAscending">Ascending</label>
<input class="radioSortOrder" type="radio" name="radioSortOrder" data-theme="c" id="radioDescending" value="off" data-sortorder="Descending" data-mini="true">
<label for="radioDescending">Descending</label>
</fieldset>
</form>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="b" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>
<strong>Filters:</strong>
</legend>
<input class="chkStandardFilter" type="checkbox" data-theme="c" name="chkPlayed" id="chkPlayed" data-filter="IsPlayed" data-mini="true">
<label for="chkPlayed">Watched</label>
<input class="chkStandardFilter" type="checkbox" data-theme="c" name="chkUnplayed" id="chkUnplayed" data-filter="IsUnPlayed" data-mini="true">
<label for="chkUnplayed">Unwatched</label>
<input class="chkStandardFilter" type="checkbox" data-theme="c" name="chkResumable" id="chkResumable" data-filter="IsResumable" data-mini="true">
<label for="chkResumable">Resumable</label>
<input class="chkStandardFilter" type="checkbox" data-theme="c" name="chkIsFavorite" id="chkIsFavorite" data-filter="IsFavorite" data-mini="true">
<label for="chkIsFavorite">Favorite</label>
<input class="chkStandardFilter" type="checkbox" data-theme="c" name="chkLikes" id="chkLikes" data-filter="Likes" data-mini="true">
<label for="chkLikes">Likes</label>
<input class="chkStandardFilter" type="checkbox" data-theme="c" name="chkDislikes" id="chkDislikes" data-filter="Dislikes" data-mini="true">
<label for="chkDislikes">Dislikes</label>
</fieldset>
<fieldset data-role="controlgroup">
<legend>
<strong>Type:</strong>
</legend>
<input class="chkVideoTypeFilter" type="checkbox" data-theme="c" name="chkBluray" id="chkBluray" data-filter="Bluray" data-mini="true">
<label for="chkBluray">Bluray</label>
<input class="chkVideoTypeFilter" type="checkbox" data-theme="c" name="chkDvd" id="chkDvd" data-filter="Dvd" data-mini="true">
<label for="chkDvd">Dvd</label>
<input class="chkVideoTypeFilter" type="checkbox" data-theme="c" name="chkIso" id="chkIso" data-filter="Iso" data-mini="true">
<label for="chkIso">Iso</label>
<input class="chk3DFilter" type="checkbox" data-theme="c" name="chk3D" id="chk3D" data-filter="Digital3D,Sbs3D" data-mini="true">
<label for="chk3D">3D</label>
</fieldset>
<fieldset data-role="controlgroup">
<legend>
<strong>Features:</strong>
</legend>
<input class="chkFeatureFilter" type="checkbox" data-theme="c" name="chkSubtitle" id="chkSubtitle" data-mini="true">
<label for="chkSubtitle">Subtitles</label>
<input class="chkFeatureFilter" type="checkbox" data-theme="c" name="chkTrailer" id="chkTrailer" data-mini="true">
<label for="chkTrailer">Trailer</label>
<input class="chkFeatureFilter" type="checkbox" data-theme="c" name="chkThemeSong" id="chkThemeSong" data-mini="true">
<label for="chkThemeSong">Theme song</label>
<input class="chkFeatureFilter" type="checkbox" data-theme="c" name="chkThemeVideo" id="chkThemeVideo" data-mini="true">
<label for="chkThemeVideo">Theme video</label>
</fieldset>
</form>
</div>
</div>
</body>
</html>

View file

@ -70,7 +70,7 @@
if (item.Type == "Movie" || item.Type == "Trailer" || item.Type == "BoxSet") { if (item.Type == "Movie" || item.Type == "Trailer" || item.Type == "BoxSet") {
return "movies"; return "movies";
} }
if (item.Type == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist" || item.Type == "Artist") { if (item.Type == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist" || item.Type == "Artist" || item.Type == "MusicVideo") {
return "music"; return "music";
} }
if (item.MediaType == "Game") { if (item.MediaType == "Game") {
@ -87,6 +87,10 @@
$('#albumTabs', page).show(); $('#albumTabs', page).show();
} }
if (item.Type == "MusicVideo") {
$('#musicVideoTabs', page).show();
}
if (item.Type == "Audio") { if (item.Type == "Audio") {
$('#songTabs', page).show(); $('#songTabs', page).show();
} }
@ -435,7 +439,7 @@
function renderCriticReviews(page, item, limit) { function renderCriticReviews(page, item, limit) {
if (item.Type != "Movie" && item.Type != "Trailer") { if (item.Type != "Movie" && item.Type != "Trailer" && item.Type != "MusicVideo") {
$('#criticReviewsCollapsible', page).hide(); $('#criticReviewsCollapsible', page).hide();
return; return;
} }

View file

@ -40,7 +40,7 @@
$('#fldEndDate', page).hide(); $('#fldEndDate', page).hide();
} }
if (item.Type == "Movie" || item.MediaType == "Game" || item.MediaType == "Trailer") { if (item.Type == "Movie" || item.MediaType == "Game" || item.MediaType == "Trailer" || item.Type == "MusicVideo") {
$('#fldBudget', page).show(); $('#fldBudget', page).show();
$('#fldRevenue', page).show(); $('#fldRevenue', page).show();
} else { } else {
@ -56,7 +56,7 @@
$('#fldGamesDb', page).hide(); $('#fldGamesDb', page).hide();
} }
if (item.Type == "Movie" || item.Type == "Trailer") { if (item.Type == "Movie" || item.Type == "Trailer" || item.Type == "MusicVideo") {
$('#fldCriticRating', page).show(); $('#fldCriticRating', page).show();
$('#fldCriticRatingSummary', page).show(); $('#fldCriticRatingSummary', page).show();
$('#fldRottenTomatoes', page).show(); $('#fldRottenTomatoes', page).show();
@ -90,7 +90,7 @@
$('#fldAlbumArtist', page).hide(); $('#fldAlbumArtist', page).hide();
} }
if (item.Type == "Movie" || item.Type == "Trailer" || item.Type == "Person" || item.Type == "Series" || item.Type == "Season" || item.Type == "Episode") { if (item.Type == "Movie" || item.Type == "Trailer" || item.Type == "Person" || item.Type == "Series" || item.Type == "Season" || item.Type == "Episode" || item.Type == "MusicVideo") {
$('#fldImdb', page).show(); $('#fldImdb', page).show();
} else { } else {
$('#fldImdb', page).hide(); $('#fldImdb', page).hide();

View file

@ -64,7 +64,7 @@
var vals = [item.Type, item.Id, item.Name]; var vals = [item.Type, item.Id, item.Name];
var context = getParameterByName('context'); var context = getParameterByName('context');
if (context) { if (context) {
vals.push(vals); vals.push(vals);
} }
@ -188,6 +188,12 @@
html += '<label for="radioSongs">Songs (' + result.SongCount + ')</label>'; html += '<label for="radioSongs">Songs (' + result.SongCount + ')</label>';
} }
if (result.MusicVideoCount) {
html += '<input type="radio" name="ibnMusicVideos" id="radioMusicVideos" value="on" data-mini="true">';
html += '<label for="radioMusicVideos">Music Videos (' + result.MusicVideoCount + ')</label>';
}
html += '</fieldset>'; html += '</fieldset>';
var elem = $('#itemTabs', page).html(html).trigger('create'); var elem = $('#itemTabs', page).html(html).trigger('create');
@ -207,6 +213,18 @@
function bindRadioEvents(page) { function bindRadioEvents(page) {
$("#radioMusicVideos", page).on("click", function () {
shape = "poster";
loadItems(page, {
MediaTypes: "",
IncludeItemTypes: "MusicVideo",
PersonTypes: "",
Artists: ""
});
});
$("#radioMovies", page).on("click", function () { $("#radioMovies", page).on("click", function () {
shape = "poster"; shape = "poster";
@ -398,15 +416,15 @@
} }
if (query.IncludeItemTypes == "Audio") { if (query.IncludeItemTypes == "Audio") {
html += LibraryBrowser.getSongTableHtml(result.Items, { html += LibraryBrowser.getSongTableHtml(result.Items, {
showAlbum: true, showAlbum: true,
showArtist: true showArtist: true
}); });
} else { } else {
html += LibraryBrowser.getPosterDetailViewHtml({ html += LibraryBrowser.getPosterDetailViewHtml({
items: result.Items, items: result.Items,
preferBackdrop: shape == "backdrop", preferBackdrop: shape == "backdrop",

View file

@ -565,9 +565,9 @@
return html; return html;
}, },
getPosterViewDisplayName: function(item) { getPosterViewDisplayName: function (item) {
var name = item.Name; var name = item.Name;
if (item.Type == "Episode" && item.IndexNumber != null && item.ParentIndexNumber != null) { if (item.Type == "Episode" && item.IndexNumber != null && item.ParentIndexNumber != null) {
@ -677,7 +677,7 @@
renderName: function (item, nameElem, linkToElement) { renderName: function (item, nameElem, linkToElement) {
var name = LibraryBrowser.getPosterViewDisplayName(item); var name = LibraryBrowser.getPosterViewDisplayName(item);
Dashboard.setPageTitle(name); Dashboard.setPageTitle(name);
if (linkToElement) { if (linkToElement) {
@ -740,13 +740,15 @@
var providerIds = item.ProviderIds || {}; var providerIds = item.ProviderIds || {};
if (providerIds.Imdb) { if (providerIds.Imdb) {
if (item.Type == "Movie" || item.Type == "Episode" || item.Type == "Trailer") if (item.Type == "Person") {
links.push('<a class="textlink" href="http://www.imdb.com/title/' + providerIds.Imdb + '" target="_blank">IMDb</a>');
else if (item.Type == "Person")
links.push('<a class="textlink" href="http://www.imdb.com/name/' + providerIds.Imdb + '" target="_blank">IMDb</a>'); links.push('<a class="textlink" href="http://www.imdb.com/name/' + providerIds.Imdb + '" target="_blank">IMDb</a>');
}
else {
links.push('<a class="textlink" href="http://www.imdb.com/title/' + providerIds.Imdb + '" target="_blank">IMDb</a>');
}
} }
if (providerIds.Tmdb) { if (providerIds.Tmdb) {
if (item.Type == "Movie" || item.Type == "Trailer") if (item.Type == "Movie" || item.Type == "Trailer" || item.Type == "MusicVideo")
links.push('<a class="textlink" href="http://www.themoviedb.org/movie/' + providerIds.Tmdb + '" target="_blank">TheMovieDB</a>'); links.push('<a class="textlink" href="http://www.themoviedb.org/movie/' + providerIds.Tmdb + '" target="_blank">TheMovieDB</a>');
else if (item.Type == "BoxSet") else if (item.Type == "BoxSet")
links.push('<a class="textlink" href="http://www.themoviedb.org/collection/' + providerIds.Tmdb + '" target="_blank">TheMovieDB</a>'); links.push('<a class="textlink" href="http://www.themoviedb.org/collection/' + providerIds.Tmdb + '" target="_blank">TheMovieDB</a>');
@ -879,7 +881,7 @@
} }
} }
if ((item.Type == "Movie" || item.Type == "Trailer") && item.CriticRating != null) { if (item.CriticRating != null) {
if (item.CriticRating >= 60) { if (item.CriticRating >= 60) {
html += '<div class="fresh rottentomatoesicon" title="fresh"></div>'; html += '<div class="fresh rottentomatoesicon" title="fresh"></div>';

View file

@ -298,7 +298,7 @@
percent *= 100; percent *= 100;
positionSlider.val(percent); positionSlider.val(percent);
positionSlider.removeAttr('disabled'); positionSlider.removeAttr('disabled');
} }
} else { } else {
@ -533,7 +533,7 @@
$('#qualityButton', nowPlayingBar).show(); $('#qualityButton', nowPlayingBar).show();
if (item.MediaStreams.filter(function(i) { if (item.MediaStreams.filter(function (i) {
return i.Type == "Audio"; return i.Type == "Audio";
}).length) { }).length) {
$('#audioTracksButton', nowPlayingBar).show(); $('#audioTracksButton', nowPlayingBar).show();
@ -851,10 +851,12 @@
} }
html += "<div><a href='itemdetails.html?id=" + item.Id + "'><img class='nowPlayingBarImage ' alt='' title='' src='" + url + "' style='height:36px;display:inline-block;' /></a></div>"; html += "<div><a href='itemdetails.html?id=" + item.Id + "'><img class='nowPlayingBarImage ' alt='' title='' src='" + url + "' style='height:36px;display:inline-block;' /></a></div>";
if (item.Type == "Movie")
html += '<div class="nowPlayingText">' + name + '<br/>' + seriesName + '</div>'; if (item.SeriesName || item.Album) {
else
html += '<div class="nowPlayingText">' + seriesName + '<br/>' + name + '</div>'; html += '<div class="nowPlayingText">' + seriesName + '<br/>' + name + '</div>';
} else {
html += '<div class="nowPlayingText">' + name + '<br/>' + seriesName + '</div>';
}
$('.nowPlayingMediaInfo', nowPlayingBar).html(html); $('.nowPlayingMediaInfo', nowPlayingBar).html(html);
}; };
@ -1254,7 +1256,7 @@
var option = options[i]; var option = options[i];
var cssClass = "mediaFlyoutOption"; var cssClass = "mediaFlyoutOption";
if (option.videoBitrate == currentVideoBitrate) { if (option.videoBitrate == currentVideoBitrate) {
cssClass += " selectedMediaFlyoutOption"; cssClass += " selectedMediaFlyoutOption";
} }

View file

@ -0,0 +1,264 @@
(function ($, document) {
var view = "Poster";
// The base query options
var query = {
SortBy: "SortName",
SortOrder: "Ascending",
IncludeItemTypes: "MusicVideo",
Recursive: true,
Fields: "UserData,DisplayMediaType,ItemCounts,DateCreated",
StartIndex: 0
};
function reloadItems(page) {
Dashboard.showLoadingMsg();
ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(function (result) {
// Scroll back up so they can see the results from the beginning
$(document).scrollTop(0);
var html = '';
$('.listTopPaging', page).html(LibraryBrowser.getPagingHtml(query, result.TotalRecordCount, true)).trigger('create');
if (view == "Backdrop") {
html += LibraryBrowser.getPosterDetailViewHtml({
items: result.Items,
preferBackdrop: true,
context: "music",
shape: "backdrop"
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
else if (view == "Poster") {
html += LibraryBrowser.getPosterDetailViewHtml({
items: result.Items,
context: "music",
shape: "poster"
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
else if (view == "Timeline") {
html += LibraryBrowser.getPosterDetailViewHtml({
items: result.Items,
context: "music",
shape: "poster",
timeline: true
});
$('.itemsContainer', page).addClass('timelineItemsContainer');
}
html += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount);
$('#items', page).html(html).trigger('create');
$('.selectPage', page).on('change', function () {
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
reloadItems(page);
});
$('.btnNextPage', page).on('click', function () {
query.StartIndex += query.Limit;
reloadItems(page);
});
$('.btnPreviousPage', page).on('click', function () {
query.StartIndex -= query.Limit;
reloadItems(page);
});
$('.selectPageSize', page).on('change', function () {
query.Limit = parseInt(this.value);
query.StartIndex = 0;
reloadItems(page);
});
Dashboard.hideLoadingMsg();
});
}
$(document).on('pageinit', "#musicVideosPage", function () {
var page = this;
$('.radioSortBy', this).on('click', function () {
query.StartIndex = 0;
query.SortBy = this.getAttribute('data-sortby');
reloadItems(page);
});
$('.radioSortOrder', this).on('click', function () {
query.StartIndex = 0;
query.SortOrder = this.getAttribute('data-sortorder');
reloadItems(page);
});
$('.chkStandardFilter', this).on('change', function () {
var filterName = this.getAttribute('data-filter');
var filters = query.Filters || "";
filters = (',' + filters).replace(',' + filterName, '').substring(1);
if (this.checked) {
filters = filters ? (filters + ',' + filterName) : filterName;
}
query.StartIndex = 0;
query.Filters = filters;
reloadItems(page);
});
$('.chkVideoTypeFilter', this).on('change', function () {
var filterName = this.getAttribute('data-filter');
var filters = query.VideoTypes || "";
filters = (',' + filters).replace(',' + filterName, '').substring(1);
if (this.checked) {
filters = filters ? (filters + ',' + filterName) : filterName;
}
query.StartIndex = 0;
query.VideoTypes = filters;
reloadItems(page);
});
$('#selectView', this).on('change', function () {
view = this.value;
if (view == "Timeline") {
query.SortBy = "PremiereDate";
query.StartIndex = 0;
$('#radioPremiereDate', page)[0].click();
} else {
reloadItems(page);
}
});
$('#chk3D', this).on('change', function () {
query.StartIndex = 0;
query.VideoFormats = this.checked ? this.getAttribute('data-filter') : null;
reloadItems(page);
});
$('#chkSubtitle', this).on('change', function () {
query.StartIndex = 0;
query.HasSubtitles = this.checked ? true : null;
reloadItems(page);
});
$('#chkTrailer', this).on('change', function () {
query.StartIndex = 0;
query.HasTrailer = this.checked ? true : null;
reloadItems(page);
});
$('#chkThemeSong', this).on('change', function () {
query.StartIndex = 0;
query.HasThemeSong = this.checked ? true : null;
reloadItems(page);
});
$('#chkThemeVideo', this).on('change', function () {
query.StartIndex = 0;
query.HasThemeVideo = this.checked ? true : null;
reloadItems(page);
});
$('.alphabetPicker', this).on('alphaselect', function (e, character) {
query.NameStartsWithOrGreater = character;
query.StartIndex = 0;
reloadItems(page);
}).on('alphaclear', function (e) {
query.NameStartsWithOrGreater = '';
reloadItems(page);
});
}).on('pagebeforeshow', "#musicVideosPage", function () {
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
if (limit != query.Limit) {
query.Limit = limit;
query.StartIndex = 0;
}
reloadItems(this);
}).on('pageshow', "#musicVideosPage", function () {
// Reset form values using the last used query
$('.radioSortBy', this).each(function () {
this.checked = query.SortBy == this.getAttribute('data-sortby');
}).checkboxradio('refresh');
$('.radioSortOrder', this).each(function () {
this.checked = query.SortOrder == this.getAttribute('data-sortorder');
}).checkboxradio('refresh');
$('.chkStandardFilter', this).each(function () {
var filters = "," + (query.Filters || "");
var filterName = this.getAttribute('data-filter');
this.checked = filters.indexOf(',' + filterName) != -1;
}).checkboxradio('refresh');
$('.chkVideoTypeFilter', this).each(function () {
var filters = "," + (query.VideoTypes || "");
var filterName = this.getAttribute('data-filter');
this.checked = filters.indexOf(',' + filterName) != -1;
}).checkboxradio('refresh');
$('#selectView', this).val(view).selectmenu('refresh');
$('#chk3D', this).checked(query.VideoFormats == "Digital3D,Sbs3D").checkboxradio('refresh');
$('#chkSubtitle', this).checked(query.HasSubtitles == true).checkboxradio('refresh');
$('#chkTrailer', this).checked(query.HasTrailer == true).checkboxradio('refresh');
$('#chkThemeSong', this).checked(query.HasThemeSong == true).checkboxradio('refresh');
$('#chkThemeVideo', this).checked(query.HasThemeVideo == true).checkboxradio('refresh');
$('.alphabetPicker', this).alphaValue(query.NameStartsWithOrGreater);
});
})(jQuery, document);

View file

@ -160,6 +160,11 @@
html += '<div class="searchHintSecondaryText">Movie</div>'; html += '<div class="searchHintSecondaryText">Movie</div>';
}
else if (hint.Type == "MusicVideo") {
html += '<div class="searchHintSecondaryText">Music Video</div>';
} }
else if (hint.Type == "Episode") { else if (hint.Type == "Episode") {

View file

@ -11,6 +11,7 @@
<a href="musicalbums.html">Albums</a> <a href="musicalbums.html">Albums</a>
<a href="musicartists.html">Artists</a> <a href="musicartists.html">Artists</a>
<a href="musicgenres.html">Genres</a> <a href="musicgenres.html">Genres</a>
<a href="musicvideos.html">Music Videos</a>
</div> </div>
<div data-role="content"> <div data-role="content">
<div class="viewSettings"> <div class="viewSettings">