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:
parent
a3e75d5502
commit
8a7dffff51
16 changed files with 494 additions and 25 deletions
|
@ -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>
|
||||||
|
|
|
@ -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;">
|
||||||
|
|
|
@ -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;">
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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">
|
||||||
|
|
|
@ -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">
|
||||||
|
|
|
@ -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">
|
||||||
|
|
155
dashboard-ui/musicvideos.html
Normal file
155
dashboard-ui/musicvideos.html
Normal 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>
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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>';
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
264
dashboard-ui/scripts/musicvideos.js
Normal file
264
dashboard-ui/scripts/musicvideos.js
Normal 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);
|
|
@ -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") {
|
||||||
|
|
||||||
|
|
|
@ -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">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue