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

update xbox one profile

This commit is contained in:
Luke Pulverenti 2015-05-07 18:27:01 -04:00
parent f515eab01b
commit b28e9b73bb
24 changed files with 624 additions and 532 deletions

View file

@ -9,7 +9,7 @@
<div class="libraryViewNav scopedLibraryViewNav movieTabs"> <div class="libraryViewNav scopedLibraryViewNav movieTabs">
<a href="moviesrecommended.html">${TabSuggestions}</a> <a href="moviesrecommended.html">${TabSuggestions}</a>
<a href="movies.html">${TabMovies}</a> <a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a> <a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
<a href="#" class="ui-btn-active">${TabCollections}</a> <a href="#" class="ui-btn-active">${TabCollections}</a>
<a href="moviegenres.html">${TabGenres}</a> <a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a> <a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>

View file

@ -238,11 +238,6 @@
height: 100%; height: 100%;
} }
.cardImage canvas {
width: 100%;
height: 100%;
}
.coveredCardImage { .coveredCardImage {
background-size: cover; background-size: cover;
} }

View file

@ -114,14 +114,6 @@
background-image: url("images/icons/subtitles.png"); background-image: url("images/icons/subtitles.png");
} }
.ui-icon-wireless:after {
background-image: url("images/icons/wireless.png");
}
/* Fallback */
.ui-nosvg .ui-icon-wireless:after {
background-image: url("images/icons/wireless.png");
}
.ui-icon-expand:after { .ui-icon-expand:after {
background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%20Tiny%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11-tiny.dtd%22%3E%3Csvg%20version%3D%221.1%22%20baseProfile%3D%22tiny%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%220%200%20500%20500%22%20xml%3Aspace%3D%22preserve%22%3E%20%3Cpath%20d%3D%22M210.659%20294.643q0%203.627-2.79%206.417l-92.634%2092.634%2040.179%2040.179q5.301%205.301%205.301%2012.556t-5.301%2012.556-12.556%205.301h-125q-7.254%200-12.556-5.301t-5.301-12.556v-125q0-7.254%205.301-12.556t12.556-5.301%2012.556%205.301l40.179%2040.179%2092.634-92.634q2.79-2.79%206.417-2.79t6.417%202.79l31.808%2031.808q2.79%202.79%202.79%206.417zM428.571%2053.571v125q0%207.254-5.301%2012.556t-12.556%205.301-12.556-5.301l-40.179-40.179-92.634%2092.634q-2.79%202.79-6.417%202.79t-6.417-2.79l-31.808-31.808q-2.79-2.79-2.79-6.417t2.79-6.417l92.634-92.634-40.179-40.179q-5.301-5.301-5.301-12.556t5.301-12.556%2012.556-5.301h125q7.254%200%2012.556%205.301t5.301%2012.556z%22%20fill%3D%22%23ffffff%22%20%2F%3E%3C%2Fsvg%3E"); background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%20Tiny%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11-tiny.dtd%22%3E%3Csvg%20version%3D%221.1%22%20baseProfile%3D%22tiny%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%220%200%20500%20500%22%20xml%3Aspace%3D%22preserve%22%3E%20%3Cpath%20d%3D%22M210.659%20294.643q0%203.627-2.79%206.417l-92.634%2092.634%2040.179%2040.179q5.301%205.301%205.301%2012.556t-5.301%2012.556-12.556%205.301h-125q-7.254%200-12.556-5.301t-5.301-12.556v-125q0-7.254%205.301-12.556t12.556-5.301%2012.556%205.301l40.179%2040.179%2092.634-92.634q2.79-2.79%206.417-2.79t6.417%202.79l31.808%2031.808q2.79%202.79%202.79%206.417zM428.571%2053.571v125q0%207.254-5.301%2012.556t-12.556%205.301-12.556-5.301l-40.179-40.179-92.634%2092.634q-2.79%202.79-6.417%202.79t-6.417-2.79l-31.808-31.808q-2.79-2.79-2.79-6.417t2.79-6.417l92.634-92.634-40.179-40.179q-5.301-5.301-5.301-12.556t5.301-12.556%2012.556-5.301h125q7.254%200%2012.556%205.301t5.301%2012.556z%22%20fill%3D%22%23ffffff%22%20%2F%3E%3C%2Fsvg%3E");
background-repeat: no-repeat; background-repeat: no-repeat;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 345 B

View file

@ -1443,14 +1443,14 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
} }
.userProfileSettingsForm .detailSectionContent { .userProfileSettingsForm .detailSectionContent {
padding: 0 1em; padding: 0 .5em;
} }
@media all and (max-width: 700px) { @media all and (max-width: 700px) {
.userProfileSettingsForm .detailSection { .userProfileSettingsForm .detailSection {
margin-left: 1em; margin-left: .5em;
margin-right: 1em; margin-right: .5em;
} }
} }
@ -1505,3 +1505,6 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
.homeLatestTabDisabled .homeLatestTab { .homeLatestTabDisabled .homeLatestTab {
display: none !important; display: none !important;
} }
.movieTrailersTabDisabled .movieTrailersTab {
display: none !important;
}

View file

@ -1,9 +1,9 @@
.libraryPage { .libraryPage {
padding-top: 49px !important; padding-top: 50px !important;
} }
.libraryPage:not(.metadataEditorPage):not(.noSecondaryNavPage) { .libraryPage:not(.metadataEditorPage):not(.noSecondaryNavPage) {
padding-top: 99px !important; padding-top: 98px !important;
} }
.libraryMenuDivider { .libraryMenuDivider {
@ -118,9 +118,7 @@
left: 0; left: 0;
z-index: 999; z-index: 999;
top: 0; top: 0;
border-top: 0; border: 0;
border-left: 0;
border-right: 0;
} }
.libraryViewNav { .libraryViewNav {
@ -133,6 +131,7 @@
z-index: 999; z-index: 999;
text-align: center; text-align: center;
font-size: 14px; font-size: 14px;
text-transform: uppercase;
white-space: nowrap; white-space: nowrap;
padding: 0 0 0; padding: 0 0 0;
overflow-x: scroll; overflow-x: scroll;
@ -141,6 +140,13 @@
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
} }
.bottomLibraryViewNav {
top: initial;
bottom: 0;
border-top: 1px solid #444;
height: 51px;
}
.viewMenuBar { .viewMenuBar {
background-color: #111; background-color: #111;
} }
@ -232,9 +238,13 @@
border-bottom: 5px solid transparent; border-bottom: 5px solid transparent;
} }
.libraryViewNav a:not(.ui-btn-active):hover { .bottomLibraryViewNav a {
padding: 12px 0 12px;
}
.libraryViewNav a:not(.ui-btn-active):hover {
color: #2ad !important; color: #2ad !important;
} }
.libraryViewNavLinkContent { .libraryViewNavLinkContent {
display: inline-block; display: inline-block;

View file

@ -176,7 +176,7 @@ h1 a:hover {
transform: translateY(0%); transform: translateY(0%);
} }
.headroom--unpinned { .headroom--unpinned:not(.headroomDisabled) {
-webkit-transform: translateY(-100%); -webkit-transform: translateY(-100%);
transform: translateY(-100%); transform: translateY(-100%);
} }
@ -613,9 +613,9 @@ h1 .imageLink {
/* Footer */ /* Footer */
#footer { #footer {
position: fixed; position: fixed;
bottom: -2px; bottom: 0;
left: -2px; left: 0;
right: -2px; right: 0;
/* Above everything, except for the video player and popup overlays */ /* Above everything, except for the video player and popup overlays */
z-index: 1097; z-index: 1097;
color: #fff; color: #fff;
@ -623,6 +623,10 @@ h1 .imageLink {
background-color: rgba(26,26,26,.9); background-color: rgba(26,26,26,.9);
} }
.footerOverBottomTabs {
bottom: 50px;
}
.footerNotification { .footerNotification {
padding: .75em 1em; padding: .75em 1em;
margin: 0; margin: 0;

View file

@ -10,7 +10,7 @@
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="moviesrecommended.html">${TabSuggestions}</a> <a href="moviesrecommended.html">${TabSuggestions}</a>
<a href="movies.html">${TabMovies}</a> <a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a> <a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
<a href="collections.html?context=movies">${TabCollections}</a> <a href="collections.html?context=movies">${TabCollections}</a>
<a href="moviegenres.html" class="ui-btn-active">${TabGenres}</a> <a href="moviegenres.html" class="ui-btn-active">${TabGenres}</a>
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a> <a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
@ -21,7 +21,7 @@
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="moviesrecommended.html">${TabSuggestions}</a> <a href="moviesrecommended.html">${TabSuggestions}</a>
<a href="movies.html">${TabMovies}</a> <a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a> <a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
<a href="collections.html?context=movies">${TabCollections}</a> <a href="collections.html?context=movies">${TabCollections}</a>
<a href="moviegenres.html">${TabGenres}</a> <a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html" class="ui-btn-active moviePeopleTab">${TabPeople}</a> <a href="moviepeople.html" class="ui-btn-active moviePeopleTab">${TabPeople}</a>
@ -32,7 +32,7 @@
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="moviesrecommended.html">${TabSuggestions}</a> <a href="moviesrecommended.html">${TabSuggestions}</a>
<a href="movies.html">${TabMovies}</a> <a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a> <a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
<a href="collections.html?context=movies">${TabCollections}</a> <a href="collections.html?context=movies">${TabCollections}</a>
<a href="moviegenres.html">${TabGenres}</a> <a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a> <a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>

View file

@ -33,7 +33,7 @@
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="moviesrecommended.html">${TabSuggestions}</a> <a href="moviesrecommended.html">${TabSuggestions}</a>
<a href="movies.html" class="lnkMovies">${TabMovies}</a> <a href="movies.html" class="lnkMovies">${TabMovies}</a>
<a href="movietrailers.html" class="lnkMovieTrailers">${TabTrailers}</a> <a href="movietrailers.html" class="lnkMovieTrailers movieTrailersTab">${TabTrailers}</a>
<a href="collections.html?context=movies" class="lnkCollections">${TabCollections}</a> <a href="collections.html?context=movies" class="lnkCollections">${TabCollections}</a>
<a href="moviegenres.html">${TabGenres}</a> <a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a> <a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>

View file

@ -9,7 +9,7 @@
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="moviesrecommended.html">${TabSuggestions}</a> <a href="moviesrecommended.html">${TabSuggestions}</a>
<a href="movies.html">${TabMovies}</a> <a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a> <a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
<a href="collections.html?context=movies">${TabCollections}</a> <a href="collections.html?context=movies">${TabCollections}</a>
<a href="#" class="ui-btn-active">${TabGenres}</a> <a href="#" class="ui-btn-active">${TabGenres}</a>
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a> <a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>

View file

@ -9,7 +9,7 @@
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="moviesrecommended.html">${TabSuggestions}</a> <a href="moviesrecommended.html">${TabSuggestions}</a>
<a href="movies.html">${TabMovies}</a> <a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a> <a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
<a href="collections.html?context=movies">${TabCollections}</a> <a href="collections.html?context=movies">${TabCollections}</a>
<a href="moviegenres.html">${TabGenres}</a> <a href="moviegenres.html">${TabGenres}</a>
<a href="#" class="ui-btn-active">${TabPeople}</a> <a href="#" class="ui-btn-active">${TabPeople}</a>

View file

@ -9,7 +9,7 @@
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="moviesrecommended.html">${TabSuggestions}</a> <a href="moviesrecommended.html">${TabSuggestions}</a>
<a href="#" class="ui-btn-active">${TabMovies}</a> <a href="#" class="ui-btn-active">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a> <a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
<a href="collections.html?context=movies">${TabCollections}</a> <a href="collections.html?context=movies">${TabCollections}</a>
<a href="moviegenres.html">${TabGenres}</a> <a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a> <a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>

View file

@ -9,7 +9,7 @@
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="#" class="ui-btn-active">${TabSuggestions}</a> <a href="#" class="ui-btn-active">${TabSuggestions}</a>
<a href="movies.html">${TabMovies}</a> <a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a> <a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
<a href="collections.html?context=movies">${TabCollections}</a> <a href="collections.html?context=movies">${TabCollections}</a>
<a href="moviegenres.html">${TabGenres}</a> <a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a> <a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>

View file

@ -9,7 +9,7 @@
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="moviesrecommended.html">${TabSuggestions}</a> <a href="moviesrecommended.html">${TabSuggestions}</a>
<a href="movies.html">${TabMovies}</a> <a href="movies.html">${TabMovies}</a>
<a href="movietrailers.html">${TabTrailers}</a> <a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
<a href="collections.html?context=movies">${TabCollections}</a> <a href="collections.html?context=movies">${TabCollections}</a>
<a href="moviegenres.html">${TabGenres}</a> <a href="moviegenres.html">${TabGenres}</a>
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a> <a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>

View file

@ -13,6 +13,7 @@
<a href="#" class="lnkWebClientPreferences">${TabAppSettings}</a> <a href="#" class="lnkWebClientPreferences">${TabAppSettings}</a>
</div> </div>
<div data-role="content">
<br /> <br />
<form class="displayPreferencesForm userProfileSettingsForm" style="margin: 0 auto;"> <form class="displayPreferencesForm userProfileSettingsForm" style="margin: 0 auto;">
@ -137,10 +138,10 @@
<ul data-role="listview" class="ulForm"> <ul data-role="listview" class="ulForm">
<li> <li>
<button type="submit" data-theme="a" data-icon="check" data-mini="true"> <button type="submit" data-theme="a" data-icon="check">
${ButtonOk} ${ButtonOk}
</button> </button>
<button type="button" onclick="history.back();" data-icon="delete" data-mini="true"> <button type="button" onclick="history.back();" data-icon="delete">
${ButtonCancel} ${ButtonCancel}
</button> </button>
</li> </li>
@ -150,5 +151,6 @@
$('.displayPreferencesForm').off('submit', DisplayPreferencesPage.onSubmit).on('submit', DisplayPreferencesPage.onSubmit); $('.displayPreferencesForm').off('submit', DisplayPreferencesPage.onSubmit).on('submit', DisplayPreferencesPage.onSubmit);
</script> </script>
</div> </div>
</div>
</body> </body>
</html> </html>

View file

@ -12,6 +12,7 @@
<a href="#" class="lnkMyProfile">${TabProfile}</a> <a href="#" class="lnkMyProfile">${TabProfile}</a>
<a href="#" class="lnkWebClientPreferences">${TabAppSettings}</a> <a href="#" class="lnkWebClientPreferences">${TabAppSettings}</a>
</div> </div>
<div data-role="content">
<br /> <br />
<form style="margin: 0 auto;" class="languagePreferencesForm userProfileSettingsForm"> <form style="margin: 0 auto;" class="languagePreferencesForm userProfileSettingsForm">
@ -72,10 +73,10 @@
<ul data-role="listview" class="ulForm"> <ul data-role="listview" class="ulForm">
<li> <li>
<button type="submit" data-theme="a" data-icon="check" data-mini="true"> <button type="submit" data-theme="a" data-icon="check">
${ButtonOk} ${ButtonOk}
</button> </button>
<button type="button" onclick="history.back();" data-icon="delete" data-mini="true"> <button type="button" onclick="history.back();" data-icon="delete">
${ButtonCancel} ${ButtonCancel}
</button> </button>
</li> </li>
@ -85,5 +86,6 @@
$('.languagePreferencesForm').off('submit', LanguagePreferencesPage.onSubmit).on('submit', LanguagePreferencesPage.onSubmit); $('.languagePreferencesForm').off('submit', LanguagePreferencesPage.onSubmit).on('submit', LanguagePreferencesPage.onSubmit);
</script> </script>
</div> </div>
</div>
</body> </body>
</html> </html>

View file

@ -13,10 +13,11 @@
<a href="#" class="ui-btn-active lnkWebClientPreferences">${TabAppSettings}</a> <a href="#" class="ui-btn-active lnkWebClientPreferences">${TabAppSettings}</a>
</div> </div>
<div data-role="content">
<br /> <br />
<form class="webClientPreferencesForm userProfileSettingsForm" style="margin: 0 auto;"> <form class="webClientPreferencesForm userProfileSettingsForm" style="margin: 0 auto;">
<div class="detailSection"> <div class="detailSection homePageConfigurationSection" style="display:none;">
<div class="detailSectionHeader"> <div class="detailSectionHeader">
${HeaderHomePage} ${HeaderHomePage}
</div> </div>
@ -186,15 +187,16 @@
<ul data-role="listview" class="ulForm"> <ul data-role="listview" class="ulForm">
<li> <li>
<button type="submit" data-theme="a" data-icon="check" data-mini="true"> <button type="submit" data-theme="a" data-icon="check">
${ButtonOk} ${ButtonOk}
</button> </button>
<button type="button" onclick="history.back();" data-icon="delete" data-mini="true"> <button type="button" onclick="history.back();" data-icon="delete">
${ButtonCancel} ${ButtonCancel}
</button> </button>
</li> </li>
</ul> </ul>
</form> </form>
</div>
<script type="text/javascript"> <script type="text/javascript">
$('.webClientPreferencesForm').off('submit', WebClientPreferencesPage.onSubmit).on('submit', WebClientPreferencesPage.onSubmit); $('.webClientPreferencesForm').off('submit', WebClientPreferencesPage.onSubmit).on('submit', WebClientPreferencesPage.onSubmit);
</script> </script>

View file

@ -13,6 +13,7 @@
<a href="#" class="lnkWebClientPreferences">${TabAppSettings}</a> <a href="#" class="lnkWebClientPreferences">${TabAppSettings}</a>
</div> </div>
<div data-role="content">
<br /> <br />
<div class="readOnlyContent" style="margin: 0 auto; padding: 0 1em;"> <div class="readOnlyContent" style="margin: 0 auto; padding: 0 1em;">
<div id="fldImage" style="display:inline-block;"></div> <div id="fldImage" style="display:inline-block;"></div>
@ -122,7 +123,7 @@
</div> </div>
</div> </div>
</form> </form>
</div>
<script type="text/javascript"> <script type="text/javascript">
$('.newImageForm').off('submit', MyProfilePage.onImageSubmit).on('submit', MyProfilePage.onImageSubmit); $('.newImageForm').off('submit', MyProfilePage.onImageSubmit).on('submit', MyProfilePage.onImageSubmit);
$('.updatePasswordForm').off('submit', UpdatePasswordPage.onSubmit).on('submit', UpdatePasswordPage.onSubmit); $('.updatePasswordForm').off('submit', UpdatePasswordPage.onSubmit).on('submit', UpdatePasswordPage.onSubmit);

View file

@ -123,9 +123,13 @@
function loadRecentlyAdded(elem, user, context) { function loadRecentlyAdded(elem, user, context) {
var limit = AppInfo.hasLowImageBandwidth ?
16 :
24;
var options = { var options = {
Limit: 24, Limit: limit,
Fields: "PrimaryImageAspectRatio,SyncInfo", Fields: "PrimaryImageAspectRatio,SyncInfo",
ImageTypeLimit: 1, ImageTypeLimit: 1,
EnableImageTypes: "Primary,Backdrop,Banner,Thumb" EnableImageTypes: "Primary,Backdrop,Banner,Thumb"

View file

@ -71,6 +71,8 @@
html += '</div>'; html += '</div>';
html = normalizeLinksHtml(html);
$(document.body).prepend(html); $(document.body).prepend(html);
$('.viewMenuBar').trigger('create'); $('.viewMenuBar').trigger('create');
@ -78,6 +80,18 @@
bindMenuEvents(); bindMenuEvents();
} }
function replaceAll(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
function normalizeLinksHtml(html) {
if (AppInfo.resetOnLibraryChange) {
html = replaceAll(html, '<a ', '<a data-ajax="false"');
}
return html;
}
function bindMenuEvents() { function bindMenuEvents() {
if (AppInfo.isTouchPreferred) { if (AppInfo.isTouchPreferred) {
@ -99,6 +113,15 @@
initHeadRoom(viewMenuBar); initHeadRoom(viewMenuBar);
} }
function updateViewMenuBarHeadroom(page, viewMenuBar) {
if ($(page).hasClass('libraryPage')) {
viewMenuBar.removeClass('headroomDisabled');
} else {
viewMenuBar.addClass('headroomDisabled');
}
}
function getItemHref(item, context) { function getItemHref(item, context) {
return LibraryBrowser.getHref(item, context); return LibraryBrowser.getHref(item, context);
@ -114,7 +137,7 @@
html += '<div class="libraryMenuDivider"></div>'; html += '<div class="libraryMenuDivider"></div>';
html += '<div class="adminMenuOptions">'; html += '<div class="adminMenuOptions">';
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="dashboard" href="dashboard.html"><span class="fa fa-cog sidebarLinkIcon"></span>' + Globalize.translate('ButtonDashboard') + '</a>'; html += '<a class="sidebarLink lnkMediaFolder" data-itemid="dashboard" data-rel="none" href="dashboard.html"><span class="fa fa-cog sidebarLinkIcon"></span>' + Globalize.translate('ButtonDashboard') + '</a>';
html += '<a class="sidebarLink lnkMediaFolder editorViewMenu" data-itemid="editor" href="edititemmetadata.html"><span class="fa fa-edit sidebarLinkIcon"></span>' + Globalize.translate('ButtonMetadataManager') + '</a>'; html += '<a class="sidebarLink lnkMediaFolder editorViewMenu" data-itemid="editor" href="edititemmetadata.html"><span class="fa fa-edit sidebarLinkIcon"></span>' + Globalize.translate('ButtonMetadataManager') + '</a>';
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="reports" href="reports.html"><span class="fa fa-bar-chart sidebarLinkIcon"></span>' + Globalize.translate('ButtonReports') + '</a>'; html += '<a class="sidebarLink lnkMediaFolder" data-itemid="reports" href="reports.html"><span class="fa fa-bar-chart sidebarLinkIcon"></span>' + Globalize.translate('ButtonReports') + '</a>';
html += '</div>'; html += '</div>';
@ -218,6 +241,8 @@
}).join(''); }).join('');
html = normalizeLinksHtml(html);
var elem = $('.libraryMenuOptions').html(html); var elem = $('.libraryMenuOptions').html(html);
$('.sidebarLink', elem).on('click', function () { $('.sidebarLink', elem).on('click', function () {
@ -308,6 +333,7 @@
} }
html += getViewsHtml(); html += getViewsHtml();
html = normalizeLinksHtml(html);
html += '</div>'; html += '</div>';
html += '</div>'; html += '</div>';
@ -492,11 +518,13 @@
}).on('pagebeforeshow', ".page:not(.standalonePage)", function () { }).on('pagebeforeshow', ".page:not(.standalonePage)", function () {
var page = this; var page = this;
var viewMenuBar = $('.viewMenuBar');
if (!$('.viewMenuBar').length) { if (!$('.viewMenuBar').length) {
ConnectionManager.user().done(function (user) { ConnectionManager.user().done(function (user) {
renderHeader(user); renderHeader(user);
updateViewMenuBarHeadroom(page, $('.viewMenuBar'));
updateCastIcon(); updateCastIcon();
@ -506,6 +534,7 @@
} else { } else {
updateContextText(page); updateContextText(page);
updateLibraryNavLinks(page); updateLibraryNavLinks(page);
updateViewMenuBarHeadroom(page, viewMenuBar);
} }
var jpage = $(page); var jpage = $(page);
@ -519,14 +548,20 @@
$(document.body).removeClass('dashboardDocument').removeClass('libraryDocument'); $(document.body).removeClass('dashboardDocument').removeClass('libraryDocument');
} }
}).on('pagebeforeshow', ".page", function () { }).on('pagebeforeshow', ".libraryPage", function () {
var page = this; var page = this;
if ($(page).hasClass('standalonePage')) { if (AppInfo.enableBottomTabs) {
$('.viewMenuBar').hide(); $('.libraryViewNav', page).addClass('bottomLibraryViewNav');
$(page).addClass('noSecondaryNavPage');
} else { } else {
$('.viewMenuBar').show();
$('.libraryViewNav', page).each(function () {
initHeadRoom(this);
});
} }
}).on('pageshow', ".libraryPage", function () { }).on('pageshow', ".libraryPage", function () {
@ -541,12 +576,6 @@
// Scroll back up so in case vertical scroll was messed with // Scroll back up so in case vertical scroll was messed with
$(document).scrollTop(0); $(document).scrollTop(0);
} }
$('.libraryViewNav', page).each(function () {
initHeadRoom(this);
});
}); });
function initHeadRoom(elem) { function initHeadRoom(elem) {

View file

@ -100,6 +100,12 @@
}); });
$('.fldEnableBackdrops', page).show(); $('.fldEnableBackdrops', page).show();
if (Dashboard.isRunningInCordova()) {
$('.homePageConfigurationSection', page).hide();
} else {
$('.homePageConfigurationSection', page).show();
}
}); });
window.WebClientPreferencesPage = { window.WebClientPreferencesPage = {

View file

@ -108,9 +108,7 @@ var Dashboard = {
if (!Dashboard.getUserPromise) { if (!Dashboard.getUserPromise) {
var userId = Dashboard.getCurrentUserId(); Dashboard.getUserPromise = ConnectionManager.currentApiClient().getCurrentUser().fail(Dashboard.logout);
Dashboard.getUserPromise = ConnectionManager.currentApiClient().getUser(userId).fail(Dashboard.logout);
} }
return Dashboard.getUserPromise; return Dashboard.getUserPromise;
@ -368,7 +366,7 @@ var Dashboard = {
showFooterNotification: function (options) { showFooterNotification: function (options) {
if (Dashboard.isRunningInCordova()) { if (!AppInfo.enableFooterNotifications) {
return; return;
} }
@ -376,7 +374,7 @@ var Dashboard = {
options.id = options.id || "notification" + new Date().getTime() + parseInt(Math.random()); options.id = options.id || "notification" + new Date().getTime() + parseInt(Math.random());
var footer = $("#footer").css("top", "initial").show(); var footer = $(".footer").css("top", "initial").show();
var parentElem = $('#footerNotifications', footer); var parentElem = $('#footerNotifications', footer);
@ -572,10 +570,14 @@ var Dashboard = {
refreshSystemInfoFromServer: function () { refreshSystemInfoFromServer: function () {
if (Dashboard.getAccessToken()) { if (Dashboard.getAccessToken()) {
if (AppInfo.enableFooterNotifications) {
ApiClient.getSystemInfo().done(function (info) { ApiClient.getSystemInfo().done(function (info) {
Dashboard.updateSystemInfo(info); Dashboard.updateSystemInfo(info);
}); });
} else {
Dashboard.ensureWebSocket();
}
} }
}, },
@ -702,7 +704,6 @@ var Dashboard = {
resetPluginSecurityInfo: function () { resetPluginSecurityInfo: function () {
Dashboard.getPluginSecurityInfoPromise = null; Dashboard.getPluginSecurityInfoPromise = null;
Dashboard.validateCurrentUser();
}, },
ensureHeader: function (page) { ensureHeader: function (page) {
@ -922,7 +923,10 @@ var Dashboard = {
} }
ApiClient.openWebSocket(); ApiClient.openWebSocket();
if (!Dashboard.isConnectMode()) {
ApiClient.reportCapabilities(Dashboard.capabilities()); ApiClient.reportCapabilities(Dashboard.capabilities());
}
}, },
processGeneralCommand: function (cmd) { processGeneralCommand: function (cmd) {
@ -1480,6 +1484,11 @@ var AppInfo = {};
if ($.browser.mobile) { if ($.browser.mobile) {
AppInfo.hasLowImageBandwidth = true; AppInfo.hasLowImageBandwidth = true;
} }
if (Dashboard.isRunningInCordova()) {
AppInfo.enableBottomTabs = true;
AppInfo.resetOnLibraryChange = true;
}
} }
else { else {
@ -1496,6 +1505,11 @@ var AppInfo = {};
AppInfo.enableMusicSongsTab = true; AppInfo.enableMusicSongsTab = true;
AppInfo.enableMusicArtistsTab = true; AppInfo.enableMusicArtistsTab = true;
AppInfo.enableHomeLatestTab = true; AppInfo.enableHomeLatestTab = true;
AppInfo.enableMovieTrailersTab = true;
}
if (!Dashboard.isRunningInCordova()) {
AppInfo.enableFooterNotifications = true;
} }
} }
@ -1557,9 +1571,11 @@ var AppInfo = {};
if (window.ApiClient) { if (window.ApiClient) {
ApiClient.getDefaultImageQuality = Dashboard.getDefaultImageQuality; ApiClient.getDefaultImageQuality = Dashboard.getDefaultImageQuality;
if (!Dashboard.isRunningInCordova()) {
Dashboard.importCss(ApiClient.getUrl('Branding/Css')); Dashboard.importCss(ApiClient.getUrl('Branding/Css'));
} }
} }
}
function onReady() { function onReady() {
@ -1597,6 +1613,10 @@ var AppInfo = {};
$(document.body).addClass('homeLatestTabDisabled'); $(document.body).addClass('homeLatestTabDisabled');
} }
if (!AppInfo.enableMovieTrailersTab) {
$(document.body).addClass('movieTrailersTabDisabled');
}
if (Dashboard.isRunningInCordova()) { if (Dashboard.isRunningInCordova()) {
$(document).addClass('nativeApp'); $(document).addClass('nativeApp');
} }
@ -1674,14 +1694,14 @@ var AppInfo = {};
var mediaPlayerElem = $('#mediaPlayer', document.body); var mediaPlayerElem = $('#mediaPlayer', document.body);
mediaPlayerElem.trigger('create'); mediaPlayerElem.trigger('create');
var footerHtml = '<div id="footer" data-theme="b" class="ui-bar-b">'; var footerHtml = '<div id="footer" class="footer" data-theme="b" class="ui-bar-b">';
footerHtml += '<div id="footerNotifications"></div>'; footerHtml += '<div id="footerNotifications"></div>';
footerHtml += '</div>'; footerHtml += '</div>';
$(document.body).append(footerHtml); $(document.body).append(footerHtml);
var footerElem = $('#footer', document.body); var footerElem = $('.footer', document.body);
footerElem.trigger('create'); footerElem.trigger('create');
$(window).on("beforeunload", function () { $(window).on("beforeunload", function () {

View file

@ -27,7 +27,7 @@
function loadNextUp(page, context) { function loadNextUp(page, context) {
var limit = AppInfo.hasLowImageBandwidth ? var limit = AppInfo.hasLowImageBandwidth ?
18 : 16 :
24; 24;
var query = { var query = {
@ -69,13 +69,17 @@
var parentId = LibraryMenu.getTopParentId(); var parentId = LibraryMenu.getTopParentId();
var limit = AppInfo.hasLowImageBandwidth ?
4 :
6;
var options = { var options = {
SortBy: "DatePlayed", SortBy: "DatePlayed",
SortOrder: "Descending", SortOrder: "Descending",
IncludeItemTypes: "Episode", IncludeItemTypes: "Episode",
Filters: "IsResumable", Filters: "IsResumable",
Limit: 6, Limit: limit,
Recursive: true, Recursive: true,
Fields: "PrimaryImageAspectRatio,SeriesInfo,UserData,SyncInfo", Fields: "PrimaryImageAspectRatio,SeriesInfo,UserData,SyncInfo",
ExcludeLocationTypes: "Virtual", ExcludeLocationTypes: "Virtual",

View file

@ -54,23 +54,24 @@
return serverInfo; return serverInfo;
}; };
var currentUser; var currentUserPromise;
/** /**
* Gets or sets the current user id. * Gets or sets the current user id.
*/ */
self.getCurrentUser = function () { self.getCurrentUser = function () {
if (currentUser != null) { var promise = currentUserPromise;
var deferred = DeferredBuilder.Deferred(); if (promise == null) {
deferred.resolveWith(null, [currentUser]);
return deferred.promise(); promise = self.getUser(self.getCurrentUserId()).fail(function () {
currentUserPromise = null;
});
currentUserPromise = promise;
} }
return self.getUser(self.getCurrentUserId()).done(function (user) { return promise;
currentUser = user;
});
}; };
/** /**
@ -88,7 +89,7 @@
self.setCurrentUserId = function (userId, token) { self.setCurrentUserId = function (userId, token) {
currentUserId = userId; currentUserId = userId;
currentUser = null; currentUserPromise = null;
accessToken = token; accessToken = token;
}; };
@ -376,7 +377,7 @@
webSocket.onmessage = function (msg) { webSocket.onmessage = function (msg) {
msg = JSON.parse(msg.data); msg = JSON.parse(msg.data);
Events.trigger(self, 'websocketmessage', [msg]); onWebSocketMessage(msg);
}; };
webSocket.onopen = function () { webSocket.onopen = function () {
@ -404,6 +405,23 @@
} }
}; };
function onWebSocketMessage(msg) {
if (msg.MessageType === "UserDeleted") {
currentUserPromise = null;
}
else if (msg.MessageType === "UserUpdated" || msg.MessageType === "UserConfigurationUpdated") {
var user = msg.Data;
if (user.Id == self.getCurrentUserId()) {
currentUserPromise = null;
}
}
Events.trigger(self, 'websocketmessage', [msg]);
}
self.sendWebSocketMessage = function (name, data) { self.sendWebSocketMessage = function (name, data) {
logger.log('Sending web socket message: ' + name); logger.log('Sending web socket message: ' + name);