mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-17 19:08:18 -07:00
web client backdrops
This commit is contained in:
parent
c93de38f39
commit
76d39e1345
@ -4,7 +4,11 @@
|
||||
<title>${TitleMediaBrowser}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="channelItemsPage" data-role="page" class="page libraryPage noSecondaryNavPage channelsPage" data-theme="b" data-view="channels">
|
||||
<div id="channelItemsPage" data-role="page" class="page libraryPage channelsPage" data-theme="b" data-view="channels">
|
||||
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="channels.html" class="ui-btn-active">${TabChannels}</a>
|
||||
</div>
|
||||
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
|
@ -4,12 +4,14 @@
|
||||
<title>${TitleMediaBrowser}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="channelsPage" data-role="page" class="page libraryPage noSecondaryNavPage channelsPage" data-theme="b" data-view="channels">
|
||||
<div id="channelsPage" data-role="page" class="page libraryPage channelsPage" data-theme="b" data-view="channels">
|
||||
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="#" class="ui-btn-active">${TabChannels}</a>
|
||||
</div>
|
||||
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
<h1 style="margin: 0 1em 0 0; display: inline-block; vertical-align: middle;">${HeaderChannels}</h1>
|
||||
|
||||
</div>
|
||||
<div id="items" class="itemsContainer"></div>
|
||||
</div>
|
||||
|
@ -4,15 +4,17 @@
|
||||
<title>${TitleMediaBrowser}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="boxsetsPage" data-role="page" class="page libraryPage noSecondaryNavPage" data-theme="b" data-view="boxsets">
|
||||
<div id="boxsetsPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="movie,boxset" data-theme="b" data-view="boxsets">
|
||||
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="#" class="ui-btn-active">${TabCollections}</a>
|
||||
</div>
|
||||
|
||||
<div class="alphabetPicker">
|
||||
</div>
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
|
||||
<h1 style="margin: 0 1em 0 0; display: inline-block; vertical-align: middle;">${HeaderCollections}</h1>
|
||||
|
||||
<div class="viewControls" data-role="controlgroup" data-type="horizontal">
|
||||
<button data-mini="true" data-icon="sort" data-inline="true" data-iconpos="notext" title="${ButtonSort}" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">${ButtonSort}</button>
|
||||
<button data-mini="true" data-icon="filter" data-inline="true" data-iconpos="notext" title="${ButtonFilter}" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">${ButtonFilter}</button>
|
||||
|
@ -1,35 +1,22 @@
|
||||
.btnCast {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
padding: 0;
|
||||
.btnCastImage {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
background-size: 100%;
|
||||
vertical-align: middle;
|
||||
margin: 0 .6em;
|
||||
cursor: pointer;
|
||||
border: 0 !important;
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
width: 28px;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
.btnCast:hover {
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
.btnDefaultCast {
|
||||
.btnDefaultCast .btnCastImage {
|
||||
background-image: url(images/chromecast/ic_media_route_off_holo_dark.png);
|
||||
}
|
||||
|
||||
.btnActiveCast {
|
||||
.btnActiveCast .btnCastImage {
|
||||
background-image: url(images/chromecast/ic_media_route_on_holo_dark.png);
|
||||
}
|
||||
|
||||
.btnDisabledCast {
|
||||
.btnDisabledCast .btnCastImage {
|
||||
background-image: url(images/chromecast/ic_media_route_disabled_holo_dark.png);
|
||||
}
|
||||
|
||||
.ui-icon-ccast {
|
||||
background-image: url(images/chromecast/ic_media_route_off_holo_dark.png);
|
||||
background-position: 5px 5px;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 18px 18px;
|
||||
}
|
BIN
dashboard-ui/css/images/headersearch.png
Normal file
BIN
dashboard-ui/css/images/headersearch.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
BIN
dashboard-ui/css/images/items/folders/edit.png
Normal file
BIN
dashboard-ui/css/images/items/folders/edit.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
BIN
dashboard-ui/css/images/items/folders/settings.png
Normal file
BIN
dashboard-ui/css/images/items/folders/settings.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
BIN
dashboard-ui/css/images/menu.png
Normal file
BIN
dashboard-ui/css/images/menu.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 199 B |
BIN
dashboard-ui/css/images/remote.png
Normal file
BIN
dashboard-ui/css/images/remote.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
@ -12,6 +12,26 @@
|
||||
margin-left: .5em;
|
||||
}
|
||||
|
||||
.libraryPage {
|
||||
background-color: #202020;
|
||||
}
|
||||
|
||||
.backdropPage {
|
||||
background-color: rgba(0, 0, 0, .86);
|
||||
}
|
||||
|
||||
.backdropContainer {
|
||||
position: fixed;
|
||||
top: 50px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
|
||||
.libraryPage .header {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
@ -26,8 +46,8 @@
|
||||
}
|
||||
|
||||
.listHeader {
|
||||
margin-top: .5em;
|
||||
margin-bottom: .2em;
|
||||
margin-top: .7em;
|
||||
margin-bottom: 0;
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
@ -465,6 +485,7 @@ a.itemTag:hover {
|
||||
|
||||
.libraryPanelHeader {
|
||||
margin: 5px 0 15px 0;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.libraryPanelHeader a {
|
||||
@ -1073,7 +1094,7 @@ a.itemTag:hover {
|
||||
|
||||
.spotlight {
|
||||
position: absolute;
|
||||
left: -220px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-size: cover;
|
||||
background-position: center 25%;
|
||||
@ -1103,7 +1124,7 @@ a.itemTag:hover {
|
||||
bottom: 55px;
|
||||
left: 210px;
|
||||
width: 600px;
|
||||
background: rgba(0,0,0,.6);
|
||||
background: rgba(0,0,0,.8);
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
.libraryPage {
|
||||
padding-top: 53px !important;
|
||||
padding-top: 50px !important;
|
||||
}
|
||||
|
||||
.libraryPage:not(.metadataEditorPage):not(.noSecondaryNavPage) {
|
||||
padding-top: 102px !important;
|
||||
padding-top: 100px !important;
|
||||
}
|
||||
|
||||
.libraryMenuDivider {
|
||||
@ -12,6 +12,73 @@
|
||||
margin: .5em 0;
|
||||
}
|
||||
|
||||
.viewMenuBar, .headerButton {
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
.headerButton {
|
||||
line-height: 50px;
|
||||
}
|
||||
|
||||
.headerButton {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
border: 1px solid #1b1b1b!important;
|
||||
cursor: pointer;
|
||||
outline: none;
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.headerButton img {
|
||||
height: 18px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.headerSearchButton img {
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.headerButtonLeft {
|
||||
border-width: 0 1px 0 0 !important;
|
||||
float: left;
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
.headerButtonRight {
|
||||
border-width: 0 !important;
|
||||
float: left;
|
||||
border-width: 0 0 0 1px !important;
|
||||
}
|
||||
|
||||
.headerButtonRight:first-child {
|
||||
border-width: 0 !important;
|
||||
}
|
||||
|
||||
.headerButtonRight:last-child {
|
||||
}
|
||||
|
||||
.desktopHomeLink {
|
||||
color: #ddd !important;
|
||||
text-decoration: none;
|
||||
font-weight: 400!important;
|
||||
font-size: 15px;
|
||||
border-right: 0 !important;
|
||||
}
|
||||
|
||||
.desktopHomeLink span {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.libraryMenuButton {
|
||||
left: 0;
|
||||
opacity: .8;
|
||||
}
|
||||
|
||||
.viewMenuBar {
|
||||
font-weight: bold;
|
||||
position: fixed;
|
||||
@ -20,13 +87,54 @@
|
||||
z-index: 1000;
|
||||
top: 0;
|
||||
background: #000;
|
||||
padding: 3px .25em 3px 1em;
|
||||
border-bottom: 1px solid #101010;
|
||||
border-top: 0;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
.libraryViewNav {
|
||||
height: 48px;
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid #222;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
left: 0;
|
||||
top: 51px;
|
||||
z-index: 1000;
|
||||
background-color: #181818;
|
||||
}
|
||||
|
||||
@media all and (max-width: 460px) {
|
||||
.viewMenuBar, .headerButton {
|
||||
height: 46px;
|
||||
}
|
||||
|
||||
.headerButton {
|
||||
line-height: 46px;
|
||||
}
|
||||
|
||||
.libraryPage {
|
||||
padding-top: 46px !important;
|
||||
}
|
||||
|
||||
.libraryPage:not(.metadataEditorPage):not(.noSecondaryNavPage) {
|
||||
padding-top: 96px !important;
|
||||
}
|
||||
|
||||
.libraryViewNav {
|
||||
top: 47px;
|
||||
}
|
||||
|
||||
.headerButtonLeft img {
|
||||
height: 15px;
|
||||
}
|
||||
|
||||
.btnCastImage {
|
||||
width: 26px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.viewMenuLink {
|
||||
text-decoration: none;
|
||||
color: #ccc!important;
|
||||
@ -35,13 +143,14 @@
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.viewMenuLink:hover {
|
||||
background-color: #52B54B;
|
||||
color: #fff!important;
|
||||
}
|
||||
.viewMenuTextLink:hover, .libraryMenuButton:hover {
|
||||
background-color: #38c;
|
||||
color: #fff!important;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.viewMenuBar .btnCurrentUser {
|
||||
padding: 7px 1em 6px;
|
||||
.headerButtonRight:hover {
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
.viewMenuLink:hover {
|
||||
@ -59,23 +168,23 @@
|
||||
|
||||
.viewMenuTextLink {
|
||||
display: block;
|
||||
padding: .6em .5em .6em 41px!important;
|
||||
padding: .6em .5em .6em 43px!important;
|
||||
font-size: 15px;
|
||||
font-weight: 300!important;
|
||||
font-family: Roboto;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 18px 18px;
|
||||
background-position: 14px center;
|
||||
background-position: 16px center;
|
||||
}
|
||||
|
||||
.musicViewMenu {
|
||||
background-image: url(images/items/folders/music.png);
|
||||
background-position: 14px 8px;
|
||||
background-position: 16px 8px;
|
||||
}
|
||||
|
||||
.tvshowsViewMenu {
|
||||
background-image: url(images/items/folders/tv.png);
|
||||
background-position: 14px 8px;
|
||||
background-position: 16px 8px;
|
||||
}
|
||||
|
||||
.moviesViewMenu {
|
||||
@ -84,12 +193,12 @@
|
||||
|
||||
.gamesViewMenu {
|
||||
background-image: url(images/items/folders/games.png);
|
||||
background-position: 14px 8px;
|
||||
background-position: 16px 8px;
|
||||
}
|
||||
|
||||
.channelsViewMenu {
|
||||
background-image: url(images/items/folders/channels.png);
|
||||
background-position: 14px 9px;
|
||||
background-position: 16px 9px;
|
||||
}
|
||||
|
||||
.booksViewMenu {
|
||||
@ -98,12 +207,12 @@
|
||||
|
||||
.musicvideosViewMenu {
|
||||
background-image: url(images/items/folders/musicvideos.png);
|
||||
background-position: 14px 8px;
|
||||
background-position: 16px 8px;
|
||||
}
|
||||
|
||||
.photosViewMenu {
|
||||
background-image: url(images/items/folders/photos.png);
|
||||
background-position: 14px 8px;
|
||||
background-position: 16px 8px;
|
||||
}
|
||||
|
||||
.homeVideosViewMenu {
|
||||
@ -114,12 +223,25 @@
|
||||
background-image: url(images/items/folders/folder.png);
|
||||
}
|
||||
|
||||
.editorViewMenu {
|
||||
background-image: url(images/items/folders/edit.png);
|
||||
background-position: 16px 8px;
|
||||
}
|
||||
|
||||
.dashboardViewMenu {
|
||||
background-image: url(images/items/folders/settings.png);
|
||||
background-position: 16px 8px;
|
||||
}
|
||||
|
||||
.viewMenuSecondary {
|
||||
float: right;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.selectedMediaFolder {
|
||||
background-color: #38c!important;
|
||||
background-color: #52B54B!important;
|
||||
color: #fff!important;
|
||||
}
|
||||
|
||||
@ -127,18 +249,6 @@
|
||||
background-color: rgba(51,136,204,.8)!important;
|
||||
}
|
||||
|
||||
.libraryViewNav {
|
||||
height: 48px;
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid #222;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
left: 0;
|
||||
top: 53px;
|
||||
z-index: 1000;
|
||||
background-color: #181818;
|
||||
}
|
||||
|
||||
.ui-panel.ui-body-b {
|
||||
background-color: #181818;
|
||||
}
|
||||
@ -178,40 +288,13 @@
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
.desktopHomeLink {
|
||||
color: #ddd !important;
|
||||
margin-right: 2em;
|
||||
text-decoration: none;
|
||||
font-weight: 400!important;
|
||||
}
|
||||
|
||||
.desktopHomeLink span {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
@media all and (min-width: 1099px) {
|
||||
|
||||
/*.type-home {
|
||||
left: 215px !important;
|
||||
width: auto !important;
|
||||
right: 0 !important;
|
||||
}*/
|
||||
|
||||
.viewSettings {
|
||||
padding-left: .4em;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 459px) {
|
||||
@media all and (max-width: 600px) {
|
||||
|
||||
.desktopHomeLink {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 750px) {
|
||||
|
||||
.viewMenuBar .btnCurrentUser {
|
||||
padding-right: 1.5em;
|
||||
.headerSettingsButton {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>${TitleMediaBrowser}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="gamesRecommendedPage" data-role="page" class="page libraryPage" data-theme="b" data-view="games">
|
||||
<div id="gamesRecommendedPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="game" data-theme="b" data-view="games">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="#" class="ui-btn-active">${TabSuggested}</a>
|
||||
<a href="games.html">${TabGames}</a>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>${TitleMediaBrowser}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="gamesystemsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="games">
|
||||
<div id="gamesystemsPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="gamesystem" data-theme="b" data-view="games">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="gamesrecommended.html">${TabSuggested}</a>
|
||||
<a href="games.html">${TabGames}</a>
|
||||
|
@ -4,7 +4,14 @@
|
||||
<title>${TitleMediaBrowser}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="indexPage" data-role="page" class="page type-home libraryPage allLibraryPage noSecondaryNavPage" data-theme="b">
|
||||
<div id="indexPage" data-role="page" class="page type-home libraryPage allLibraryPage noSecondaryNavPage backdropPage" data-theme="b" data-backdroptype="movie,series,game,book">
|
||||
|
||||
<!-- <div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="#" class="ui-btn-active">${TabHome}</a>
|
||||
<a href="#">${TabMyLibrary}</a>
|
||||
<a href="#">${TabFavorites}</a>
|
||||
</div>-->
|
||||
|
||||
<div data-role="content">
|
||||
|
||||
<table class="ehsContent">
|
||||
|
@ -5,6 +5,19 @@
|
||||
</head>
|
||||
<body>
|
||||
<div id="itemDetailPage" data-role="page" class="page libraryPage itemDetailPage" data-theme="b">
|
||||
|
||||
<div id="channelTabs" class="itemTabs" style="display: none;">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="#" class="ui-btn-active">${TabChannels}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="boxsetTabs" class="itemTabs" style="display: none;">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="#" class="ui-btn-active">${TabCollections}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="movieTabs" class="itemTabs" style="display: none;">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="movieslatest.html">${TabLatest}</a>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>${TitleMediaBrowser}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="moviesLatestPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||
<div id="moviesLatestPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="movie" data-theme="b" data-view="movies">
|
||||
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="#" class="ui-btn-active">${TabLatest}</a>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>${TitleMediaBrowser}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="moviesRecommendedPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||
<div id="moviesRecommendedPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="movie" data-theme="b" data-view="movies">
|
||||
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="movieslatest.html">${TabLatest}</a>
|
||||
@ -14,7 +14,6 @@
|
||||
<a href="moviepeople.html">${TabPeople}</a>
|
||||
<a href="moviestudios.html">${TabStudios}</a>
|
||||
</div>
|
||||
|
||||
<div data-role="content">
|
||||
|
||||
<table class="ehsContent">
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>${TitleMediaBrowser}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="musicRecommendedPage" data-role="page" class="page libraryPage" data-theme="b" data-view="music">
|
||||
<div id="musicRecommendedPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="musicartist" data-theme="b" data-view="music">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="#" class="ui-btn-active">${TabSuggested}</a>
|
||||
<a href="songs.html">${TabSongs}</a>
|
||||
|
106
dashboard-ui/scripts/backdrops.js
Normal file
106
dashboard-ui/scripts/backdrops.js
Normal file
@ -0,0 +1,106 @@
|
||||
(function ($, document) {
|
||||
|
||||
function getElement() {
|
||||
|
||||
var elem = $('.backdropContainer');
|
||||
|
||||
if (!elem.length) {
|
||||
|
||||
elem = $('<div class="backdropContainer"></div>').prependTo(document.body);
|
||||
}
|
||||
|
||||
return elem;
|
||||
}
|
||||
|
||||
function getRandom(min, max) {
|
||||
return Math.floor(Math.random() * (max - min) + min);
|
||||
}
|
||||
|
||||
function getBackdropItemIds(userId, types, parentId) {
|
||||
|
||||
var key = 'backdrops_' + userId + (types || '') + (parentId || '');
|
||||
|
||||
var deferred = $.Deferred();
|
||||
|
||||
var data = localStorage.getItem(key);
|
||||
|
||||
if (data) {
|
||||
|
||||
console.log('Found backdrop id list in cache. Key: ' + key)
|
||||
data = JSON.parse(data);
|
||||
deferred.resolveWith(null, [data]);
|
||||
} else {
|
||||
|
||||
var options = {
|
||||
|
||||
SortBy: "Random",
|
||||
Limit: 50,
|
||||
Recursive: true,
|
||||
IncludeItemTypes: types,
|
||||
ImageTypes: "Backdrop",
|
||||
//Ids: "8114409aa00a2722456c08e298f90bed",
|
||||
ParentId: parentId
|
||||
};
|
||||
|
||||
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
|
||||
|
||||
var images = result.Items.map(function (i) {
|
||||
return {
|
||||
id: i.Id,
|
||||
tag: i.BackdropImageTags[0]
|
||||
};
|
||||
});
|
||||
|
||||
localStorage.setItem(key, JSON.stringify(images));
|
||||
deferred.resolveWith(null, [images]);
|
||||
});
|
||||
}
|
||||
|
||||
return deferred.promise();
|
||||
}
|
||||
|
||||
function showBackdrop(type) {
|
||||
|
||||
getBackdropItemIds(Dashboard.getCurrentUserId(), type, LibraryMenu.getTopParentId()).done(function (images) {
|
||||
|
||||
if (images.length) {
|
||||
|
||||
var index = getRandom(0, images.length - 1);
|
||||
var item = images[index];
|
||||
|
||||
var imgUrl = ApiClient.getImageUrl(item.id, {
|
||||
type: "Backdrop",
|
||||
tag: item.tag
|
||||
});
|
||||
|
||||
getElement().css('backgroundImage', 'url(\'' + imgUrl + '\')');
|
||||
|
||||
} else {
|
||||
|
||||
clearBackdrop();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function clearBackdrop() {
|
||||
|
||||
$('.backdropContainer').css('backgroundImage', '');
|
||||
}
|
||||
|
||||
$(document).on('pagebeforeshow', ".backdropPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
// Gets real messy and jumps around the page when scrolling
|
||||
// Can be reviewed later.
|
||||
if ($.browser.msie) {
|
||||
$(page).removeClass('backdropPage');
|
||||
} else {
|
||||
var type = page.getAttribute('data-backdroptype');
|
||||
|
||||
showBackdrop(type);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
})(jQuery, document);
|
@ -184,6 +184,14 @@
|
||||
$('#movieTabs', page).show();
|
||||
}
|
||||
|
||||
if (item.Type == "ChannelVideoItem" || item.Type == "ChannelAudioItem" || item.Type == "ChannelCategoryItem") {
|
||||
$('#channelTabs', page).show();
|
||||
}
|
||||
|
||||
if (item.Type == "BoxSet") {
|
||||
$('#boxsetTabs', page).show();
|
||||
}
|
||||
|
||||
if (item.MediaType == "Game") {
|
||||
$('#gameTabs', page).show();
|
||||
}
|
||||
|
@ -704,7 +704,7 @@
|
||||
html += '<a data-itemid="' + item.Id + '" class="' + cssClass + '" data-mediasourcecount="' + mediaSourceCount + '" href="' + href + '">';
|
||||
|
||||
var style = "";
|
||||
options.lazy = false;
|
||||
|
||||
if (imgUrl && !options.lazy) {
|
||||
style += 'background-image:url(\'' + imgUrl + '\');';
|
||||
}
|
||||
|
@ -18,22 +18,30 @@
|
||||
|
||||
var html = '<div class="viewMenuBar ui-bar-b">';
|
||||
|
||||
html += '<button type="button" data-icon="bars" data-iconpos="notext" data-inline="true" title="Menu" class="libraryMenuButton" onclick="LibraryMenu.showLibraryMenu();" data-corners="false">Menu</button>';
|
||||
html += '<button type="button" data-role="none" title="Menu" onclick="LibraryMenu.showLibraryMenu();" class="headerButton libraryMenuButton headerButtonLeft"><img src="css/images/menu.png" /></button>';
|
||||
|
||||
html += '<a class="desktopHomeLink" href="index.html"><span>MEDIA</span><span class="mediaBrowserAccent">BROWSER</span></a>';
|
||||
html += '<a class="desktopHomeLink headerButton headerButtonLeft" href="index.html"><span>MEDIA</span><span class="mediaBrowserAccent">BROWSER</span></a>';
|
||||
|
||||
html += '<a class="viewMenuRemoteControlButton" href="nowplaying.html" data-role="button" data-icon="play" data-inline="true" data-iconpos="notext" title="Now Playing">Remote Control</a>';
|
||||
//html += '<a class="viewMenuRemoteControlButton" href="nowplaying.html" data-role="button" data-icon="play" data-inline="true" data-iconpos="notext" title="Now Playing">Remote Control</a>';
|
||||
|
||||
html += '<div class="viewMenuSecondary">';
|
||||
|
||||
html += '<button id="btnCast" class="btnCast btnDefaultCast" type="button" data-role="none"></button>';
|
||||
html += '<a href="nowplaying.html" class="headerButton headerButtonRight headerRemoteButton"><img src="css/images/remote.png" /></a>';
|
||||
|
||||
html += '<a class="viewMenuLink btnCurrentUser" href="#" onclick="Dashboard.showUserFlyout(this);">';
|
||||
html += '<button id="btnCast" class="btnCast btnDefaultCast headerButton headerButtonRight" type="button" data-role="none"><div class="btnCastImage"></div></button>';
|
||||
|
||||
html += '<button onclick="Search.showSearchPanel($.mobile.activePage);" type="button" data-role="none" class="headerButton headerButtonRight headerSearchButton"><img src="css/images/headersearch.png" /></button>';
|
||||
|
||||
if (user.Configuration.IsAdministrator) {
|
||||
html += '<a href="dashboard.html" class="headerButton headerButtonRight headerSettingsButton"><img src="css/images/items/folders/settings.png" /></a>';
|
||||
}
|
||||
|
||||
html += '<a class="headerButton headerButtonRight" href="#" onclick="Dashboard.showUserFlyout(this);">';
|
||||
|
||||
if (user.PrimaryImageTag) {
|
||||
|
||||
var url = ApiClient.getUserImageUrl(user.Id, {
|
||||
height: 24,
|
||||
height: 18,
|
||||
tag: user.PrimaryImageTag,
|
||||
type: "Primary"
|
||||
});
|
||||
@ -45,12 +53,6 @@
|
||||
|
||||
html += '</a>';
|
||||
|
||||
html += '<button onclick="Search.showSearchPanel($.mobile.activePage);" type="button" data-icon="search" data-inline="true" data-iconpos="notext">Search</button>';
|
||||
|
||||
if (user.Configuration.IsAdministrator) {
|
||||
html += '<a href="dashboard.html" data-role="button" data-icon="gear" data-inline="true" data-iconpos="notext">Dashboard</a>';
|
||||
}
|
||||
|
||||
html += '</div>';
|
||||
|
||||
html += '</div>';
|
||||
@ -68,9 +70,9 @@
|
||||
|
||||
return LibraryBrowser.getHref(item);
|
||||
}
|
||||
|
||||
|
||||
function getViewsHtml(user, counts, items, liveTvInfo) {
|
||||
|
||||
|
||||
var html = '';
|
||||
|
||||
html += items.map(function (i) {
|
||||
@ -98,7 +100,8 @@
|
||||
|
||||
if (user.Configuration.IsAdministrator) {
|
||||
html += '<div class="libraryMenuDivider"></div>';
|
||||
html += '<a class="viewMenuLink viewMenuTextLink lnkMediaFolder tvshowsViewMenu" data-itemid="editor" href="edititemmetadata.html">Metadata Manager</a>';
|
||||
html += '<a class="viewMenuLink viewMenuTextLink lnkMediaFolder dashboardViewMenu" data-itemid="editor" href="dashboard.html">Dashboard</a>';
|
||||
html += '<a class="viewMenuLink viewMenuTextLink lnkMediaFolder editorViewMenu" data-itemid="editor" href="edititemmetadata.html">Metadata Manager</a>';
|
||||
}
|
||||
|
||||
return html;
|
||||
@ -149,7 +152,7 @@
|
||||
}
|
||||
|
||||
updateLibraryNavLinks(page);
|
||||
|
||||
|
||||
return panel;
|
||||
}
|
||||
|
||||
@ -178,7 +181,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
function updateLibraryNavLinks(page) {
|
||||
function updateLibraryNavLinks(page, updateElements) {
|
||||
|
||||
page = $(page);
|
||||
|
||||
@ -236,22 +239,22 @@
|
||||
|
||||
});
|
||||
|
||||
}).on('pagebeforeshow', ".page", function () {
|
||||
}).on('pagebeforeshow', ".libraryPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
if ($(page).hasClass('libraryPage')) {
|
||||
updateLibraryNavLinks(page);
|
||||
|
||||
if (!$('.viewMenuBar', page).length) {
|
||||
if (!$('.viewMenuBar', page).length) {
|
||||
|
||||
Dashboard.getCurrentUser().done(function (user) {
|
||||
Dashboard.getCurrentUser().done(function (user) {
|
||||
|
||||
renderHeader(page, user);
|
||||
|
||||
updateLibraryNavLinks(page);
|
||||
});
|
||||
}
|
||||
renderHeader(page, user);
|
||||
|
||||
updateCastIcon();
|
||||
|
||||
updateLibraryNavLinks(page);
|
||||
});
|
||||
}
|
||||
|
||||
}).on('pageshow', ".libraryPage", function () {
|
||||
|
@ -5,9 +5,9 @@
|
||||
var html = '';
|
||||
|
||||
var title = '';
|
||||
|
||||
|
||||
switch (recommendation.RecommendationType) {
|
||||
|
||||
|
||||
case 'SimilarToRecentlyPlayed':
|
||||
title = 'Because you watched ' + recommendation.BaselineItemName;
|
||||
break;
|
||||
@ -23,7 +23,7 @@
|
||||
title = 'Starring ' + recommendation.BaselineItemName;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
html += '<h1 class="listHeader">' + title + '</h1>';
|
||||
|
||||
html += '<div>';
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
|
||||
$(document).on('pagebeforeshow', "#moviesRecommendedPage", function () {
|
||||
|
||||
var parentId = LibraryMenu.getTopParentId();
|
||||
@ -42,7 +42,7 @@
|
||||
var screenWidth = $(window).width();
|
||||
|
||||
var page = this;
|
||||
|
||||
|
||||
var options = {
|
||||
|
||||
SortBy: "DatePlayed",
|
||||
@ -63,20 +63,20 @@
|
||||
} else {
|
||||
$('#resumableSection', page).hide();
|
||||
}
|
||||
|
||||
|
||||
$('#resumableItems', page).html(LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
preferBackdrop: true,
|
||||
shape: 'backdrop',
|
||||
overlayText: screenWidth >= 600,
|
||||
showTitle: true
|
||||
|
||||
|
||||
})).createPosterItemMenus();
|
||||
|
||||
});
|
||||
|
||||
var url = ApiClient.getUrl("Movies/Recommendations", {
|
||||
|
||||
|
||||
userId: Dashboard.getCurrentUserId(),
|
||||
categoryLimit: screenWidth >= 1200 ? 6 : 3,
|
||||
itemLimit: screenWidth >= 1920 ? 10 : (screenWidth >= 1440 ? 8 : 6),
|
||||
@ -84,7 +84,7 @@
|
||||
ParentId: parentId
|
||||
});
|
||||
|
||||
$.getJSON(url).done(function(recommendations) {
|
||||
$.getJSON(url).done(function (recommendations) {
|
||||
|
||||
if (!recommendations.length) {
|
||||
|
||||
@ -96,6 +96,7 @@
|
||||
|
||||
$('.recommendations', page).html(html).createPosterItemMenus();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
SortBy: "DateCreated",
|
||||
SortOrder: "Descending",
|
||||
IncludeItemTypes: "MusicAlbum",
|
||||
Limit: screenWidth >= 1920 ? 7 : (screenWidth >= 1440 ? 7 : 5),
|
||||
Limit: screenWidth >= 1920 ? 8 : (screenWidth >= 1440 ? 8 : 5),
|
||||
Recursive: true,
|
||||
Fields: "PrimaryImageAspectRatio",
|
||||
ParentId: parentId
|
||||
@ -36,7 +36,7 @@
|
||||
SortBy: "DateCreated",
|
||||
SortOrder: "Descending",
|
||||
IncludeItemTypes: "Audio",
|
||||
Limit: screenWidth >= 1920 ? 7 : (screenWidth >= 1440 ? 7 : 5),
|
||||
Limit: screenWidth >= 1920 ? 8 : (screenWidth >= 1440 ? 8 : 5),
|
||||
Recursive: true,
|
||||
Fields: "PrimaryImageAspectRatio,AudioInfo",
|
||||
ParentId: parentId
|
||||
@ -59,7 +59,7 @@
|
||||
SortBy: "DatePlayed",
|
||||
SortOrder: "Descending",
|
||||
IncludeItemTypes: "Audio",
|
||||
Limit: screenWidth >= 1920 ? 7 : (screenWidth >= 1440 ? 7 : 5),
|
||||
Limit: screenWidth >= 1920 ? 8 : (screenWidth >= 1440 ? 8 : 5),
|
||||
Recursive: true,
|
||||
Fields: "PrimaryImageAspectRatio,AudioInfo",
|
||||
Filters: "IsPlayed",
|
||||
|
@ -1175,6 +1175,8 @@ var Dashboard = {
|
||||
getDisplayTime: function (ticks) {
|
||||
|
||||
var ticksPerHour = 36000000000;
|
||||
var ticksPerMinute = 600000000;
|
||||
var ticksPerSecond = 10000000;
|
||||
|
||||
var parts = [];
|
||||
|
||||
@ -1187,8 +1189,6 @@ var Dashboard = {
|
||||
|
||||
ticks -= (hours * ticksPerHour);
|
||||
|
||||
var ticksPerMinute = 600000000;
|
||||
|
||||
var minutes = ticks / ticksPerMinute;
|
||||
minutes = Math.floor(minutes);
|
||||
|
||||
@ -1199,10 +1199,8 @@ var Dashboard = {
|
||||
}
|
||||
parts.push(minutes);
|
||||
|
||||
var ticksPerSecond = 10000000;
|
||||
|
||||
var seconds = ticks / ticksPerSecond;
|
||||
seconds = Math.round(seconds);
|
||||
seconds = Math.floor(seconds);
|
||||
|
||||
if (seconds < 10) {
|
||||
seconds = '0' + seconds;
|
||||
|
@ -29,6 +29,7 @@
|
||||
} else {
|
||||
this.setAttribute("src", source);
|
||||
}
|
||||
this.setAttribute("data-src", '');
|
||||
if (typeof callback === "function") callback.call(this);
|
||||
}
|
||||
});
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>${TitleMediaBrowser}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="tvNextUpPage" data-role="page" class="page libraryPage" data-theme="b" data-view="tv">
|
||||
<div id="tvNextUpPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="series" data-theme="b" data-view="tv">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="tvrecommended.html">${TabSuggested}</a>
|
||||
<a href="#" class="ui-btn-active">${TabLatest}</a>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>${TitleMediaBrowser}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="tvRecommendedPage" data-role="page" class="page libraryPage" data-theme="b" data-view="tv">
|
||||
<div id="tvRecommendedPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="series" data-theme="b" data-view="tv">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="#" class="ui-btn-active">${TabSuggested}</a>
|
||||
<a href="tvlatest.html">${TabLatest}</a>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>${TitleMediaBrowser}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="tvUpcomingPage" data-role="page" class="page libraryPage" data-theme="b" data-view="tv">
|
||||
<div id="tvUpcomingPage" data-role="page" class="page libraryPage backdropPage" data-backdroptype="series" data-theme="b" data-view="tv">
|
||||
<div class="libraryViewNav scopedLibraryViewNav">
|
||||
<a href="tvrecommended.html">${TabSuggested}</a>
|
||||
<a href="tvlatest.html">${TabLatest}</a>
|
||||
|
Loading…
Reference in New Issue
Block a user