update bravia profiles

This commit is contained in:
Luke Pulverenti 2015-06-17 21:41:22 -04:00
parent 973b43989d
commit 13e18ba442
48 changed files with 429 additions and 271 deletions

View File

@ -7,8 +7,8 @@
<div id="channelItemsPage" data-role="page" class="page libraryPage channelsPage" data-contextname="${HeaderChannels}" data-require="scripts/channelitems"> <div id="channelItemsPage" data-role="page" class="page libraryPage channelsPage" data-contextname="${HeaderChannels}" data-require="scripts/channelitems">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="channelslatest.html" class="latestChannelItemsTab">${TabLatest}</a> <a href="channelslatest.html" class="latestChannelItemsTab"><i class="material-icons">new_releases</i>${TabLatest}</a>
<a href="channels.html" class="ui-btn-active">${TabChannels}</a> <a href="channels.html" class="ui-btn-active"><i class="material-icons">live_tv</i>${TabChannels}</a>
</div> </div>
<div class="channelHeader"></div> <div class="channelHeader"></div>

View File

@ -7,8 +7,8 @@
<div id="channelsPage" data-role="page" class="page libraryPage channelsPage" data-contextname="${HeaderChannels}" data-require="scripts/channels"> <div id="channelsPage" data-role="page" class="page libraryPage channelsPage" data-contextname="${HeaderChannels}" data-require="scripts/channels">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="channelslatest.html" class="latestChannelItemsTab">${TabLatest}</a> <a href="channelslatest.html" class="latestChannelItemsTab"><i class="material-icons">new_releases</i>${TabLatest}</a>
<a href="#" class="ui-btn-active">${TabChannels}</a> <a href="#" class="ui-btn-active"><i class="material-icons">live_tv</i>${TabChannels}</a>
</div> </div>
<div data-role="content"> <div data-role="content">

View File

@ -9,8 +9,8 @@
<link rel="import" href="thirdparty/paper-button/paper-button.html"> <link rel="import" href="thirdparty/paper-button/paper-button.html">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="#" class="ui-btn-active latestChannelItemsTab">${TabLatest}</a> <a href="#" class="ui-btn-active latestChannelItemsTab"><i class="material-icons">new_releases</i>${TabLatest}</a>
<a href="channels.html">${TabChannels}</a> <a href="channels.html"><i class="material-icons">live_tv</i>${TabChannels}</a>
</div> </div>
<div data-role="content"> <div data-role="content">

View File

@ -80,9 +80,9 @@
margin-top: 20px; margin-top: 20px;
} }
.homePageSection + .homePageSection { .homePageSection + .homePageSection {
margin-top: 30px; margin-top: 30px;
} }
.sectionHeaderButton { .sectionHeaderButton {
vertical-align: middle; vertical-align: middle;
@ -1150,16 +1150,20 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
line-height: 1; line-height: 1;
} }
.alphabetPicker a { .bottomSecondaryNav .alphabetPicker{
display: block; bottom: 55px;
text-decoration: none; }
padding: 1px 0;
font-weight: 500;
}
.alphabetPicker a:not(.selectedCharacter) { .alphabetPicker a {
color: #bbb !important; display: block;
} text-decoration: none;
padding: 1px 0;
font-weight: 500;
}
.alphabetPicker a:not(.selectedCharacter) {
color: #bbb !important;
}
.selectedCharacter { .selectedCharacter {
@ -1199,7 +1203,7 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
margin-right: auto; margin-right: auto;
} }
@media all and (min-height: 500px) { @media all and (min-height: 520px) {
.alphabetPicker { .alphabetPicker {
display: block; display: block;
@ -1217,7 +1221,35 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
} }
} }
@media all and (min-height: 800px) { @media all and (min-height: 600px) {
.alphabetPicker a {
padding: 2px 0;
}
}
@media all and (min-height: 650px) {
.alphabetPicker a {
padding: 3px 0;
}
}
@media all and (min-height: 700px) {
.alphabetPicker a {
padding: 4px 0;
}
}
@media all and (min-height: 750px) {
.alphabetPicker a {
padding: 5px 0;
}
}
@media all and (min-height: 750px) {
.alphabetPicker a { .alphabetPicker a {
padding: 5px 0; padding: 5px 0;
@ -1546,10 +1578,6 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
} }
} }
.latestChannelItemsDisabled .latestChannelItemsTab {
display: none !important;
}
.studioTabDisabled .tvStudiosTab, .studioTabDisabled .movieStudiosTab { .studioTabDisabled .tvStudiosTab, .studioTabDisabled .movieStudiosTab {
display: none !important; display: none !important;
} }
@ -1562,14 +1590,6 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
display: none !important; display: none !important;
} }
.musicSongsTabDisabled .musicSongsTab {
display: none !important;
}
.musicArtistsTabDisabled .musicArtistsTab {
display: none !important;
}
.movieTrailersTabDisabled .movieTrailersTab { .movieTrailersTabDisabled .movieTrailersTab {
display: none !important; display: none !important;
} }

View File

@ -142,6 +142,10 @@
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
} }
.libraryViewNav .material-icons {
display: none;
}
.bottomSecondaryNav .libraryViewNav { .bottomSecondaryNav .libraryViewNav {
top: initial; top: initial;
bottom: 0; bottom: 0;
@ -231,7 +235,7 @@
.libraryViewNav a { .libraryViewNav a {
display: inline-block; display: inline-block;
padding: 12px 0 9px; padding: 14px 13px 11px;
color: rgba(255,255,255,.8) !important; color: rgba(255,255,255,.8) !important;
text-decoration: none; text-decoration: none;
margin: 0 0; margin: 0 0;
@ -240,19 +244,10 @@
border-bottom: 5px solid transparent; border-bottom: 5px solid transparent;
} }
.bottomSecondaryNav .libraryViewNav a {
padding: 12px 0 12px;
}
.libraryViewNav a:not(.ui-btn-active):hover { .libraryViewNav a:not(.ui-btn-active):hover {
color: #2ad !important; color: #2ad !important;
} }
.libraryViewNavLinkContent {
display: inline-block;
padding: 2px 13px 2px 13px;
}
@media all and (max-width: 500px) { @media all and (max-width: 500px) {
.libraryMenuButtonText { .libraryMenuButtonText {

View File

@ -47,7 +47,7 @@
} }
.videoTopControls { .videoTopControls {
padding: 1em; padding: 0 1em;
background-color: rgba(0, 0, 0, .5); background-color: rgba(0, 0, 0, .5);
position: absolute; position: absolute;
left: 0; left: 0;
@ -157,6 +157,8 @@
.videoTopControlsLogo { .videoTopControlsLogo {
float: left; float: left;
/* Matches .mediaButton */
padding-top: 16px;
} }
.videoTopControlsLogo img { .videoTopControlsLogo img {

View File

@ -1,6 +1,6 @@
/* Now playing bar */ /* Now playing bar */
.nowPlayingBar { .nowPlayingBar {
padding: 16px 0 16px 0; padding: 0;
border-top: 1px solid #444; border-top: 1px solid #444;
text-align: center; text-align: center;
} }
@ -13,7 +13,8 @@
vertical-align: middle; vertical-align: middle;
font-size: 30px; font-size: 30px;
color: #e8e8e8; color: #e8e8e8;
margin: 0 10px; margin: 0;
padding: 16px 12px;
min-width: 30px; min-width: 30px;
text-align: center; text-align: center;
} }
@ -22,6 +23,10 @@
font-size: 26px; font-size: 26px;
} }
.videoControls .mediaButton {
padding: 0 10px;
}
#mediaElement { #mediaElement {
display: inline-block; display: inline-block;
position: relative; position: relative;

View File

@ -467,7 +467,7 @@ h1 a:hover {
transform: translateY(-100%); transform: translateY(-100%);
} }
.libraryViewNav.headroom--unpinned { .libraryViewNav.headroom--unpinned:not(.headroomDisabled) {
-webkit-transform: translateY(-200%); -webkit-transform: translateY(-200%);
transform: translateY(-200%); transform: translateY(-200%);
} }
@ -501,6 +501,9 @@ h1 a:hover {
} }
} }
textarea {
width: 100%;
}
pre, textarea.pre { pre, textarea.pre {
display: block; display: block;
@ -534,6 +537,10 @@ pre, textarea.pre {
display: none; display: none;
} }
.forceHide {
display: none !important;
}
/* /*
Header Header
*/ */

View File

@ -4,14 +4,15 @@
<title>Emby</title> <title>Emby</title>
</head> </head>
<body> <body>
<div id="favoritesPage" data-role="page" class="page type-home libraryPage allLibraryPage backdropPage" data-backdroptype="movie,series,game,book" data-require="scripts/favorites"> <div id="favoritesPage" data-role="page" class="page type-home libraryPage allLibraryPage backdropPage" data-backdroptype="movie,series,game,book" data-require="scripts/favorites,paperbuttonstyle">
<link rel="import" href="thirdparty/paper-button/paper-button.html">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="index.html">${TabHome}</a> <a href="index.html"><i class="material-icons">home</i>${TabHome}</a>
<a href="homelatest.html">${TabLatest}</a> <a href="homelatest.html"><i class="material-icons">new_releases</i>${TabLatest}</a>
<a href="tvrecommended.html">${TabNextUp}</a> <a href="tvrecommended.html"><i class="material-icons">navigate_next</i>${TabNextUp}</a>
<a href="favorites.html" class="ui-btn-active">${TabFavorites}</a> <a href="favorites.html" class="ui-btn-active"><i class="material-icons">favorite</i>${TabFavorites}</a>
<a href="tvupcoming.html">${TabUpcoming}</a> <a href="tvupcoming.html"><i class="material-icons">schedule</i>${TabUpcoming}</a>
</div> </div>
<div data-role="content"> <div data-role="content">

View File

@ -9,11 +9,11 @@
<link rel="import" href="thirdparty/paper-button/paper-button.html"> <link rel="import" href="thirdparty/paper-button/paper-button.html">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="index.html">${TabHome}</a> <a href="index.html"><i class="material-icons">home</i>${TabHome}</a>
<a href="#" class="ui-btn-active">${TabLatest}</a> <a href="#" class="ui-btn-active"><i class="material-icons">new_releases</i>${TabLatest}</a>
<a href="tvrecommended.html">${TabNextUp}</a> <a href="tvrecommended.html"><i class="material-icons">navigate_next</i>${TabNextUp}</a>
<a href="favorites.html">${TabFavorites}</a> <a href="favorites.html"><i class="material-icons">favorite</i>${TabFavorites}</a>
<a href="tvupcoming.html">${TabUpcoming}</a> <a href="tvupcoming.html"><i class="material-icons">schedule</i>${TabUpcoming}</a>
</div> </div>
<div data-role="content"> <div data-role="content">

View File

@ -9,11 +9,11 @@
<link rel="import" href="thirdparty/paper-button/paper-button.html"> <link rel="import" href="thirdparty/paper-button/paper-button.html">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="#" class="ui-btn-active">${TabHome}</a> <a href="#" class="ui-btn-active"><i class="material-icons">home</i>${TabHome}</a>
<a href="homelatest.html">${TabLatest}</a> <a href="homelatest.html"><i class="material-icons">new_releases</i>${TabLatest}</a>
<a href="tvrecommended.html">${TabNextUp}</a> <a href="tvrecommended.html"><i class="material-icons">navigate_next</i>${TabNextUp}</a>
<a href="favorites.html">${TabFavorites}</a> <a href="favorites.html"><i class="material-icons">favorite</i>${TabFavorites}</a>
<a href="tvupcoming.html">${TabUpcoming}</a> <a href="tvupcoming.html"><i class="material-icons">schedule</i>${TabUpcoming}</a>
</div> </div>
<div data-role="content"> <div data-role="content">

View File

@ -10,11 +10,11 @@
<div class="itemTabs homeTabs" style="display: none;"> <div class="itemTabs homeTabs" style="display: none;">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="index.html" class="lnkHomeHome">${TabHome}</a> <a href="index.html" class="lnkHomeHome"><i class="material-icons">home</i>${TabHome}</a>
<a href="homelatest.html" class="lnkHomeLatest">${TabLatest}</a> <a href="homelatest.html" class="lnkHomeLatest"><i class="material-icons">new_releases</i>${TabLatest}</a>
<a href="tvrecommended.html" class="lnkHomeNextUp">${TabNextUp}</a> <a href="tvrecommended.html" class="lnkHomeNextUp"><i class="material-icons">navigate_next</i>${TabNextUp}</a>
<a href="favorites.html" class="lnkHomeFavorites">${TabFavorites}</a> <a href="favorites.html" class="lnkHomeFavorites"><i class="material-icons">favorite</i>${TabFavorites}</a>
<a href="tvupcoming.html" class="lnkHomeUpcoming">${TabUpcoming}</a> <a href="tvupcoming.html" class="lnkHomeUpcoming"><i class="material-icons">schedule</i>${TabUpcoming}</a>
</div> </div>
</div> </div>
@ -44,9 +44,9 @@
</div> </div>
<div class="itemTabs photoTabs" style="display: none;"> <div class="itemTabs photoTabs" style="display: none;">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="photos.html" class="ui-btn-active lnkPhotoAlbums">${TabAlbums}</a> <a href="photos.html" class="ui-btn-active lnkPhotoAlbums"><i class="material-icons">photo_album</i>${TabAlbums}</a>
<a href="photos.html?context=photos-photos" class="lnkPhotos">${TabPhotos}</a> <a href="photos.html?context=photos-photos" class="lnkPhotos"><i class="material-icons">photo</i>${TabPhotos}</a>
<a href="photos.html?context=photos-videos" class="lnkVideos">${TabVideos}</a> <a href="photos.html?context=photos-videos" class="lnkVideos"><i class="material-icons">videocam</i>${TabVideos}</a>
</div> </div>
</div> </div>
<div id="tvShowsTabs" class="itemTabs" style="display: none;"> <div id="tvShowsTabs" class="itemTabs" style="display: none;">
@ -114,8 +114,8 @@
</div> </div>
<div class="itemTabs channelTabs" style="display: none;"> <div class="itemTabs channelTabs" style="display: none;">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="channelslatest.html" class="latestChannelItemsTab">${TabLatest}</a> <a href="channelslatest.html" class="latestChannelItemsTab"><i class="material-icons">new_releases</i>${TabLatest}</a>
<a href="channels.html" class="ui-btn-active">${TabChannels}</a> <a href="channels.html" class="ui-btn-active"><i class="material-icons">live_tv</i>${TabChannels}</a>
</div> </div>
</div> </div>

View File

@ -6,12 +6,12 @@
<body> <body>
<div id="liveTvChannelPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvcomponents,scripts/livetvchannel"> <div id="liveTvChannelPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvcomponents,scripts/livetvchannel">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggestions}</a> <a href="livetvsuggested.html"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html">${TabGuide}</a> <a href="livetvguide.html"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html" class="ui-btn-active">${TabChannels}</a> <a href="livetvchannels.html" class="ui-btn-active"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a> <a href="livetvrecordings.html"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a> <a href="livetvtimers.html"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a> <a href="livetvseriestimers.html"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<table class="detailPageContent primaryDetailPageContent"> <table class="detailPageContent primaryDetailPageContent">
<tr> <tr>

View File

@ -6,12 +6,12 @@
<body> <body>
<div id="liveTvChannelsPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvchannels"> <div id="liveTvChannelsPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvchannels">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggestions}</a> <a href="livetvsuggested.html"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html">${TabGuide}</a> <a href="livetvguide.html"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html" class="ui-btn-active">${TabChannels}</a> <a href="livetvchannels.html" class="ui-btn-active"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a> <a href="livetvrecordings.html"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a> <a href="livetvtimers.html"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a> <a href="livetvseriestimers.html"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<div data-role="content"> <div data-role="content">
<div class="viewSettings"> <div class="viewSettings">

View File

@ -6,12 +6,12 @@
<body> <body>
<div id="liveTvGuidePage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/registrationservices,scripts/livetvcomponents,scripts/livetvguide"> <div id="liveTvGuidePage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/registrationservices,scripts/livetvcomponents,scripts/livetvguide">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggestions}</a> <a href="livetvsuggested.html"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html" class="ui-btn-active">${TabGuide}</a> <a href="livetvguide.html" class="ui-btn-active"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a> <a href="livetvchannels.html"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a> <a href="livetvrecordings.html"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a> <a href="livetvtimers.html"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a> <a href="livetvseriestimers.html"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<div data-role="content" style="padding-top: 5px;padding-left:0!important;padding-right:0!important;"> <div data-role="content" style="padding-top: 5px;padding-left:0!important;padding-right:0!important;">

View File

@ -6,12 +6,12 @@
<body> <body>
<div id="liveTvItemsPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvitems,scripts/queryfilters"> <div id="liveTvItemsPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvitems,scripts/queryfilters">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="livetvsuggested.html" class="ui-btn-active">${TabSuggestions}</a> <a href="livetvsuggested.html" class="ui-btn-active"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html">${TabGuide}</a> <a href="livetvguide.html"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a> <a href="livetvchannels.html"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a> <a href="livetvrecordings.html"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a> <a href="livetvtimers.html"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a> <a href="livetvseriestimers.html"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<div data-role="content"> <div data-role="content">
<div class="viewSettings"> <div class="viewSettings">

View File

@ -6,12 +6,12 @@
<body> <body>
<div id="liveTvNewRecordingPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvcomponents,scripts/livetvnewrecording"> <div id="liveTvNewRecordingPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvcomponents,scripts/livetvnewrecording">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggestions}</a> <a href="livetvsuggested.html"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html">${TabGuide}</a> <a href="livetvguide.html"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a> <a href="livetvchannels.html"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html" class="ui-btn-active">${TabRecordings}</a> <a href="livetvrecordings.html" class="ui-btn-active"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a> <a href="livetvtimers.html"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a> <a href="livetvseriestimers.html"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<div data-role="content"> <div data-role="content">
<form class="liveTvNewRecordingForm" style="margin: 0 auto;"> <form class="liveTvNewRecordingForm" style="margin: 0 auto;">

View File

@ -6,12 +6,12 @@
<body> <body>
<div id="liveTvProgramPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvcomponents,scripts/livetvprogram"> <div id="liveTvProgramPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvcomponents,scripts/livetvprogram">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggestions}</a> <a href="livetvsuggested.html"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html">${TabGuide}</a> <a href="livetvguide.html"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html" class="ui-btn-active">${TabChannels}</a> <a href="livetvchannels.html" class="ui-btn-active"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a> <a href="livetvrecordings.html"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a> <a href="livetvtimers.html"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a> <a href="livetvseriestimers.html"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<div style="padding: 1em 0;"> <div style="padding: 1em 0;">
<div> <div>

View File

@ -6,12 +6,12 @@
<body> <body>
<div id="liveTvRecordingPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvcomponents,scripts/livetvrecording"> <div id="liveTvRecordingPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvcomponents,scripts/livetvrecording">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggestions}</a> <a href="livetvsuggested.html"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html">${TabGuide}</a> <a href="livetvguide.html"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a> <a href="livetvchannels.html"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html" class="ui-btn-active">${TabRecordings}</a> <a href="livetvrecordings.html" class="ui-btn-active"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a> <a href="livetvtimers.html"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a> <a href="livetvseriestimers.html"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<div style="padding: 1em 0;"> <div style="padding: 1em 0;">
<div> <div>

View File

@ -6,12 +6,12 @@
<body> <body>
<div id="liveTvRecordingListPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvrecordinglist"> <div id="liveTvRecordingListPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvrecordinglist">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggestions}</a> <a href="livetvsuggested.html"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html">${TabGuide}</a> <a href="livetvguide.html"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a> <a href="livetvchannels.html"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html" class="ui-btn-active">${TabRecordings}</a> <a href="livetvrecordings.html" class="ui-btn-active"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a> <a href="livetvtimers.html"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a> <a href="livetvseriestimers.html"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<div data-role="content"> <div data-role="content">
<div class="viewSettings" style="margin:.5em 0;"> <div class="viewSettings" style="margin:.5em 0;">

View File

@ -8,12 +8,12 @@
<link rel="import" href="thirdparty/paper-button/paper-button.html"> <link rel="import" href="thirdparty/paper-button/paper-button.html">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggestions}</a> <a href="livetvsuggested.html"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html">${TabGuide}</a> <a href="livetvguide.html"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a> <a href="livetvchannels.html"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html" class="ui-btn-active">${TabRecordings}</a> <a href="livetvrecordings.html" class="ui-btn-active"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a> <a href="livetvtimers.html"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a> <a href="livetvseriestimers.html"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<div data-role="content"> <div data-role="content">
<div class="ehsContent"> <div class="ehsContent">

View File

@ -6,12 +6,12 @@
<body> <body>
<div id="liveTvSeriesTimerPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvcomponents,scripts/livetvseriestimer"> <div id="liveTvSeriesTimerPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvcomponents,scripts/livetvseriestimer">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggestions}</a> <a href="livetvsuggested.html"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html">${TabGuide}</a> <a href="livetvguide.html"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a> <a href="livetvchannels.html"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a> <a href="livetvrecordings.html"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a> <a href="livetvtimers.html"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html" class="ui-btn-active">${TabSeries}</a> <a href="livetvseriestimers.html" class="ui-btn-active"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<div data-role="content"> <div data-role="content">
<form class="liveTvSeriesTimerForm" style="margin: 0 auto; max-width: 720px;"> <form class="liveTvSeriesTimerForm" style="margin: 0 auto; max-width: 720px;">

View File

@ -6,12 +6,12 @@
<body> <body>
<div id="liveTvSeriesTimersPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvseriestimers"> <div id="liveTvSeriesTimersPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvseriestimers">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggestions}</a> <a href="livetvsuggested.html"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html">${TabGuide}</a> <a href="livetvguide.html"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a> <a href="livetvchannels.html"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a> <a href="livetvrecordings.html"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a> <a href="livetvtimers.html"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html" class="ui-btn-active">${TabSeries}</a> <a href="#" class="ui-btn-active"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<div data-role="content"> <div data-role="content">
<div style="max-width: 600px; margin: 0 auto;"> <div style="max-width: 600px; margin: 0 auto;">

View File

@ -8,12 +8,12 @@
<link rel="import" href="thirdparty/paper-button/paper-button.html"> <link rel="import" href="thirdparty/paper-button/paper-button.html">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="#" class="ui-btn-active">${TabSuggestions}</a> <a href="#" class="ui-btn-active"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html">${TabGuide}</a> <a href="livetvguide.html"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a> <a href="livetvchannels.html"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a> <a href="livetvrecordings.html"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a> <a href="livetvtimers.html"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a> <a href="livetvseriestimers.html"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<div data-role="content"> <div data-role="content">
<div class="ehsContent"> <div class="ehsContent">

View File

@ -6,12 +6,12 @@
<body> <body>
<div id="liveTvTimerPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvcomponents,scripts/livetvtimer"> <div id="liveTvTimerPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvcomponents,scripts/livetvtimer">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggestions}</a> <a href="livetvsuggested.html"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html">${TabGuide}</a> <a href="livetvguide.html"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a> <a href="livetvchannels.html"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a> <a href="livetvrecordings.html"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html" class="ui-btn-active">${TabScheduled}</a> <a href="livetvtimers.html" class="ui-btn-active"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a> <a href="livetvseriestimers.html"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<div data-role="content"> <div data-role="content">

View File

@ -6,12 +6,12 @@
<body> <body>
<div id="liveTvTimersPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvtimers"> <div id="liveTvTimersPage" data-role="page" class="page libraryPage liveTvPage" data-contextname="${HeaderLiveTv}" data-require="scripts/livetvtimers">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggestions}</a> <a href="livetvsuggested.html"><i class="material-icons">info</i>${TabSuggestions}</a>
<a href="livetvguide.html">${TabGuide}</a> <a href="livetvguide.html"><i class="material-icons">grid_on</i>${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a> <a href="livetvchannels.html"><i class="material-icons">live_tv</i>${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a> <a href="livetvrecordings.html"><i class="material-icons">slideshow</i>${TabRecordings}</a>
<a href="livetvtimers.html" class="ui-btn-active">${TabScheduled}</a> <a href="livetvtimers.html" class="ui-btn-active"><i class="material-icons">schedule</i>${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a> <a href="livetvseriestimers.html"><i class="material-icons">refresh</i>${TabSeries}</a>
</div> </div>
<div data-role="content"> <div data-role="content">
<div style="max-width: 600px; margin: 0 auto;"> <div style="max-width: 600px; margin: 0 auto;">

View File

@ -7,7 +7,7 @@
<div id="mySyncActivityPage" data-role="page" class="page libraryPage syncActivityPage mySyncPage" data-contextname="${TitleSync}" data-require="scripts/syncactivity,scripts/taskbutton"> <div id="mySyncActivityPage" data-role="page" class="page libraryPage syncActivityPage mySyncPage" data-contextname="${TitleSync}" data-require="scripts/syncactivity,scripts/taskbutton">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="#" class="ui-btn-active">${TabSyncJobs}</a> <a href="#" class="ui-btn-active"><i class="material-icons">refresh</i>${TabSyncJobs}</a>
</div> </div>
<div data-role="content"> <div data-role="content">

View File

@ -7,7 +7,7 @@
<div id="mySyncJobPage" data-role="page" class="page libraryPage syncJobPage mySyncPage" data-contextname="${TitleSync}" data-require="scripts/syncjob"> <div id="mySyncJobPage" data-role="page" class="page libraryPage syncJobPage mySyncPage" data-contextname="${TitleSync}" data-require="scripts/syncjob">
<div class="libraryViewNav"> <div class="libraryViewNav">
<a href="mysync.html" class="ui-btn-active">${TabSyncJobs}</a> <a href="mysync.html" class="ui-btn-active"><i class="material-icons">refresh</i>${TabSyncJobs}</a>
</div> </div>
<div data-role="content"> <div data-role="content">

View File

@ -7,9 +7,9 @@
<div id="photosPage" data-role="page" class="page libraryPage" data-require="scripts/photos,scripts/queryfilters"> <div id="photosPage" data-role="page" class="page libraryPage" data-require="scripts/photos,scripts/queryfilters">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="photos.html" class="ui-btn-active lnkPhotoAlbums">${TabAlbums}</a> <a href="photos.html" class="ui-btn-active lnkPhotoAlbums"><i class="material-icons">photo_album</i>${TabAlbums}</a>
<a href="photos.html?context=photos-photos" class="lnkPhotos">${TabPhotos}</a> <a href="photos.html?context=photos-photos" class="lnkPhotos"><i class="material-icons">photo</i>${TabPhotos}</a>
<a href="photos.html?context=photos-videos" class="lnkVideos">${TabVideos}</a> <a href="photos.html?context=photos-videos" class="lnkVideos"><i class="material-icons">videocam</i>${TabVideos}</a>
</div> </div>
<div data-role="content"> <div data-role="content">

View File

@ -7,7 +7,7 @@
<div id="playlistEditorPage" data-role="page" class="page libraryPage" data-require="scripts/playlistedit"> <div id="playlistEditorPage" data-role="page" class="page libraryPage" data-require="scripts/playlistedit">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="playlists.html" class="ui-btn-active">${TabPlaylists}</a> <a href="playlists.html" class="ui-btn-active"><i class="material-icons">menu</i>${TabPlaylists}</a>
</div> </div>
<div data-role="content"> <div data-role="content">

View File

@ -7,7 +7,7 @@
<div id="playlistsPage" data-role="page" class="page libraryPage" data-require="scripts/playlists"> <div id="playlistsPage" data-role="page" class="page libraryPage" data-require="scripts/playlists">
<div class="libraryViewNav scopedLibraryViewNav"> <div class="libraryViewNav scopedLibraryViewNav">
<a href="#" class="ui-btn-active">${TabPlaylists}</a> <a href="#" class="ui-btn-active"><i class="material-icons">menu</i>${TabPlaylists}</a>
</div> </div>
<div data-role="content"> <div data-role="content">

View File

@ -596,7 +596,7 @@ function ticks_to_human(str) {
$.fn.visible = function(visible) { $.fn.visible = function(visible) {
if (visible) { if (visible) {
return this.removeClass('hide'); return this.removeClass('forceHide');
} }
return this.addClass('hide'); return this.addClass('forceHide');
}; };

View File

@ -9,7 +9,6 @@
{ name: Globalize.translate('HeaderFavoriteGames'), types: "Game", id: "favoriteGames", shape: 'autohome', preferThumb: false, showTitle: true }, { name: Globalize.translate('HeaderFavoriteGames'), types: "Game", id: "favoriteGames", shape: 'autohome', preferThumb: false, showTitle: true },
{ name: Globalize.translate('HeaderFavoriteAlbums'), types: "MusicAlbum", id: "favoriteAlbums", shape: 'square', preferThumb: false, showTitle: true, overlayText: false, showParentTitle: true } { name: Globalize.translate('HeaderFavoriteAlbums'), types: "MusicAlbum", id: "favoriteAlbums", shape: 'square', preferThumb: false, showTitle: true, overlayText: false, showParentTitle: true }
]; ];
} }
function loadSection(elem, userId, section, isSingleSection) { function loadSection(elem, userId, section, isSingleSection) {
@ -33,7 +32,7 @@
options.Limit = null; options.Limit = null;
} }
ApiClient.getItems(userId, options).done(function (result) { return ApiClient.getItems(userId, options).done(function (result) {
var html = ''; var html = '';
@ -53,23 +52,22 @@
}); });
if (result.TotalRecordCount > result.Items.length) { if (result.TotalRecordCount > result.Items.length) {
html += '<div class="itemsContainer">';
var href = "favorites.html?sectionid=" + section.id; var href = "favorites.html?sectionid=" + section.id;
html += '<a data-role="button" href="' + href + '" data-mini="true" data-inline="true">' + Globalize.translate('ButtonMoreItems') + '</a>'; html += '<a class="clearLink" href="' + href + '"><paper-button raised class="more">' + Globalize.translate('ButtonMoreItems') + '</paper-button></a>';
html += '</div>';
} }
html += '</div>'; html += '</div>';
} }
elem = $(elem).html(html).trigger('create').lazyChildren(); elem = $(elem).html(html).lazyChildren();
elem.createCardMenus(); elem.createCardMenus();
}); });
} }
function loadSections(page, userId) { function loadSections(page, userId) {
Dashboard.showLoadingMsg();
var sections = getSections(); var sections = getSections();
var sectionid = getParameterByName('sectionid'); var sectionid = getParameterByName('sectionid');
@ -95,14 +93,20 @@
elem.html(html); elem.html(html);
} }
var promises = [];
for (i = 0, length = sections.length; i < length; i++) { for (i = 0, length = sections.length; i < length; i++) {
var section = sections[i]; var section = sections[i];
elem = $('.section' + section.id, page); elem = $('.section' + section.id, page);
loadSection(elem, userId, section, sections.length == 1); promises.push(loadSection(elem, userId, section, sections.length == 1));
} }
$.when(promises).done(function () {
Dashboard.hideLoadingMsg();
});
} }
$(document).on('pageshowready', "#favoritesPage", function () { $(document).on('pageshowready', "#favoritesPage", function () {

View File

@ -1494,7 +1494,8 @@
anchorCssClass += ' itemWithAction'; anchorCssClass += ' itemWithAction';
} }
html += '<a class="' + anchorCssClass + '" href="' + href + '"' + defaultActionAttribute + '>'; var transition = options.transition === false || !AppInfo.enableSectionTransitions ? '' : ' data-transition="slide"';
html += '<a' + transition + ' class="' + anchorCssClass + '" href="' + href + '"' + defaultActionAttribute + '>';
html += '<div class="' + imageCssClass + '" style="' + style + '"' + dataSrc + '>'; html += '<div class="' + imageCssClass + '" style="' + style + '"' + dataSrc + '>';
if (icon) { if (icon) {
html += '<i class="fa ' + icon + '"></i>'; html += '<i class="fa ' + icon + '"></i>';

View File

@ -1,11 +1,14 @@
(function (window, document, $, devicePixelRatio) { (function (window, document, $, devicePixelRatio) {
var backStack = [];
var addNextToBackStack = true;
function renderHeader() { function renderHeader() {
var html = '<div class="viewMenuBar ui-bar-b">'; var html = '<div class="viewMenuBar ui-bar-b">';
if (AppInfo.enableBackButton) { if (AppInfo.enableBackButton) {
html += '<button type="button" data-role="none" class="headerButton headerButtonLeft headerBackButton"><div class="fa fa-arrow-left"></div></button>'; html += '<button type="button" data-role="none" class="headerButton headerButtonLeft headerBackButton"><div class="fa fa-chevron-left"></div></button>';
} }
html += '<button type="button" data-role="none" title="Menu" class="headerButton dashboardMenuButton barsMenuButton headerButtonLeft">'; html += '<button type="button" data-role="none" title="Menu" class="headerButton dashboardMenuButton barsMenuButton headerButtonLeft">';
@ -58,10 +61,14 @@
} }
function onBackClick() { function onBackClick() {
if (Dashboard.exitOnBack()) { if (Dashboard.exitOnBack()) {
Dashboard.exit(); Dashboard.exit();
} }
else { else {
addNextToBackStack = false;
backStack.length = Math.max(0, backStack.length - 1);
history.back(); history.back();
} }
} }
@ -163,12 +170,17 @@
function updateViewMenuBarHeadroom(page, viewMenuBar) { function updateViewMenuBarHeadroom(page, viewMenuBar) {
if ($(page).hasClass('libraryPage')) { if ($(page).hasClass('libraryPage')) {
viewMenuBar.removeClass('headroomDisabled'); // Don't like this timeout at all but if headroom is activated during the page events it will jump and flicker on us
setTimeout(reEnableHeadroom, 700);
} else { } else {
viewMenuBar.addClass('headroomDisabled'); viewMenuBar.addClass('headroomDisabled');
} }
} }
function reEnableHeadroom() {
$('.headroomDisabled').removeClass('headroomDisabled');
}
function getItemHref(item, context) { function getItemHref(item, context) {
return LibraryBrowser.getHref(item, context); return LibraryBrowser.getHref(item, context);
@ -640,15 +652,7 @@
// Otherwise we run into the jQM redirect back and forth problem // Otherwise we run into the jQM redirect back and forth problem
var updateViewMenuBarBeforePageShow = false; var updateViewMenuBarBeforePageShow = false;
$(document).on('pageinit', ".page", function () { $(document).on('pagebeforeshowready', ".page", function () {
var page = this;
$(function () {
onPageInitDocumentReady(page);
});
}).on('pagebeforeshowready', ".page", function () {
var page = this; var page = this;
@ -670,17 +674,22 @@
var page = this; var page = this;
onPageShowDocumentReady(page); onPageShowDocumentReady(page);
}).on('pagehide', ".page", function () {
if (addNextToBackStack) {
var text = $('.libraryMenuButtonText').text() || document.title;
backStack.push(text);
}
addNextToBackStack = true;
}).on('pagebeforehide', ".page", function () {
$('.headroomEnabled').addClass('headroomDisabled');
}); });
function onPageInitDocumentReady(page) {
$('.libraryViewNav', page).wrapInner('<div class="libraryViewNavInner"></div>');
$('.libraryViewNav a', page).each(function () {
this.innerHTML = '<span class="libraryViewNavLinkContent">' + this.innerHTML + '</span>';
});
}
function onPageBeforeShowDocumentReady(page) { function onPageBeforeShowDocumentReady(page) {
buildViewMenuBar(page); buildViewMenuBar(page);
@ -713,10 +722,39 @@
} else { } else {
$(document.body).removeClass('dashboardDocument').removeClass('libraryDocument'); $(document.body).removeClass('dashboardDocument').removeClass('libraryDocument');
} }
if (AppInfo.enableBackButton)
{
updateBackButton(page);
}
}
function updateBackButton(page) {
var jPage = $(page);
var canGoBack = backStack.length > 0 && jPage.is('.itemDetailPage');
$('.headerBackButton').visible(canGoBack);
jPage.off('swipeleft', onPageSwipeLeft);
if (canGoBack) {
jPage.on('swipeleft', onPageSwipeLeft);
}
}
function onPageSwipeLeft(e) {
var target = $(e.target);
if (!target.is('.hiddenScrollX') && !target.parents('.hiddenScrollX').length) {
history.back();
}
} }
function onPageShowDocumentReady(page) { function onPageShowDocumentReady(page) {
var elem = $('.libraryViewNavInner .ui-btn-active:visible', page); var elem = $('.libraryViewNav .ui-btn-active:visible', page);
if (elem.length) { if (elem.length) {
elem[0].scrollIntoView(); elem[0].scrollIntoView();
@ -738,6 +776,7 @@
var headroom = new Headroom(elem); var headroom = new Headroom(elem);
// initialise // initialise
headroom.init(); headroom.init();
$(elem).addClass('headroomEnabled');
}); });
} }

View File

@ -1222,7 +1222,7 @@
bindEventsForPlayback(); bindEventsForPlayback();
mediaPlayerContainer.trigger("create"); mediaPlayerContainer.trigger('create');
self.currentSubtitleStreamIndex = mediaSource.DefaultSubtitleStreamIndex; self.currentSubtitleStreamIndex = mediaSource.DefaultSubtitleStreamIndex;

View File

@ -32,7 +32,7 @@
html += '</div>'; html += '</div>';
$('.downloadLanguages', page).html(html).trigger("create"); $('.downloadLanguages', page).html(html).trigger('create');
var langs = config.DownloadLanguages || []; var langs = config.DownloadLanguages || [];

View File

@ -22,13 +22,15 @@
var html = ''; var html = '';
html += '<div class="nowPlayingBar" style="display:none;">'; // add return false because on iOS clicking the bar often ends up clicking the content underneath.
html += '<div class="nowPlayingBar" style="display:none;" onclick="return false;">';
html += '<div class="nowPlayingImage"></div>'; html += '<div class="nowPlayingImage"></div>';
html += '<div class="nowPlayingText"></div>'; html += '<div class="nowPlayingText"></div>';
html += '<a class="mediaButton remoteControlButton imageButton" href="nowplaying.html" data-transition="slideup" title="' + Globalize.translate('ButtonRemoteControl') + '"><i class="fa fa-tablet"></i></a>'; // The onclicks are needed due to the return false above
html += '<a class="mediaButton playlistButton imageButton" href="nowplaying.html?tab=Playlist" data-transition="slideup" title="' + Globalize.translate('ButtonPlaylist') + '"><i class="fa fa-list"></i></a>'; html += '<a class="mediaButton remoteControlButton imageButton" href="nowplaying.html" onclick="Dashboard.navigate(this.href);return false;" data-transition="slideup" title="' + Globalize.translate('ButtonRemoteControl') + '"><i class="fa fa-tablet"></i></a>';
html += '<a class="mediaButton playlistButton imageButton" href="nowplaying.html?tab=Playlist" onclick="Dashboard.navigate(this.href);return false;" data-transition="slideup" title="' + Globalize.translate('ButtonPlaylist') + '"><i class="fa fa-list"></i></a>';
html += '<button class="mediaButton previousTrackButton imageButton" title="' + Globalize.translate('ButtonPreviousTrack') + '" type="button" data-role="none"><i class="fa fa-step-backward"></i></button>'; html += '<button class="mediaButton previousTrackButton imageButton" title="' + Globalize.translate('ButtonPreviousTrack') + '" type="button" data-role="none"><i class="fa fa-step-backward"></i></button>';

View File

@ -97,14 +97,17 @@
function requestSearchHintsForOverlay(elem, searchTerm) { function requestSearchHintsForOverlay(elem, searchTerm) {
var currentTimeout = searchHintTimeout; var currentTimeout = searchHintTimeout;
Dashboard.showLoadingMsg();
ApiClient.getSearchHints({ userId: Dashboard.getCurrentUserId(), searchTerm: searchTerm, limit: 30 }).done(function (result) { ApiClient.getSearchHints({ userId: Dashboard.getCurrentUserId(), searchTerm: searchTerm, limit: 30 }).done(function (result) {
if (currentTimeout != searchHintTimeout) { if (currentTimeout == searchHintTimeout) {
return; renderSearchResultsInOverlay(elem, result.SearchHints);
} }
renderSearchResultsInOverlay(elem, result.SearchHints); Dashboard.hideLoadingMsg();
}).fail(function () {
Dashboard.hideLoadingMsg();
}); });
} }

View File

@ -248,7 +248,8 @@
showTitle: showTitles, showTitle: showTitles,
centerText: true, centerText: true,
lazy: true, lazy: true,
autoThumb: true autoThumb: true,
transition: false
}); });
html += '</div>'; html += '</div>';
} }

View File

@ -35,7 +35,7 @@ var Dashboard = {
//$.mobile.popup.prototype.options.theme = "c"; //$.mobile.popup.prototype.options.theme = "c";
$.mobile.popup.prototype.options.transition = "pop"; $.mobile.popup.prototype.options.transition = "pop";
//$.mobile.keepNative = "input[type='text'],input[type='password'],input[type='number']"; //$.mobile.keepNative = "textarea";
if ($.browser.mobile) { if ($.browser.mobile) {
$.mobile.defaultPageTransition = "none"; $.mobile.defaultPageTransition = "none";
@ -400,7 +400,7 @@ var Dashboard = {
elem.slideDown(400); elem.slideDown(400);
} }
elem.html(options.html).trigger("create"); elem.html(options.html).trigger('create');
if (options.timeout) { if (options.timeout) {
@ -1658,6 +1658,7 @@ var AppInfo = {};
if (isCordova) { if (isCordova) {
AppInfo.enableBottomTabs = true; AppInfo.enableBottomTabs = true;
AppInfo.cardMargin = 'mediumCardMargin'; AppInfo.cardMargin = 'mediumCardMargin';
AppInfo.enableSectionTransitions = true;
} else { } else {
if (isMobile) { if (isMobile) {
@ -1678,14 +1679,10 @@ var AppInfo = {};
} }
} }
AppInfo.enableMusicSongsTab = true;
if (!AppInfo.hasLowImageBandwidth) { if (!AppInfo.hasLowImageBandwidth) {
AppInfo.enableLatestChannelItems = true;
AppInfo.enableStudioTabs = true; AppInfo.enableStudioTabs = true;
AppInfo.enablePeopleTabs = true; AppInfo.enablePeopleTabs = true;
AppInfo.enableTvEpisodesTab = true; AppInfo.enableTvEpisodesTab = true;
AppInfo.enableMusicArtistsTab = true;
AppInfo.enableMovieTrailersTab = true; AppInfo.enableMovieTrailersTab = true;
} }
@ -1706,7 +1703,8 @@ var AppInfo = {};
AppInfo.enableUserImage = true; AppInfo.enableUserImage = true;
AppInfo.hasPhysicalVolumeButtons = isCordova || isMobile; AppInfo.hasPhysicalVolumeButtons = isCordova || isMobile;
AppInfo.enableBackButton = isIOS && window.navigator.standalone && !AppInfo.isNativeApp; AppInfo.enableBackButton = isIOS && (window.navigator.standalone || AppInfo.isNativeApp);
AppInfo.supportsFullScreen = isCordova && isAndroid; AppInfo.supportsFullScreen = isCordova && isAndroid;
AppInfo.supportsSyncPathSetting = isCordova && isAndroid; AppInfo.supportsSyncPathSetting = isCordova && isAndroid;
@ -1802,10 +1800,6 @@ var AppInfo = {};
elem.addClass(AppInfo.cardMargin); elem.addClass(AppInfo.cardMargin);
} }
if (!AppInfo.enableLatestChannelItems) {
elem.addClass('latestChannelItemsDisabled');
}
if (!AppInfo.enableStudioTabs) { if (!AppInfo.enableStudioTabs) {
elem.addClass('studioTabDisabled'); elem.addClass('studioTabDisabled');
} }
@ -1818,14 +1812,6 @@ var AppInfo = {};
elem.addClass('tvEpisodesTabDisabled'); elem.addClass('tvEpisodesTabDisabled');
} }
if (!AppInfo.enableMusicSongsTab) {
elem.addClass('musicSongsTabDisabled');
}
if (!AppInfo.enableMusicArtistsTab) {
elem.addClass('musicArtistsTabDisabled');
}
if (!AppInfo.enableMovieTrailersTab) { if (!AppInfo.enableMovieTrailersTab) {
elem.addClass('movieTrailersTabDisabled'); elem.addClass('movieTrailersTabDisabled');
} }

View File

@ -230,9 +230,8 @@
html += '<div class="formFields"></div>'; html += '<div class="formFields"></div>';
html += '<br/>';
html += '<p>'; html += '<p>';
html += '<button type="submit" data-icon="refresh" data-theme="b">' + Globalize.translate('ButtonSync') + '</button>'; html += '<button type="submit" data-role="none" class="clearButton"><paper-button raised class="submit block"><iron-icon icon="refresh"></iron-icon><span>' + Globalize.translate('ButtonSync') + '</span></paper-button></button>';
html += '</p>'; html += '</p>';
html += '</form>'; html += '</form>';

View File

@ -14,6 +14,7 @@
font-weight: 400; font-weight: 400;
text-transform: none; text-transform: none;
color: #ccc !important; color: #ccc !important;
padding-top: 16px;
} }
.libraryViewNav .ui-btn-active { .libraryViewNav .ui-btn-active {
@ -97,13 +98,41 @@ h1, h1 a {
background: #1c1c1c; background: #1c1c1c;
} }
.libraryViewNavLinkContent {
padding-top: 4px;
}
.libraryMenuButtonText { .libraryMenuButtonText {
position: absolute; position: absolute;
left: 0; left: 100px;
right: 0; right: 100px;
text-align: center; text-align: center;
font-size: 16px;
margin: 0 auto !important;
}
.libraryViewNav .material-icons {
display: block;
margin-top: -5px;
font-size: 14px;
}
paper-button[raised].submit {
background: none !important;
color: #2ad !important;
border: 1px solid #2ad !important;
}
paper-button[raised].more {
background: none !important;
color: orange !important;
border: 1px solid orange !important;
}
paper-button[raised].secondary {
background: none !important;
color: green !important;
border: 1px solid green !important;
}
paper-button[raised].cancel {
background: none !important;
color: #666 !important;
border: 1px solid #666 !important;
} }

View File

@ -489,7 +489,7 @@
currentSession.on('message', handleMessage); currentSession.on('message', handleMessage);
currentSession.on('disconnect', handleSessionDisconnect); currentSession.on('disconnect', handleSessionDisconnect);
if (connectToSession || $.browser.safari) { if (connectToSession /*|| $.browser.safari*/) {
currentSession.connect().success(function () { currentSession.connect().success(function () {
onWebAppSessionConnect(currentSession, device); onWebAppSessionConnect(currentSession, device);

View File

@ -7,6 +7,7 @@
var PlayerName = "ConnectSDK"; var PlayerName = "ConnectSDK";
var currentDevice; var currentDevice;
var currentDeviceId; var currentDeviceId;
var currentMediaControl;
// MediaController needs this // MediaController needs this
self.name = PlayerName; self.name = PlayerName;
@ -91,7 +92,41 @@
playItemInternal(items[0], null, serverAddress); playItemInternal(items[0], null, serverAddress);
}; };
function playItemInternal(items, startPosition) { function validatePlaybackInfoResult(result) {
if (result.ErrorCode) {
MediaController.showPlaybackInfoErrorMessage(result.ErrorCode);
return false;
}
return true;
}
function getOptimalMediaSource(mediaType, versions) {
var optimalVersion = versions.filter(function (v) {
v.enableDirectPlay = MediaController.supportsDirectPlay(v);
return v.enableDirectPlay;
})[0];
if (!optimalVersion) {
optimalVersion = versions.filter(function (v) {
return v.SupportsDirectStream;
})[0];
}
return optimalVersion || versions.filter(function (s) {
return s.SupportsTranscoding;
})[0];
}
function playItemInternal(item, startPosition) {
if (item == null) { if (item == null) {
throw new Error("item cannot be null"); throw new Error("item cannot be null");
@ -113,43 +148,71 @@
Dashboard.showModalLoadingMsg(); Dashboard.showModalLoadingMsg();
} }
//getPlaybackInfo(item.Id, deviceProfile, startPosition).done(function (playbackInfoResult) { MediaController.getPlaybackInfo(item.Id, deviceProfile, startPosition).done(function (playbackInfoResult) {
// if (validatePlaybackInfoResult(playbackInfoResult)) { if (validatePlaybackInfoResult(playbackInfoResult)) {
// var mediaSource = getOptimalMediaSource(item.MediaType, playbackInfoResult.MediaSources); var mediaSource = getOptimalMediaSource(item.MediaType, playbackInfoResult.MediaSources);
// if (mediaSource) { if (mediaSource) {
// if (mediaSource.RequiresOpening) { if (mediaSource.RequiresOpening) {
// getLiveStream(item.Id, playbackInfoResult.PlaySessionId, deviceProfile, startPosition, mediaSource, null, null).done(function (openLiveStreamResult) { getLiveStream(item.Id, playbackInfoResult.PlaySessionId, deviceProfile, startPosition, mediaSource, null, null).done(function (openLiveStreamResult) {
// openLiveStreamResult.MediaSource.enableDirectPlay = supportsDirectPlay(openLiveStreamResult.MediaSource); openLiveStreamResult.MediaSource.enableDirectPlay = supportsDirectPlay(openLiveStreamResult.MediaSource);
// playInternalPostMediaSourceSelection(item, openLiveStreamResult.MediaSource, startPosition, callback); playInternalPostMediaSourceSelection(item, openLiveStreamResult.MediaSource, startPosition, callback);
// }); });
// } else { } else {
// playInternalPostMediaSourceSelection(item, mediaSource, startPosition, callback); playInternalPostMediaSourceSelection(item, mediaSource, startPosition, callback);
// } }
// } else { } else {
// Dashboard.hideModalLoadingMsg(); Dashboard.hideModalLoadingMsg();
// MediaController.showPlaybackInfoErrorMessage('NoCompatibleStream'); MediaController.showPlaybackInfoErrorMessage('NoCompatibleStream');
// } }
// } }
//}); });
} }
function playInternalPostMediaSourceSelection(item, mediaSource, startPosition, deferred) {
Dashboard.hideModalLoadingMsg();
var streamInfo = MediaPlayer.createStreamInfo('Video', item, mediaSource, startPosition);
currentDevice.getMediaPlayer().playMedia(
streamInfo.url,
streamInfo.MimeType,
{
title: item.Name,
description: item.Overview || '',
shouldLoop: false
}
).success(function (launchSession, mediaControl) {
console.log("Video launch successful");
currentMediaControl = mediaControl && mediaControl.acquire();
}).error(function (err) {
console.log("error: " + err.message);
});
deferred.resolveWith(null, [streamInfo]);
}
self.unpause = function () { self.unpause = function () {
if (currentDevice) { if (currentMediaControl) {
currentDevice.getMediaControl().pause(); currentMediaControl.pause();
} }
}; };
self.pause = function () { self.pause = function () {
if (currentDevice) { if (currentMediaControl) {
currentDevice.getMediaControl().pause(); currentMediaControl.pause();
} }
}; };
@ -198,8 +261,8 @@
}; };
self.stop = function () { self.stop = function () {
if (currentDevice) { if (currentMediaControl) {
currentDevice.getMediaControl().stop(); currentMediaControl.stop();
} }
}; };
@ -586,6 +649,7 @@
//currentDevice.disconnect(); //currentDevice.disconnect();
currentDevice = null; currentDevice = null;
currentDeviceId = null; currentDeviceId = null;
currentMediaControl = null;
} }
} }
} }

View File

@ -18,11 +18,11 @@
} }
paper-button.more { paper-button.more {
color: #388E3C; color: #EC407A;
} }
paper-button[raised].more { paper-button[raised].more {
background: #388E3C; background: #EC407A;
color: #fff; color: #fff;
} }
@ -92,7 +92,7 @@ paper-button.mini {
} }
paper-button.mini .content { paper-button.mini .content {
padding: 0.35em 0.7em; padding: 0.4em 0.7em;
} }

View File

@ -9,11 +9,11 @@
<link rel="import" href="thirdparty/paper-button/paper-button.html"> <link rel="import" href="thirdparty/paper-button/paper-button.html">
<div class="libraryViewNav globalNav" style="display: none;"> <div class="libraryViewNav globalNav" style="display: none;">
<a href="index.html">${TabHome}</a> <a href="index.html"><i class="material-icons">home</i>${TabHome}</a>
<a href="homelatest.html">${TabLatest}</a> <a href="homelatest.html"><i class="material-icons">new_releases</i>${TabLatest}</a>
<a href="#" class="ui-btn-active">${TabNextUp}</a> <a href="#" class="ui-btn-active"><i class="material-icons">navigate_next</i>${TabNextUp}</a>
<a href="favorites.html">${TabFavorites}</a> <a href="favorites.html"><i class="material-icons">favorite</i>${TabFavorites}</a>
<a href="tvupcoming.html">${TabUpcoming}</a> <a href="tvupcoming.html"><i class="material-icons">schedule</i>${TabUpcoming}</a>
</div> </div>
<div class="libraryViewNav scopedLibraryViewNav" style="display: none;"> <div class="libraryViewNav scopedLibraryViewNav" style="display: none;">
<a href="tvrecommended.html" class="ui-btn-active">${TabSuggestions}</a> <a href="tvrecommended.html" class="ui-btn-active">${TabSuggestions}</a>

View File

@ -6,11 +6,11 @@
<body> <body>
<div id="tvUpcomingPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="series" data-require="scripts/tvupcoming"> <div id="tvUpcomingPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="series" data-require="scripts/tvupcoming">
<div class="libraryViewNav globalNav" style="display: none;"> <div class="libraryViewNav globalNav" style="display: none;">
<a href="index.html">${TabHome}</a> <a href="index.html"><i class="material-icons">home</i>${TabHome}</a>
<a href="homelatest.html">${TabLatest}</a> <a href="homelatest.html"><i class="material-icons">new_releases</i>${TabLatest}</a>
<a href="tvrecommended.html">${TabNextUp}</a> <a href="tvrecommended.html"><i class="material-icons">navigate_next</i>${TabNextUp}</a>
<a href="favorites.html">${TabFavorites}</a> <a href="favorites.html"><i class="material-icons">favorite</i>${TabFavorites}</a>
<a href="#" class="ui-btn-active">${TabUpcoming}</a> <a href="#" class="ui-btn-active"><i class="material-icons">schedule</i>${TabUpcoming}</a>
</div> </div>
<div class="libraryViewNav scopedLibraryViewNav" style="display: none;"> <div class="libraryViewNav scopedLibraryViewNav" style="display: none;">
<a href="tvrecommended.html">${TabSuggestions}</a> <a href="tvrecommended.html">${TabSuggestions}</a>