web client re-org

This commit is contained in:
Luke Pulverenti 2014-05-01 22:54:33 -04:00
parent ea285c28ef
commit d5780727eb
81 changed files with 571 additions and 550 deletions

View File

@ -7,7 +7,7 @@
padding-top: 48px !important;
}
.libraryPage:not(.metadataEditorPage):not(#indexPage):not(#boxsetsPage):not(#itemListPage):not(.nowPlayingPage) {
.libraryPage:not(.metadataEditorPage):not(#indexPage):not(#boxsetsPage):not(#itemListPage):not(.nowPlayingPage):not(.trailerPage) {
padding-top: 91px !important;
}
@ -61,6 +61,14 @@
vertical-align: top;
}
.selectedMediaFolder {
color: #fff!important;
}
.viewMenuBar .selectedMediaFolder:before {
content: '\25BA';
color: #fff;
}
.viewMenuSecondary {
float: right;
}
@ -107,8 +115,8 @@
}
.listHeader {
margin-top: .75em;
margin-bottom: 0;
margin-top: .5em;
margin-bottom: .25em;
padding-left: 7px;
}
@ -126,17 +134,16 @@
.libraryViewNavInner {
text-align: center;
font-family: sans-serif, Arial;
font-size: 14px;
white-space: nowrap;
padding: 0 0 0;
overflow-x: auto;
height: 55px;
text-transform: uppercase;
}
.libraryViewNav .ui-btn-active .libraryViewNavLinkContent {
border-bottom-color: #38c;
color: #fff;
}
.libraryViewNav a {
@ -153,24 +160,11 @@
color: #bbb!important;
}
.libraryViewNav a:after {
content: "|";
color: #444;
font-size: 20px;
font-weight: normal !important;
position: absolute;
top: 7px;
}
.libraryViewNav a:last-child::after {
content: "";
}
.libraryViewNavLinkContent {
border-bottom: 6px solid transparent;
border-bottom: 5px solid transparent;
display: inline-block;
padding: 0 1em 6px;
margin: 0 -2px 0 -1px;
padding: 0 .9em 7px;
color: #ddd;
}
.ehsContent {
@ -590,7 +584,7 @@ a.itemTag:hover {
}
.lblDetailTab {
font-size: 15px!important;
font-size: 14px!important;
font-weight: 400!important;
font-family: 'Open Sans';
padding: .5em 1em;

View File

@ -1,5 +1,5 @@
.posterItem {
margin: 4px 5px;
margin: 5px 5px;
text-shadow: none;
font-weight: normal!important;
display: inline-block;
@ -170,9 +170,9 @@
}
.posterItemProgress .itemProgressBar {
height: 10px;
height: 8px;
width: 100%;
opacity: .7;
opacity: .8;
}
.miniPosterItemProgress {

View File

@ -45,9 +45,8 @@ body {
}
h1 {
font-weight: 400;
font-size: 1.8em;
text-transform: uppercase;
font-weight: 300;
font-size: 2em;
}
.ui-loader h1 {

View File

@ -6,12 +6,12 @@
<body>
<div id="episodesPage" data-role="page" class="page libraryPage" data-theme="b" data-view="tv">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html" class="ui-btn-active">${TabEpisodes}</a>
<a href="#" class="ui-btn-active">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>
<a href="tvpeople.html">${TabPeople}</a>
<a href="tvstudios.html">${TabNetworks}</a>

View File

@ -5,11 +5,11 @@
</head>
<body>
<div id="gameGenresPage" data-role="page" class="page libraryPage listPage" data-theme="b" data-view="games">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html">${TabGameSystems}</a>
<a href="gamegenres.html" class="ui-btn-active">${TabGenres}</a>
<a href="#" class="ui-btn-active">${TabGenres}</a>
<a href="gamestudios.html">${TabStudios}</a>
</div>
<div data-role="content">

View File

@ -5,9 +5,9 @@
</head>
<body>
<div id="gamesPage" data-role="page" class="page libraryPage listPage" data-theme="b" data-view="games">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html" class="ui-btn-active">${TabGames}</a>
<a href="#" class="ui-btn-active">${TabGames}</a>
<a href="gamesystems.html">${TabGameSystems}</a>
<a href="gamegenres.html">${TabGenres}</a>
<a href="gamestudios.html">${TabStudios}</a>

View File

@ -5,8 +5,8 @@
</head>
<body>
<div id="gamesRecommendedPage" data-role="page" class="page libraryPage" data-theme="b" data-view="games">
<div class="libraryViewNav">
<a href="gamesrecommended.html" class="ui-btn-active">${TabSuggested}</a>
<div class="libraryViewNav scopedLibraryViewNav">
<a href="#" class="ui-btn-active">${TabSuggested}</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html">Game Systems</a>
<a href="gamegenres.html">${TabGenres}</a>

View File

@ -5,12 +5,12 @@
</head>
<body>
<div id="gameStudiosPage" data-role="page" class="page libraryPage listPage" data-theme="b" data-view="games">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html">${TabGameSystems}</a>
<a href="gamegenres.html">${TabGenres}</a>
<a href="gamestudios.html" class="ui-btn-active">${TabStudios}</a>
<a href="#" class="ui-btn-active">${TabStudios}</a>
</div>
<div data-role="content">
<div class="viewSettings">

View File

@ -5,10 +5,10 @@
</head>
<body>
<div id="gamesystemsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="games">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html" class="ui-btn-active">${TabGameSystems}</a>
<a href="#" class="ui-btn-active">${TabGameSystems}</a>
<a href="gamegenres.html">${TabGenres}</a>
<a href="gamestudios.html">${TabStudios}</a>
</div>

View File

@ -4,20 +4,23 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="indexPage" data-role="page" class="page type-home libraryPage" data-theme="b">
<div id="indexPage" data-role="page" class="page type-home libraryPage noLibraryMenuSelectionPage" data-theme="b">
<div data-role="content">
<table class="ehsContent">
<tr>
<td>
<div id="resumableSection" style="display: none;">
<h1 class="listHeader">${HeaderResume}</h1>
<br />
<div id="views">
<div id="resumableItems">
</div>
</div>
<br />
<h1 class="listHeader"><a href="itemlist.html">${HeaderMediaFolders}<img src="css/images/rightarrow.png" class="headerArrowImage" /></a></h1>
<div id="divCollections"></div>
<h1 class="listHeader">${HeaderLatestMedia}</h1>
<div id="recentlyAddedItems">
</div>
</td>
</tr>
</table>

View File

@ -6,40 +6,37 @@
<body>
<div id="itemByNameDetailPage" data-role="page" class="page libraryPage" data-theme="b">
<div id="movieGenreTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="movieslatest.html">${TabLatest}</a>
<a href="moviesrecommended.html">${TabSuggested}</a>
<a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a>
<a href="moviegenres.html" class="ui-btn-active">${TabGenres}</a>
<a href="moviepeople.html">${TabPeople}</a>
<a href="moviestudios.html">${TabStudios}</a>
</div>
</div>
<div id="moviePeopleTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="movieslatest.html">${TabLatest}</a>
<a href="moviesrecommended.html">${TabSuggested}</a>
<a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a>
<a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html" class="ui-btn-active">${TabPeople}</a>
<a href="moviestudios.html">${TabStudios}</a>
</div>
</div>
<div id="movieStudioTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="movieslatest.html">${TabLatest}</a>
<a href="moviesrecommended.html">${TabSuggested}</a>
<a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a>
<a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html">${TabPeople}</a>
<a href="moviestudios.html" class="ui-btn-active">${TabStudios}</a>
</div>
</div>
<div id="tvGenreTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
@ -51,7 +48,7 @@
</div>
</div>
<div id="tvPeopleTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
@ -63,7 +60,7 @@
</div>
</div>
<div id="tvStudioTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
@ -75,7 +72,7 @@
</div>
</div>
<div id="musicGenreTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="musicrecommended.html">${TabSuggested}</a>
<a href="songs.html">${TabSongs}</a>
<a href="musicalbums.html">${TabAlbums}</a>
@ -86,7 +83,7 @@
</div>
</div>
<div id="artistTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="musicrecommended.html">${TabSuggested}</a>
<a href="songs.html">${TabSongs}</a>
<a href="musicalbums.html">${TabAlbums}</a>
@ -97,7 +94,7 @@
</div>
</div>
<div id="gameGenreTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html">Game Systems</a>
@ -106,7 +103,7 @@
</div>
</div>
<div id="gameStudioTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html">Game Systems</a>

View File

@ -6,29 +6,17 @@
<body>
<div id="itemDetailPage" data-role="page" class="page libraryPage" data-theme="b">
<div id="movieTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="movieslatest.html">${TabLatest}</a>
<a href="moviesrecommended.html">${TabSuggested}</a>
<a href="movies.html" class="ui-btn-active">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a>
<a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html">${TabPeople}</a>
<a href="moviestudios.html">${TabStudios}</a>
</div>
</div>
<div id="trailerTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<a href="movieslatest.html">${TabLatest}</a>
<a href="moviesrecommended.html">${TabSuggested}</a>
<a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html" class="ui-btn-active">${TabTrailers}</a>
<a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html">${TabPeople}</a>
<a href="moviestudios.html">${TabStudios}</a>
</div>
</div>
<div id="tvShowsTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
@ -40,7 +28,7 @@
</div>
</div>
<div id="songTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="musicrecommended.html">${TabSuggested}</a>
<a href="songs.html" class="ui-btn-active">${TabSongs}</a>
<a href="musicalbums.html">${TabAlbums}</a>
@ -51,7 +39,7 @@
</div>
</div>
<div id="albumTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="musicrecommended.html">${TabSuggested}</a>
<a href="songs.html">${TabSongs}</a>
<a href="musicalbums.html" class="ui-btn-active">${TabAlbums}</a>
@ -62,7 +50,7 @@
</div>
</div>
<div id="musicVideoTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="musicrecommended.html">${TabSuggested}</a>
<a href="songs.html">${TabSongs}</a>
<a href="musicalbums.html">${TabAlbums}</a>
@ -73,7 +61,7 @@
</div>
</div>
<div id="gameTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html" class="ui-btn-active">${TabGames}</a>
<a href="gamesystems.html">Game Systems</a>
@ -82,7 +70,7 @@
</div>
</div>
<div id="gameSystemTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html" class="ui-btn-active">${TabGameSystems}</a>

View File

@ -4,7 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="liveTvChannelPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div id="liveTvChannelPage" data-role="page" class="page libraryPage liveTvPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">${TabGuide}</a>

View File

@ -4,7 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="liveTvChannelsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div id="liveTvChannelsPage" data-role="page" class="page libraryPage liveTvPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">${TabGuide}</a>

View File

@ -4,7 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="liveTvGuidePage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div id="liveTvGuidePage" data-role="page" class="page libraryPage liveTvPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html" class="ui-btn-active">${TabGuide}</a>

View File

@ -4,7 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="liveTvNewRecordingPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div id="liveTvNewRecordingPage" data-role="page" class="page libraryPage liveTvPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">${TabGuide}</a>

View File

@ -4,7 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="liveTvProgramPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div id="liveTvProgramPage" data-role="page" class="page libraryPage liveTvPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">${TabGuide}</a>

View File

@ -4,7 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="liveTvRecordingPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div id="liveTvRecordingPage" data-role="page" class="page libraryPage liveTvPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">${TabGuide}</a>

View File

@ -4,7 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="liveTvRecordingListPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div id="liveTvRecordingListPage" data-role="page" class="page libraryPage liveTvPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">${TabGuide}</a>

View File

@ -4,7 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="liveTvRecordingsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div id="liveTvRecordingsPage" data-role="page" class="page libraryPage liveTvPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">${TabGuide}</a>

View File

@ -4,7 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="liveTvSeriesTimerPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div id="liveTvSeriesTimerPage" data-role="page" class="page libraryPage liveTvPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">${TabGuide}</a>

View File

@ -4,7 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="liveTvSeriesTimersPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div id="liveTvSeriesTimersPage" data-role="page" class="page libraryPage liveTvPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">${TabGuide}</a>

View File

@ -4,7 +4,7 @@
<title>${TitleLiveTV}</title>
</head>
<body>
<div id="liveTvSettingsPage" data-role="page" class="page type-interior liveTvSettingsPage">
<div id="liveTvSettingsPage" data-role="page" class="page type-interior liveTvSettingsPage liveTvPage">
<div data-role="content">
<div class="content-primary">

View File

@ -4,7 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="liveTvSuggestedPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div id="liveTvSuggestedPage" data-role="page" class="page libraryPage liveTvPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="#" class="ui-btn-active">${TabSuggested}</a>
<a href="livetvguide.html">${TabGuide}</a>

View File

@ -4,7 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="liveTvTimerPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div id="liveTvTimerPage" data-role="page" class="page libraryPage liveTvPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">${TabGuide}</a>

View File

@ -4,7 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="liveTvTimersPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div id="liveTvTimersPage" data-role="page" class="page libraryPage liveTvPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">${TabGuide}</a>

View File

@ -6,12 +6,11 @@
<body>
<div id="movieGenresPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="movieslatest.html">${TabLatest}</a>
<a href="moviesrecommended.html">${TabSuggested}</a>
<a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a>
<a href="moviegenres.html" class="ui-btn-active">${TabGenres}</a>
<a href="#" class="ui-btn-active">${TabGenres}</a>
<a href="moviepeople.html">${TabPeople}</a>
<a href="moviestudios.html">${TabStudios}</a>
</div>

View File

@ -6,13 +6,12 @@
<body>
<div id="moviePeoplePage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="movieslatest.html">${TabLatest}</a>
<a href="moviesrecommended.html">${TabSuggested}</a>
<a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a>
<a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html" class="ui-btn-active">${TabPeople}</a>
<a href="#" class="ui-btn-active">${TabPeople}</a>
<a href="moviestudios.html">${TabStudios}</a>
</div>

View File

@ -6,11 +6,10 @@
<body>
<div id="moviesPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="movieslatest.html">${TabLatest}</a>
<a href="moviesrecommended.html">${TabSuggested}</a>
<a href="movies.html" class="ui-btn-active">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a>
<a href="#" class="ui-btn-active">${TabMovies}</a>
<a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html">${TabPeople}</a>
<a href="moviestudios.html">${TabStudios}</a>

View File

@ -6,11 +6,10 @@
<body>
<div id="moviesLatestPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="#" class="ui-btn-active">${TabLatest}</a>
<a href="moviesrecommended.html">${TabSuggested}</a>
<a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a>
<a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html">${TabPeople}</a>
<a href="moviestudios.html">${TabStudios}</a>
@ -25,13 +24,6 @@
<div id="recentlyAddedItems">
</div>
<div id="trailerSection" style="display: none;">
<h1 class="listHeader">${HeaderLatestTrailers}</h1>
<div id="trailerItems">
</div>
</div>
</td>
</tr>
</table>

View File

@ -6,11 +6,10 @@
<body>
<div id="moviesRecommendedPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="movieslatest.html">${TabLatest}</a>
<a href="#" class="ui-btn-active">${TabSuggested}</a>
<a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a>
<a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html">${TabPeople}</a>
<a href="moviestudios.html">${TabStudios}</a>

View File

@ -6,14 +6,13 @@
<body>
<div id="movieStudiosPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="movieslatest.html">${TabLatest}</a>
<a href="moviesrecommended.html">${TabSuggested}</a>
<a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a>
<a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html">${TabPeople}</a>
<a href="moviestudios.html" class="ui-btn-active">${TabStudios}</a>
<a href="#" class="ui-btn-active">${TabStudios}</a>
</div>
<div data-role="content">

View File

@ -4,17 +4,7 @@
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="movieTrailersPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
<div class="libraryViewNav">
<a href="movieslatest.html">${TabLatest}</a>
<a href="moviesrecommended.html">${TabSuggested}</a>
<a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html" class="ui-btn-active">${TabTrailers}</a>
<a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html">${TabPeople}</a>
<a href="moviestudios.html">${TabStudios}</a>
</div>
<div id="movieTrailersPage" data-role="page" class="page libraryPage trailerPage" data-theme="b" data-view="movies">
<div class="alphabetPicker">
</div>

View File

@ -5,11 +5,11 @@
</head>
<body>
<div id="musicAlbumArtistsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="music">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="musicrecommended.html">${TabSuggested}</a>
<a href="songs.html">${TabSongs}</a>
<a href="musicalbums.html">${TabAlbums}</a>
<a href="musicalbumartists.html" class="ui-btn-active">${TabAlbumArtists}</a>
<a href="#" class="ui-btn-active">${TabAlbumArtists}</a>
<a href="musicartists.html">${TabArtists}</a>
<a href="musicgenres.html">${TabGenres}</a>
<a href="musicvideos.html">${TabMusicVideos}</a>

View File

@ -5,10 +5,10 @@
</head>
<body>
<div id="musicAlbumsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="music">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="musicrecommended.html">${TabSuggested}</a>
<a href="songs.html">${TabSongs}</a>
<a href="musicalbums.html" class="ui-btn-active">${TabAlbums}</a>
<a href="#" class="ui-btn-active">${TabAlbums}</a>
<a href="musicalbumartists.html">${TabAlbumArtists}</a>
<a href="musicartists.html">${TabArtists}</a>
<a href="musicgenres.html">${TabGenres}</a>

View File

@ -5,12 +5,12 @@
</head>
<body>
<div id="musicArtistsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="music">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="musicrecommended.html">${TabSuggested}</a>
<a href="songs.html">${TabSongs}</a>
<a href="musicalbums.html">${TabAlbums}</a>
<a href="musicalbumartists.html">${TabAlbumArtists}</a>
<a href="musicartists.html" class="ui-btn-active">${TabArtists}</a>
<a href="#" class="ui-btn-active">${TabArtists}</a>
<a href="musicgenres.html">${TabGenres}</a>
<a href="musicvideos.html">${TabMusicVideos}</a>
</div>

View File

@ -5,13 +5,13 @@
</head>
<body>
<div id="musicGenresPage" data-role="page" class="page libraryPage" data-theme="b" data-view="music">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="musicrecommended.html">${TabSuggested}</a>
<a href="songs.html">${TabSongs}</a>
<a href="musicalbums.html">${TabAlbums}</a>
<a href="musicalbumartists.html">${TabAlbumArtists}</a>
<a href="musicartists.html">${TabArtists}</a>
<a href="musicgenres.html" class="ui-btn-active">${TabGenres}</a>
<a href="#" class="ui-btn-active">${TabGenres}</a>
<a href="musicvideos.html">${TabMusicVideos}</a>
</div>
<div data-role="content">

View File

@ -5,8 +5,8 @@
</head>
<body>
<div id="musicRecommendedPage" data-role="page" class="page libraryPage" data-theme="b" data-view="music">
<div class="libraryViewNav">
<a href="musicrecommended.html" class="ui-btn-active">${TabSuggested}</a>
<div class="libraryViewNav scopedLibraryViewNav">
<a href="#" class="ui-btn-active">${TabSuggested}</a>
<a href="songs.html">${TabSongs}</a>
<a href="musicalbums.html">${TabAlbums}</a>
<a href="musicalbumartists.html">${TabAlbumArtists}</a>

View File

@ -6,14 +6,14 @@
<body>
<div id="musicVideosPage" data-role="page" class="page libraryPage" data-theme="b" data-view="music">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="musicrecommended.html">${TabSuggested}</a>
<a href="songs.html">${TabSongs}</a>
<a href="musicalbums.html">${TabAlbums}</a>
<a href="musicalbumartists.html">${TabAlbumArtists}</a>
<a href="musicartists.html">${TabArtists}</a>
<a href="musicgenres.html">${TabGenres}</a>
<a href="musicvideos.html" class="ui-btn-active">${TabMusicVideos}</a>
<a href="#" class="ui-btn-active">${TabMusicVideos}</a>
</div>
<div class="alphabetPicker">

View File

@ -13,6 +13,11 @@
IsVirtualUnaired: false
};
function getSavedQueryKey() {
return 'episodes' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -60,9 +65,7 @@
reloadItems(page);
});
if (getParameterByName('savequery') != 'false') {
LibraryBrowser.saveQueryValues('episodes', query);
}
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -269,6 +272,8 @@
}).on('pagebeforeshow', "#episodesPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -277,7 +282,7 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('episodes', query);
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
var filters = getParameterByName('filters');
if (filters) {

View File

@ -251,6 +251,20 @@ function getParameterByName(name, url) {
return decodeURIComponent(results[1].replace(/\+/g, " "));
}
function replaceQueryString(url, param, value) {
var re = new RegExp("([?|&])" + param + "=.*?(&|$)", "i");
if (url.match(re))
return url.replace(re, '$1' + param + "=" + value + '$2');
else {
if (url.indexOf('?') == -1) {
return url + '?' + param + "=" + value;
}
return url + '&' + param + "=" + value;
}
}
function parseISO8601Date(s, options) {
options = options || {};

View File

@ -10,6 +10,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'gamegenres' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -54,7 +59,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('gamegenres', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -87,6 +92,8 @@
}).on('pagebeforeshow', "#gameGenresPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -95,7 +102,7 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('gamegenres', query);
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -12,6 +12,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'games' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -56,7 +61,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('games', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -190,6 +195,8 @@
}).on('pagebeforeshow', "#gamesPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -198,7 +205,7 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('games', query);
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -2,6 +2,8 @@
$(document).on('pagebeforeshow', "#gamesRecommendedPage", function () {
var parentId = LibraryMenu.getTopParentId();
var page = this;
var options = {
@ -11,7 +13,8 @@
MediaTypes: "Game",
Limit: 10,
Recursive: true,
Fields: "ItemCounts,AudioInfo,PrimaryImageAspectRatio"
Fields: "ItemCounts,AudioInfo,PrimaryImageAspectRatio",
ParentId: parentId
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
@ -32,7 +35,8 @@
Limit: 10,
Recursive: true,
Filters: "IsPlayed",
Fields: "ItemCounts,AudioInfo,PrimaryImageAspectRatio"
Fields: "ItemCounts,AudioInfo,PrimaryImageAspectRatio",
ParentId: parentId
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {

View File

@ -11,6 +11,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'gamestudios' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -55,7 +60,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('gamestudios', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -88,6 +93,8 @@
}).on('pagebeforeshow', "#gameStudiosPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -96,7 +103,7 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('gamestudios', query);
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -11,6 +11,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'gamesystems' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -52,7 +57,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('gamesystems', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -65,6 +70,8 @@
$(document).on('pagebeforeshow', "#gamesystemsPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -73,7 +80,7 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('gamesystems', query);
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -1,225 +1,71 @@
(function ($, document, apiClient) {
function getViewHtml(view) {
var html = '';
html += '<a id="' + view.id + '" class="posterItem backdropPosterItem" href="' + view.url + '">';
html += '<div class="posterItemImage" style="padding:1px;"></div><div class="posterItemText posterItemTextCentered">' + view.name + '</div>';
html += '</a>';
return html;
}
function appendViewImages(elem, urls) {
var html = '';
for (var i = 0, length = urls.length; i < length; i++) {
var url = urls[i];
html += '<div class="viewCollageImage" style="background-image: url(\'' + url + '\');"></div>';
}
elem.html(html);
}
function renderMovieViewImages(page, userId) {
apiClient.getItems(userId, {
SortBy: "random",
IncludeItemTypes: "Movie,Trailer",
Limit: 6,
ImageTypes: "Primary",
Recursive: true
}).done(function (result) {
var urls = [];
for (var i = 0, length = result.Items.length; i < length; i++) {
urls.push(LibraryBrowser.getImageUrl(result.Items[i], 'Primary', 0, {
width: 160,
EnableImageEnhancers: false
}));
}
appendViewImages($('#moviesView .posterItemImage', page), urls);
});
}
function renderMusicViewImages(page, userId) {
apiClient.getItems(userId, {
SortBy: "random",
IncludeItemTypes: "MusicAlbum",
Limit: 6,
ImageTypes: "Primary",
Recursive: true
}).done(function (result) {
var urls = [];
for (var i = 0, length = result.Items.length; i < length; i++) {
urls.push(LibraryBrowser.getImageUrl(result.Items[i], 'Primary', 0, {
width: 160,
EnableImageEnhancers: false
}));
}
appendViewImages($('#musicView .posterItemImage', page), urls);
});
}
function renderGamesViewImages(page, userId) {
apiClient.getItems(userId, {
SortBy: "random",
MediaTypes: "Game",
Limit: 6,
ImageTypes: "Primary",
Recursive: true
}).done(function (result) {
var urls = [];
for (var i = 0, length = result.Items.length; i < length; i++) {
urls.push(LibraryBrowser.getImageUrl(result.Items[i], 'Primary', 0, {
width: 160,
EnableImageEnhancers: false
}));
}
appendViewImages($('#gamesView .posterItemImage', page), urls);
});
}
function renderTvViewImages(page, userId) {
apiClient.getItems(userId, {
SortBy: "random",
IncludeItemTypes: "Series",
Limit: 6,
ImageTypes: "Primary",
Recursive: true
}).done(function (result) {
var urls = [];
for (var i = 0, length = result.Items.length; i < length; i++) {
urls.push(LibraryBrowser.getImageUrl(result.Items[i], 'Primary', 0, {
width: 160,
EnableImageEnhancers: false
}));
}
appendViewImages($('#tvView .posterItemImage', page), urls);
});
}
function renderViews(page, userId) {
apiClient.getItemCounts(userId).done(function (counts) {
var views = [];
if (counts.MovieCount || counts.TrailerCount) {
views.push({ id: "moviesView", name: "Movies", url: "movieslatest.html", img: "css/images/items/list/chapter.png", background: "#0094FF" });
}
if (counts.EpisodeCount || counts.SeriesCount) {
views.push({ id: "tvView", name: "TV Shows", url: "tvrecommended.html", img: "css/images/items/list/collection.png", background: "#FF870F" });
}
if (counts.SongCount || counts.MusicVideoCount) {
views.push({ id: "musicView", name: "Music", url: "musicrecommended.html", img: "css/images/items/list/audiocollection.png", background: "#6FBD45" });
}
if (counts.GameCount) {
views.push({ id: "gamesView", name: "Games", url: "gamesrecommended.html", img: "css/images/items/list/gamecollection.png", background: "#E12026" });
}
var html = '';
for (var i = 0, length = views.length; i < length; i++) {
html += getViewHtml(views[i]);
}
var elem = $('#views', page).html(html).trigger('create');
if (counts.MovieCount || counts.TrailerCount) {
renderMovieViewImages(elem, userId);
}
if (counts.EpisodeCount || counts.SeriesCount) {
renderTvViewImages(elem, userId);
}
if (counts.SongCount || counts.MusicVideoCount) {
renderMusicViewImages(elem, userId);
}
if (counts.GameCount) {
renderGamesViewImages(elem, userId);
}
});
}
$(document).on('pagebeforeshow', "#indexPage", function () {
var parentId = LibraryMenu.getTopParentId();
var screenWidth = $(window).width();
var page = this;
var userId = Dashboard.getCurrentUserId();
if (!userId) {
return;
}
renderViews(page, userId);
var options = {
sortBy: "SortName"
SortBy: "DatePlayed",
SortOrder: "Descending",
MediaTypes: "Video",
Filters: "IsResumable",
Limit: screenWidth >= 1920 ? 4 : (screenWidth >= 1440 ? 4 : 3),
Recursive: true,
Fields: "PrimaryImageAspectRatio",
CollapseBoxSetItems: false,
ExcludeLocationTypes: "Virtual",
ParentId: parentId
};
apiClient.getItems(userId, options).done(function (result) {
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
$('#divCollections', page).html(LibraryBrowser.getPosterViewHtml({
if (result.Items.length) {
$('#resumableSection', page).show();
} else {
$('#resumableSection', page).hide();
}
$('#resumableItems', page).html(LibraryBrowser.getPosterViewHtml({
items: result.Items,
showTitle: true,
shape: "backdrop",
centerText: true
}));
preferBackdrop: true,
shape: 'backdrop',
overlayText: true,
showTitle: true
})).createPosterItemMenus();
});
options = {
SortBy: "DateCreated",
SortOrder: "Descending",
Limit: screenWidth >= 1920 ? 24 : (screenWidth >= 1440 ? 24 : (screenWidth >= 800 ? 18 : 12)),
Recursive: true,
Fields: "PrimaryImageAspectRatio",
Filters: "IsUnplayed,IsNotFolder",
CollapseBoxSetItems: false,
ExcludeLocationTypes: "Virtual,Remote",
ParentId: parentId
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
$('#recentlyAddedItems', page).html(LibraryBrowser.getPosterViewHtml({
items: result.Items,
preferThumb: true,
shape: 'backdrop',
showTitle: true,
centerText: true
})).createPosterItemMenus();
});
});
})(jQuery, document, ApiClient);

View File

@ -192,10 +192,6 @@
$('#gameSystemTabs', page).show();
}
if (item.Type == "Trailer") {
$('#trailerTabs', page).show();
}
if (item.Type == "Episode" || item.Type == "Season" || item.Type == "Series") {
$('#tvShowsTabs', page).show();
}

View File

@ -74,7 +74,9 @@
Dashboard.hideLoadingMsg();
});
var promise = query.ParentId ? ApiClient.getItem(userId, query.ParentId) : ApiClient.getRootFolder(userId);
var promise = query.ParentId ?
ApiClient.getItem(userId, query.ParentId) :
ApiClient.getRootFolder(userId);
promise.done(function (item) {

View File

@ -742,7 +742,7 @@
html += "</div>";
}
var overlayText = forceName || options.overlayText;
var overlayText = options.overlayText || (forceName && !options.showTitle);
if (overlayText) {
html += '<div class="posterItemTextOverlay">';

View File

@ -2,17 +2,23 @@
var itemCountsPromise;
var liveTvInfoPromise;
var itemsPromise;
function ensurePromises() {
itemsPromise = itemsPromise || ApiClient.getItems(Dashboard.getCurrentUserId(), {
SortBy: "SortName"
});
itemCountsPromise = itemCountsPromise || ApiClient.getItemCounts(Dashboard.getCurrentUserId());
liveTvInfoPromise = liveTvInfoPromise || ApiClient.getLiveTvInfo();
}
function renderHeader(page, user) {
function renderHeader(user) {
var html = '<div class="viewMenuBar ui-bar-b">';
html += '<button type="button" data-icon="bars" data-iconpos="notext" data-inline="true" title="Menu" class="libraryMenuButton" onclick="LibraryMenu.showLibraryMenu($(this).parents(\'.page\'));">Menu</button>';
html += '<button type="button" data-icon="bars" data-iconpos="notext" data-inline="true" title="Menu" class="libraryMenuButton" onclick="LibraryMenu.showLibraryMenu();">Menu</button>';
html += '<a class="desktopHomeLink" href="index.html"><img src="css/images/mblogoicon.png" /></a>';
@ -53,72 +59,90 @@
html += '</div>';
var $page = $(page);
$(document.body).prepend(html);
$page.prepend(html);
$('.viewMenuBar').trigger('create');
$('.viewMenuBar', page).trigger('create');
$page.trigger('headercreated');
$(document).trigger('headercreated');
}
function insertViews(page, user, counts, liveTvInfo) {
function getItemHref(item) {
if (item.Type == 'ManualCollectionsFolder') {
return 'collections.html?topParentId=' + item.Id;
}
if (item.CollectionType == 'boxsets') {
return 'moviecollections.html?topParentId=' + item.Id;
}
if (item.CollectionType == 'trailers') {
return 'movietrailers.html?topParentId=' + item.Id;
}
if (item.Type == 'TrailerCollectionFolder') {
return 'movietrailers.html?topParentId=' + item.Id;
}
if (item.CollectionType == 'movies') {
return 'movieslatest.html?topParentId=' + item.Id;
}
if (item.CollectionType == 'tvshows') {
return 'tvrecommended.html?topParentId=' + item.Id;
}
if (item.CollectionType == 'music') {
return 'musicrecommended.html?topParentId=' + item.Id;
}
if (item.CollectionType == 'games') {
return 'gamesrecommended.html?topParentId=' + item.Id;
}
return 'itemlist.html?topParentId=' + item.Id + '&parentid=' + item.Id;
}
function insertViews(user, counts, items, liveTvInfo) {
var html = '';
var selectedCssClass = ' selectedViewLink';
var selectedHtml = "<span class='selectedViewIndicator'>&#9654;</span>";
html += items.map(function (i) {
var view = page.getAttribute('data-view') || getParameterByName('context');
return '<a data-itemid="' + i.Id + '" class="lnkMediaFolder viewMenuLink viewMenuTextLink desktopViewMenuLink" href="' + getItemHref(i) + '"><span class="viewName">' + i.Name + '</span></a>';
if (counts.MovieCount) {
}).join('');
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink' + (view == 'movies' ? selectedCssClass : '') + '" href="movieslatest.html">' + (view == 'movies' ? selectedHtml : '') + '<span class="viewName">Movies</span></a>';
}
if (counts.SeriesCount) {
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink' + (view == 'tv' ? selectedCssClass : '') + '" href="tvrecommended.html">' + (view == 'tv' ? selectedHtml : '') + '<span class="viewName">TV</span></a>';
if (counts.ChannelCount) {
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink lnkMediaFolder" href="channels.html"><span class="viewName">Channels</span></a>';
}
if (liveTvInfo.EnabledUsers.indexOf(user.Id) != -1) {
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink' + (view == 'livetv' ? selectedCssClass : '') + '" href="livetvsuggested.html">' + (view == 'livetv' ? selectedHtml : '') + '<span class="viewName">Live TV</span></a>';
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink lnkMediaFolder" data-itemid="livetv" href="livetvsuggested.html"><span class="viewName">Live TV</span></a>';
}
if (counts.SongCount || counts.MusicVideoCount) {
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink' + (view == 'music' ? selectedCssClass : '') + '" href="musicrecommended.html">' + (view == 'music' ? selectedHtml : '') + '<span class="viewName">Music</span></a>';
}
if (counts.GameCount) {
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink' + (view == 'games' ? selectedCssClass : '') + '" href="gamesrecommended.html">' + (view == 'games' ? selectedHtml : '') + '<span class="viewName">Games</span></a>';
}
if (counts.ChannelCount) {
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink' + (view == 'channels' ? selectedCssClass : '') + '" href="channels.html">' + (view == 'channels' ? selectedHtml : '') + '<span class="viewName">Channels</span></a>';
}
//if (counts.BoxSetCount) {
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink' + (view == 'boxsets' ? selectedCssClass : '') + '" href="collections.html">' + (view == 'boxsets' ? selectedHtml : '') + '<span class="viewName">Collections</span></a>';
//}
$('.viewMenuRemoteControlButton', page).before(html);
$('.viewMenuRemoteControlButton').before(html);
}
function showLibraryMenu(page) {
function showLibraryMenu() {
ensurePromises();
$.when(itemCountsPromise, liveTvInfoPromise).done(function (response1, response2) {
$.when(itemCountsPromise, itemsPromise, liveTvInfoPromise).done(function (response1, response2, response3) {
var counts = response1[0];
var liveTvInfo = response2[0];
var items = response2[0].Items;
var liveTvInfo = response3[0];
var panel = getLibraryMenu(page, counts, liveTvInfo);
var page = $.mobile.activePage;
var panel = getLibraryMenu(page, counts, items, liveTvInfo);
$(panel).panel('toggle');
});
}
function getLibraryMenu(page, counts, liveTvInfo) {
function getLibraryMenu(page, counts, items, liveTvInfo) {
var panel = $('#libraryPanel', page);
@ -132,34 +156,20 @@
html += '<ul data-role="listview">';
if (counts.MovieCount) {
html += '<li><a class="libraryPanelLink" href="movieslatest.html">Movies</a></li>';
}
html += items.map(function (i) {
if (counts.SeriesCount) {
html += '<li><a class="libraryPanelLink" href="tvrecommended.html">TV</a></li>';
return '<li><a data-itemid="' + i.Id + '" class="libraryPanelLink lnkMediaFolder" href="' + getItemHref(i) + '">' + i.Name + '</a></li>';
}).join('');
if (counts.ChannelCount) {
html += '<li><a class="libraryPanelLink lnkMediaFolder" href="channels.html">Channels</a></li>';
}
if (liveTvInfo.EnabledUsers.indexOf(Dashboard.getCurrentUserId()) != -1) {
html += '<li><a class="libraryPanelLink" href="livetvsuggested.html">Live TV</a></li>';
html += '<li><a class="libraryPanelLink lnkMediaFolder" data-itemid="livetv" href="livetvsuggested.html">Live TV</a></li>';
}
if (counts.SongCount || counts.MusicVideoCount) {
html += '<li><a class="libraryPanelLink" href="musicrecommended.html">Music</a></li>';
}
if (counts.ChannelCount) {
html += '<li><a class="libraryPanelLink" href="channels.html">Channels</a></li>';
}
if (counts.GameCount) {
html += '<li><a class="libraryPanelLink" href="gamesrecommended.html">Games</a></li>';
}
//if (counts.BoxSetCount) {
html += '<li><a class="libraryPanelLink" href="collections.html">Collections</a></li>';
//}
html += '</ul>';
html += '</div>';
@ -171,12 +181,19 @@
return panel;
}
function getTopParentId() {
return getParameterByName('topParentId') || sessionStorage.getItem('topParentId') || null;
}
window.LibraryMenu = {
showLibraryMenu: showLibraryMenu
showLibraryMenu: showLibraryMenu,
getTopParentId: getTopParentId
};
function updateCastIcon() {
var info = MediaController.getPlayerInfo();
if (info.isLocalPlayer) {
@ -189,6 +206,48 @@
}
}
function updateLibraryNavLinks(page) {
page = $(page);
var isLiveTvPage = page.hasClass('liveTvPage');
var id = isLiveTvPage || page.hasClass('noLibraryMenuSelectionPage') ?
'' :
getTopParentId() || '';
sessionStorage.setItem('topParentId', id);
$('.lnkMediaFolder').each(function () {
var itemId = this.getAttribute('data-itemid');
if (isLiveTvPage && itemId == 'livetv') {
$(this).addClass('selectedMediaFolder');
}
else if (id && itemId == id) {
$(this).addClass('selectedMediaFolder');
}
else {
$(this).removeClass('selectedMediaFolder');
}
});
$('.scopedLibraryViewNav a', page).each(function () {
var src = this.href;
if (src.indexOf('#') != -1) {
return;
}
src = replaceQueryString(src, 'topParentId', id);
this.href = src;
});
}
$(document).on('pageinit', ".libraryPage", function () {
var page = this;
@ -201,31 +260,42 @@
});
}).on('pagebeforeshow', ".libraryPage", function () {
}).on('pagebeforeshow', ".page", function () {
var page = this;
if (!$('.viewMenuBar', page).length) {
if ($(page).hasClass('libraryPage')) {
Dashboard.getCurrentUser().done(function (user) {
if (!$('.viewMenuBar').length) {
renderHeader(page, user);
Dashboard.getCurrentUser().done(function (user) {
ensurePromises();
renderHeader(user);
$.when(itemCountsPromise, liveTvInfoPromise).done(function (response1, response2) {
ensurePromises();
var counts = response1[0];
var liveTvInfo = response2[0];
$.when(itemCountsPromise, itemsPromise, liveTvInfoPromise).done(function (response1, response2, response3) {
insertViews(page, user, counts, liveTvInfo);
var counts = response1[0];
var items = response2[0].Items;
var liveTvInfo = response3[0];
insertViews(user, counts, items, liveTvInfo);
updateLibraryNavLinks(page);
});
});
});
}
} else {
updateCastIcon();
$('.viewMenuBar').show();
updateLibraryNavLinks(page);
}
} else {
$('.viewMenuBar').hide();
}
}).on('pageshow', ".libraryPage", function () {
@ -239,15 +309,15 @@
// Scroll back up so in case vertical scroll was messed with
$(document).scrollTop(0);
}
});
$(function() {
$(function () {
$(MediaController).on('playerchange', function () {
updateCastIcon();
});
});
})(window, document, jQuery);

View File

@ -509,13 +509,11 @@
});
}
$(document).on('headercreated', ".libraryPage", function () {
$(document).on('headercreated', function () {
var page = this;
$('.btnCast').on('click', function () {
$('.btnCast', page).on('click', function () {
showPlayerSelection(page);
showPlayerSelection($.mobile.activePage);
});
});

View File

@ -1118,14 +1118,6 @@
}
});
function replaceQueryString(url, param, value) {
var re = new RegExp("([?|&])" + param + "=.*?(&|$)", "i");
if (url.match(re))
return url.replace(re, '$1' + param + "=" + value + '$2');
else
return url + '&' + param + "=" + value;
}
function sendProgressUpdate(itemId, mediaSourceId) {
ApiClient.reportPlaybackProgress({

View File

@ -11,6 +11,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'moviegenres' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -55,7 +60,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('moviegenres', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -88,6 +93,8 @@
}).on('pagebeforeshow', "#movieGenresPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -96,7 +103,7 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('moviegenres', query);
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -13,6 +13,11 @@
Limit: 100
};
function getSavedQueryKey() {
return 'moviepeople' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -52,7 +57,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('moviepeople', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -126,7 +131,17 @@
}).on('pagebeforeshow', "#moviePeoplePage", function () {
LibraryBrowser.loadSavedQueryValues('moviepeople', query);
query.ParentId = LibraryMenu.getTopParentId();
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;
}
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -13,6 +13,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'movies' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -96,7 +101,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('movies', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -203,7 +208,7 @@
reloadItems(page);
}
LibraryBrowser.saveViewSetting('movies', view);
LibraryBrowser.saveViewSetting(getSavedQueryKey(), view);
});
$('.chkVideoTypeFilter', this).on('change', function () {
@ -361,6 +366,8 @@
}).on('pagebeforeshow', "#moviesPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var page = this;
var limit = LibraryBrowser.getDefaultPageSize();
@ -370,9 +377,11 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('movies', query);
var viewkey = getSavedQueryKey();
LibraryBrowser.getSavedViewSetting('movies').done(function (val) {
LibraryBrowser.loadSavedQueryValues(viewkey, query);
LibraryBrowser.getSavedViewSetting(viewkey).done(function (val) {
if (val) {
$('#selectView', page).val(val).selectmenu('refresh').trigger('change');

View File

@ -2,6 +2,8 @@
$(document).on('pagebeforeshow', "#moviesLatestPage", function () {
var parentId = LibraryMenu.getTopParentId();
var screenWidth = $(window).width();
var page = this;
@ -11,11 +13,12 @@
SortBy: "DateCreated",
SortOrder: "Descending",
IncludeItemTypes: "Movie",
Limit: screenWidth >= 1920 ? 32 : (screenWidth >= 1440 ? 24 : (screenWidth >= 800 ? 18 : 12)),
Limit: screenWidth >= 1920 ? 32 : (screenWidth >= 1440 ? 32 : (screenWidth >= 800 ? 24 : 18)),
Recursive: true,
Fields: "PrimaryImageAspectRatio",
Filters: "IsUnplayed",
CollapseBoxSetItems: false
CollapseBoxSetItems: false,
ParentId: parentId
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
@ -26,34 +29,6 @@
})).createPosterItemMenus();
});
options = {
SortBy: "DateCreated",
SortOrder: "Descending",
IncludeItemTypes: "Trailer",
Limit: screenWidth >= 1920 ? 8 : (screenWidth >= 1440 ? 8 : 6),
Recursive: true,
Fields: "PrimaryImageAspectRatio",
Filters: "IsUnplayed",
CollapseBoxSetItems: false
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
if (result.Items.length) {
$('#trailerSection', page).show();
} else {
$('#trailerSection', page).hide();
}
$('#trailerItems', page).html(LibraryBrowser.getPosterViewHtml({
items: result.Items
})).createPosterItemMenus();
});
});

View File

@ -37,6 +37,8 @@
$(document).on('pagebeforeshow', "#moviesRecommendedPage", function () {
var parentId = LibraryMenu.getTopParentId();
var screenWidth = $(window).width();
var page = this;
@ -50,7 +52,8 @@
Limit: screenWidth >= 1920 ? 4 : (screenWidth >= 1440 ? 4 : 3),
Recursive: true,
Fields: "PrimaryImageAspectRatio",
CollapseBoxSetItems: false
CollapseBoxSetItems: false,
ParentId: parentId
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
@ -77,7 +80,8 @@
userId: Dashboard.getCurrentUserId(),
categoryLimit: screenWidth >= 1200 ? 6 : 3,
itemLimit: screenWidth >= 1920 ? 8 : (screenWidth >= 1440 ? 8 : 6),
Fields: "PrimaryImageAspectRatio"
Fields: "PrimaryImageAspectRatio",
ParentId: parentId
});
$.getJSON(url).done(function(recommendations) {

View File

@ -11,6 +11,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'moviestudios' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -55,7 +60,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('moviestudios', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -87,6 +92,8 @@
}).on('pagebeforeshow', "#movieStudiosPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -95,7 +102,7 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('moviestudios', query);
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -11,6 +11,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'musicartists' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -56,7 +61,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('musicartists', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -104,6 +109,8 @@
}).on('pagebeforeshow', "#musicAlbumArtistsPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -112,7 +119,7 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('musicartists', query);
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -13,6 +13,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'musicalbums' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -72,7 +77,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('musicalbums', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -157,7 +162,7 @@
} else {
reloadItems(page);
}
LibraryBrowser.saveViewSetting('musicalbums', view);
LibraryBrowser.saveViewSetting(getSavedQueryKey(), view);
});
$('.alphabetPicker', page).on('alphaselect', function (e, character) {
@ -184,6 +189,8 @@
}).on('pagebeforeshow', "#musicAlbumsPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var page = this;
var limit = LibraryBrowser.getDefaultPageSize();
@ -193,9 +200,10 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('musicalbums', query);
var viewKey = getSavedQueryKey();
LibraryBrowser.loadSavedQueryValues(viewKey, query);
LibraryBrowser.getSavedViewSetting('musicalbums').done(function (val) {
LibraryBrowser.getSavedViewSetting(viewKey).done(function (val) {
if (val) {
$('#selectView', page).val(val).selectmenu('refresh').trigger('change');

View File

@ -10,6 +10,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'musicartists' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -55,7 +60,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('musicartists', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -103,6 +108,8 @@
}).on('pagebeforeshow', "#musicArtistsPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -111,7 +118,7 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('musicartists', query);
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -11,6 +11,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'musicgenres' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -56,7 +61,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('musicgenres', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -89,6 +94,8 @@
}).on('pagebeforeshow', "#musicGenresPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -97,7 +104,7 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('musicgenres', query);
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -6,6 +6,8 @@
var page = this;
var parentId = LibraryMenu.getTopParentId();
var options = {
SortBy: "DateCreated",
@ -13,7 +15,8 @@
IncludeItemTypes: "MusicAlbum",
Limit: screenWidth >= 1920 ? 6 : (screenWidth >= 1440 ? 6 : 5),
Recursive: true,
Fields: "PrimaryImageAspectRatio"
Fields: "PrimaryImageAspectRatio",
ParentId: parentId
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
@ -35,7 +38,8 @@
IncludeItemTypes: "Audio",
Limit: screenWidth >= 1920 ? 6 : (screenWidth >= 1440 ? 6 : 5),
Recursive: true,
Fields: "PrimaryImageAspectRatio,AudioInfo"
Fields: "PrimaryImageAspectRatio,AudioInfo",
ParentId: parentId
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
@ -58,7 +62,8 @@
Limit: screenWidth >= 1920 ? 6 : (screenWidth >= 1440 ? 6 : 5),
Recursive: true,
Fields: "PrimaryImageAspectRatio,AudioInfo",
Filters: "IsPlayed"
Filters: "IsPlayed",
ParentId: parentId
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
@ -87,7 +92,8 @@
Limit: screenWidth >= 1920 ? 12 : (screenWidth >= 1440 ? 12 : 10),
Recursive: true,
Fields: "PrimaryImageAspectRatio,AudioInfo",
Filters: "IsPlayed"
Filters: "IsPlayed",
ParentId: parentId
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {

View File

@ -11,6 +11,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'musicvideos' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -54,7 +59,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('musicvideos', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -210,6 +215,8 @@
}).on('pagebeforeshow', "#musicVideosPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -218,7 +225,7 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('musicvideos', query);
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -13,9 +13,12 @@
Limit: 200,
StartIndex: 0
};
LibraryBrowser.loadSavedQueryValues('songs', query);
function getSavedQueryKey() {
return 'songs' + (query.ParentId || '');
}
function updateFilterControls(page) {
// Reset form values using the last used query
@ -104,7 +107,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('songs', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -145,6 +148,10 @@
}).on('pagebeforeshow', "#songsPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);
}).on('pageshow', "#songsPage", function () {

View File

@ -11,6 +11,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'tvgenres' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -57,7 +62,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('tvgenres', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -98,6 +103,8 @@
}).on('pagebeforeshow', "#tvGenresPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -106,7 +113,7 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('tvgenres', query);
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -4,6 +4,8 @@
var screenWidth = $(window).width();
var parentId = LibraryMenu.getTopParentId();
var page = this;
var options = {
@ -15,7 +17,8 @@
Recursive: true,
Fields: "PrimaryImageAspectRatio,SeriesInfo,UserData",
Filters: "IsUnplayed",
ExcludeLocationTypes: "Virtual"
ExcludeLocationTypes: "Virtual",
ParentId: parentId
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {

View File

@ -13,6 +13,11 @@
Limit: 100
};
function getSavedQueryKey() {
return 'tvpeople' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -52,7 +57,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('tvpeople', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -135,7 +140,9 @@
}).on('pagebeforeshow', "#tvPeoplePage", function () {
LibraryBrowser.loadSavedQueryValues('tvpeople', query);
query.ParentId = LibraryMenu.getTopParentId();
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -4,6 +4,8 @@
var screenWidth = $(window).width();
var parentId = LibraryMenu.getTopParentId();
var options = {
SortBy: "DatePlayed",
@ -13,7 +15,8 @@
Limit: screenWidth >= 1920 ? 4 : (screenWidth >= 1440 ? 4 : 3),
Recursive: true,
Fields: "PrimaryImageAspectRatio,SeriesInfo,UserData",
ExcludeLocationTypes: "Virtual"
ExcludeLocationTypes: "Virtual",
ParentId: parentId
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
@ -38,12 +41,15 @@
function loadNextUp(page) {
var parentId = LibraryMenu.getTopParentId();
var options = {
Limit: 24,
Fields: "PrimaryImageAspectRatio,SeriesInfo,DateCreated",
UserId: Dashboard.getCurrentUserId(),
ExcludeLocationTypes: "Virtual"
ExcludeLocationTypes: "Virtual",
ParentId: parentId
};
ApiClient.getNextUpEpisodes(options).done(function (result) {

View File

@ -13,6 +13,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'tvshows' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -97,7 +102,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('tvshows', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -238,7 +243,7 @@
} else {
reloadItems(page);
}
LibraryBrowser.saveViewSetting('tvshows', view);
LibraryBrowser.saveViewSetting(getSavedQueryKey(), view);
});
$('#chkTrailer', this).on('change', function () {
@ -341,6 +346,8 @@
}).on('pagebeforeshow', "#tvShowsPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var page = this;
var limit = LibraryBrowser.getDefaultPageSize();
@ -350,9 +357,11 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('tvshows', query);
var viewKey = getSavedQueryKey();
LibraryBrowser.getSavedViewSetting('tvshows').done(function (val) {
LibraryBrowser.loadSavedQueryValues(viewKey, query);
LibraryBrowser.getSavedViewSetting(viewKey).done(function (val) {
if (val) {
$('#selectView', page).val(val).selectmenu('refresh').trigger('change');

View File

@ -11,6 +11,11 @@
StartIndex: 0
};
function getSavedQueryKey() {
return 'tvstudios' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
@ -57,7 +62,7 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('tvstudios', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
@ -98,6 +103,8 @@
}).on('pagebeforeshow', "#tvStudiosPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -106,7 +113,7 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('tvstudios', query);
LibraryBrowser.loadSavedQueryValues(getSavedQueryKey(), query);
reloadItems(this);

View File

@ -4,11 +4,14 @@
var page = this;
var parentId = LibraryMenu.getTopParentId();
var query = {
Limit: 32,
Fields: "SeriesInfo,UserData",
UserId: Dashboard.getCurrentUserId()
UserId: Dashboard.getCurrentUserId(),
ParentId: parentId
};
$.getJSON(ApiClient.getUrl("Shows/Upcoming", query)).done(function (result) {

View File

@ -5,9 +5,9 @@
</head>
<body>
<div id="songsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="music">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="musicrecommended.html">${TabSuggested}</a>
<a href="songs.html" class="ui-btn-active">${TabSongs}</a>
<a href="#" class="ui-btn-active">${TabSongs}</a>
<a href="musicalbums.html">${TabAlbums}</a>
<a href="musicalbumartists.html">${TabAlbumArtists}</a>
<a href="musicartists.html">${TabArtists}</a>

View File

@ -5,13 +5,13 @@
</head>
<body>
<div id="tvGenresPage" data-role="page" class="page libraryPage" data-theme="b" data-view="tv">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html" class="ui-btn-active">${TabGenres}</a>
<a href="#" class="ui-btn-active">${TabGenres}</a>
<a href="tvpeople.html">${TabPeople}</a>
<a href="tvstudios.html">${TabNetworks}</a>
</div>

View File

@ -5,9 +5,9 @@
</head>
<body>
<div id="tvNextUpPage" data-role="page" class="page libraryPage" data-theme="b" data-view="tv">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html" class="ui-btn-active">${TabLatest}</a>
<a href="#" class="ui-btn-active">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>

View File

@ -5,14 +5,14 @@
</head>
<body>
<div id="tvPeoplePage" data-role="page" class="page libraryPage" data-theme="b" data-view="tv">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>
<a href="tvpeople.html" class="ui-btn-active">${TabPeople}</a>
<a href="#" class="ui-btn-active">${TabPeople}</a>
<a href="tvstudios.html">${TabNetworks}</a>
</div>

View File

@ -5,8 +5,8 @@
</head>
<body>
<div id="tvRecommendedPage" data-role="page" class="page libraryPage" data-theme="b" data-view="tv">
<div class="libraryViewNav">
<a href="tvrecommended.html" class="ui-btn-active">${TabSuggested}</a>
<div class="libraryViewNav scopedLibraryViewNav">
<a href="#" class="ui-btn-active">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>

View File

@ -5,11 +5,11 @@
</head>
<body>
<div id="tvShowsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="tv">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
<a href="tvshows.html" class="ui-btn-active">${TabShows}</a>
<a href="#" class="ui-btn-active">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>
<a href="tvpeople.html">${TabPeople}</a>

View File

@ -1,11 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>${MediaBrowser}</title>
<title>${TitleMediaBrowser}</title>
</head>
<body>
<div id="tvStudiosPage" data-role="page" class="page libraryPage" data-theme="b" data-view="tv">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html">${TabUpcoming}</a>
@ -13,7 +13,7 @@
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>
<a href="tvpeople.html">${TabPeople}</a>
<a href="tvstudios.html" class="ui-btn-active">${TabNetworks}</a>
<a href="#" class="ui-btn-active">${TabNetworks}</a>
</div>
<div data-role="content">
<div class="viewSettings">

View File

@ -5,10 +5,10 @@
</head>
<body>
<div id="tvUpcomingPage" data-role="page" class="page libraryPage" data-theme="b" data-view="tv">
<div class="libraryViewNav">
<div class="libraryViewNav scopedLibraryViewNav">
<a href="tvrecommended.html">${TabSuggested}</a>
<a href="tvlatest.html">${TabLatest}</a>
<a href="tvupcoming.html" class="ui-btn-active">${TabUpcoming}</a>
<a href="#" class="ui-btn-active">${TabUpcoming}</a>
<a href="tvshows.html">${TabShows}</a>
<a href="episodes.html">${TabEpisodes}</a>
<a href="tvgenres.html">${TabGenres}</a>