mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
move classes to portable server project
This commit is contained in:
parent
1c0379bee1
commit
c203b7253b
9 changed files with 67 additions and 88 deletions
|
@ -184,6 +184,10 @@ define(['browser'], function (browser) {
|
|||
case 'ts':
|
||||
supported = testCanPlayTs();
|
||||
videoCodecs.push('h264');
|
||||
if (canPlayH265()) {
|
||||
videoCodecs.push('h265');
|
||||
videoCodecs.push('hevc');
|
||||
}
|
||||
profileContainer = 'ts,mpegts';
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -85,7 +85,7 @@
|
|||
}
|
||||
|
||||
.homePageSection {
|
||||
margin-top: 30px;
|
||||
margin-top: 3em;
|
||||
}
|
||||
|
||||
.sectionHeaderButton {
|
||||
|
@ -132,12 +132,12 @@
|
|||
}
|
||||
|
||||
.homePageSection h1 {
|
||||
padding-left: 2vw;
|
||||
padding-left: 3.1vw;
|
||||
}
|
||||
|
||||
.homePageSection .itemsContainer {
|
||||
padding-left: 1vw;
|
||||
padding-right: 1vw;
|
||||
padding-left: 2.5vw;
|
||||
padding-right: 2.5vw;
|
||||
}
|
||||
|
||||
@media all and (min-width: 1200px) {
|
||||
|
|
|
@ -70,7 +70,7 @@ h1, h1 a {
|
|||
}
|
||||
|
||||
.cardImageContainer {
|
||||
border-radius: 7px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.noSecondaryNavPage .itemBackdrop {
|
||||
|
@ -104,3 +104,8 @@ h1, h1 a {
|
|||
-webkit-backdrop-filter: blur(5px);
|
||||
backdrop-filter: blur(5px);
|
||||
}
|
||||
|
||||
.cardOverlayButton {
|
||||
-webkit-backdrop-filter: blur(5px);
|
||||
backdrop-filter: blur(5px);
|
||||
}
|
||||
|
|
|
@ -41,39 +41,34 @@
|
|||
<a href="livetvitems.html?type=Programs&IsAiring=true" class="clearLink" style="margin-left: 1em; vertical-align: middle;"><button is="emby-button" type="button" class="raised more mini noIcon">${ButtonMoreItems}</button></a>
|
||||
</div>
|
||||
<div is="emby-itemscontainer" class="activeProgramItems itemsContainer"></div>
|
||||
<br />
|
||||
</div>
|
||||
<div id="upcomingTvMovies" class="homePageSection" style="margin-top: 1em;">
|
||||
<div id="upcomingTvMovies" class="homePageSection">
|
||||
<div>
|
||||
<h1 class="listHeader" style="display: inline-block; vertical-align: middle;">${HeaderUpcomingMovies}</h1>
|
||||
<a href="livetvitems.html?type=Programs&IsMovie=true" class="clearLink" style="margin-left: 1em; vertical-align: middle;"><button is="emby-button" type="button" class="raised more mini noIcon">${ButtonMoreItems}</button></a>
|
||||
</div>
|
||||
<div is="emby-itemscontainer" class="upcomingTvMovieItems itemsContainer"></div>
|
||||
<br />
|
||||
</div>
|
||||
<div id="upcomingSports" class="homePageSection" style="margin-top: 1em;">
|
||||
<div id="upcomingSports" class="homePageSection">
|
||||
<div>
|
||||
<h1 class="listHeader" style="display: inline-block; vertical-align: middle;">${HeaderUpcomingSports}</h1>
|
||||
<a href="livetvitems.html?type=Programs&IsSports=true" class="clearLink" style="margin-left: 1em; vertical-align: middle;"><button is="emby-button" type="button" class="raised more mini noIcon">${ButtonMoreItems}</button></a>
|
||||
</div>
|
||||
<div is="emby-itemscontainer" class="upcomingSportsItems itemsContainer"></div>
|
||||
<br />
|
||||
</div>
|
||||
<div id="upcomingKids" class="homePageSection" style="margin-top: 1em;">
|
||||
<div id="upcomingKids" class="homePageSection">
|
||||
<div>
|
||||
<h1 class="listHeader" style="display: inline-block; vertical-align: middle;">${HeaderUpcomingForKids}</h1>
|
||||
<a href="livetvitems.html?type=Programs&IsKids=true" class="clearLink" style="margin-left: 1em; vertical-align: middle;"><button is="emby-button" type="button" class="raised more mini noIcon">${ButtonMoreItems}</button></a>
|
||||
</div>
|
||||
<div is="emby-itemscontainer" class="upcomingKidsItems itemsContainer"></div>
|
||||
<br />
|
||||
</div>
|
||||
<div id="upcomingPrograms" class="homePageSection" style="margin-top: 1em;">
|
||||
<div id="upcomingPrograms" class="homePageSection">
|
||||
<div>
|
||||
<h1 class="listHeader" style="display: inline-block; vertical-align: middle;">${HeaderUpcomingPrograms}</h1>
|
||||
<a href="livetvitems.html?type=Programs&IsKids=false&IsMovie=false&IsSports=false" class="clearLink" style="margin-left: 1em; vertical-align: middle;"><button is="emby-button" type="button" class="raised more mini noIcon">${ButtonMoreItems}</button></a>
|
||||
</div>
|
||||
<div is="emby-itemscontainer" class="upcomingProgramItems itemsContainer"></div>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
<div class="pageTabContent ehsContent fullWidth flexPageTabContent absolutePageTabContent" id="guideTab" data-index="1" style="width:auto;padding-top:0; padding-bottom: 0;">
|
||||
|
|
|
@ -110,17 +110,14 @@
|
|||
page.querySelector('#selectHomeSection3').value = displayPreferences.CustomPrefs.home2 || '';
|
||||
page.querySelector('#selectHomeSection4').value = displayPreferences.CustomPrefs.home3 || '';
|
||||
|
||||
var promise1 = ApiClient.getItems(user.Id, {
|
||||
sortBy: "SortName"
|
||||
});
|
||||
var promise2 = ApiClient.getUserViews({}, user.Id);
|
||||
var promise3 = ApiClient.getJSON(ApiClient.getUrl("Users/" + user.Id + "/GroupingOptions"));
|
||||
var promise1 = ApiClient.getUserViews({}, user.Id);
|
||||
var promise2 = ApiClient.getJSON(ApiClient.getUrl("Users/" + user.Id + "/GroupingOptions"));
|
||||
|
||||
Promise.all([promise1, promise2, promise3]).then(function (responses) {
|
||||
Promise.all([promise1, promise2]).then(function (responses) {
|
||||
|
||||
renderViews(page, user, responses[2]);
|
||||
renderViews(page, user, responses[1]);
|
||||
renderLatestItems(page, user, responses[0]);
|
||||
renderViewOrder(page, user, responses[1]);
|
||||
renderViewOrder(page, user, responses[0]);
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
|
|
|
@ -252,23 +252,7 @@
|
|||
return html;
|
||||
}
|
||||
|
||||
function loadRecentlyAdded(elem, user) {
|
||||
|
||||
var moviesFrag = document.createElement('div');
|
||||
var episodesFrag = document.createElement('div');
|
||||
|
||||
elem.classList.remove('homePageSection');
|
||||
moviesFrag.classList.add('homePageSection');
|
||||
episodesFrag.classList.add('homePageSection');
|
||||
|
||||
elem.appendChild(moviesFrag);
|
||||
elem.appendChild(episodesFrag);
|
||||
|
||||
loadLatestMovies(moviesFrag, user);
|
||||
loadLatestEpisodes(episodesFrag, user);
|
||||
}
|
||||
|
||||
function loadLatestMovies(elem, user) {
|
||||
function renderLatestSection(elem, user, parent) {
|
||||
|
||||
var options = {
|
||||
|
||||
|
@ -276,7 +260,7 @@
|
|||
Fields: "PrimaryImageAspectRatio,BasicSyncInfo",
|
||||
ImageTypeLimit: 1,
|
||||
EnableImageTypes: "Primary,Backdrop,Thumb",
|
||||
IncludeItemTypes: "Movie"
|
||||
ParentId: parent.Id
|
||||
};
|
||||
|
||||
return ApiClient.getJSON(ApiClient.getUrl('Users/' + user.Id + '/Items/Latest', options)).then(function (items) {
|
||||
|
@ -286,21 +270,28 @@
|
|||
var scrollX = enableScrollX();
|
||||
|
||||
if (items.length) {
|
||||
html += '<h1 class="listHeader">' + Globalize.translate('HeaderLatestMovies') + '</h1>';
|
||||
html += '<h1 class="listHeader">' + Globalize.translate('LatestFromLibrary', parent.Name) + '</h1>';
|
||||
if (scrollX) {
|
||||
html += '<div is="emby-itemscontainer" class="hiddenScrollX itemsContainer">';
|
||||
} else {
|
||||
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">';
|
||||
}
|
||||
|
||||
var viewType = parent.CollectionType;
|
||||
|
||||
var shape = viewType === 'movies' ?
|
||||
getPortraitShape() :
|
||||
getThumbShape();
|
||||
|
||||
html += cardBuilder.getCardsHtml({
|
||||
items: items,
|
||||
shape: getPortraitShape(),
|
||||
shape: shape,
|
||||
preferThumb: viewType != 'movies',
|
||||
showUnplayedIndicator: false,
|
||||
showChildCountIndicator: true,
|
||||
lazy: true,
|
||||
context: 'home',
|
||||
centerText: true,
|
||||
overlayPlayButton: true,
|
||||
overlayPlayButton: viewType !== 'photos',
|
||||
allowBottomPadding: !enableScrollX()
|
||||
});
|
||||
html += '</div>';
|
||||
|
@ -311,47 +302,38 @@
|
|||
});
|
||||
}
|
||||
|
||||
function loadLatestEpisodes(elem, user) {
|
||||
function loadRecentlyAdded(elem, user) {
|
||||
|
||||
var options = {
|
||||
elem.classList.remove('homePageSection');
|
||||
|
||||
Limit: 12,
|
||||
Fields: "PrimaryImageAspectRatio,BasicSyncInfo",
|
||||
ImageTypeLimit: 1,
|
||||
EnableImageTypes: "Primary,Backdrop,Thumb",
|
||||
IncludeItemTypes: "Episode"
|
||||
};
|
||||
return getUserViews(user.Id).then(function (items) {
|
||||
|
||||
return ApiClient.getJSON(ApiClient.getUrl('Users/' + user.Id + '/Items/Latest', options)).then(function (items) {
|
||||
var excludeViewTypes = ['playlists', 'livetv', 'boxsets', 'channels'];
|
||||
var excludeItemTypes = ['Channel'];
|
||||
|
||||
var html = '';
|
||||
for (var i = 0, length = items.length; i < length; i++) {
|
||||
|
||||
var scrollX = enableScrollX();
|
||||
var item = items[i];
|
||||
|
||||
if (items.length) {
|
||||
html += '<h1 class="listHeader">' + Globalize.translate('HeaderLatestEpisodes') + '</h1>';
|
||||
if (scrollX) {
|
||||
html += '<div is="emby-itemscontainer" class="hiddenScrollX itemsContainer">';
|
||||
} else {
|
||||
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">';
|
||||
if (user.Configuration.LatestItemsExcludes.indexOf(item.Id) !== -1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
html += cardBuilder.getCardsHtml({
|
||||
items: items,
|
||||
preferThumb: true,
|
||||
shape: getThumbShape(),
|
||||
showUnplayedIndicator: false,
|
||||
showChildCountIndicator: true,
|
||||
lazy: true,
|
||||
context: 'home',
|
||||
overlayPlayButton: true,
|
||||
allowBottomPadding: !enableScrollX()
|
||||
});
|
||||
html += '</div>';
|
||||
if (excludeViewTypes.indexOf(item.CollectionType || []) !== -1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
elem.innerHTML = html;
|
||||
ImageLoader.lazyChildren(elem);
|
||||
// not implemented yet
|
||||
if (excludeItemTypes.indexOf(item.Type) !== -1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var frag = document.createElement('div');
|
||||
frag.classList.add('homePageSection');
|
||||
elem.appendChild(frag);
|
||||
|
||||
renderLatestSection(frag, user, item);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -1694,14 +1694,9 @@ var AppInfo = {};
|
|||
|
||||
if (Dashboard.isRunningInCordova() && browserInfo.android) {
|
||||
|
||||
if (MainActivity.getChromeVersion() >= 48) {
|
||||
//define("audiorenderer", ["scripts/htmlmediarenderer"]);
|
||||
window.VlcAudio = true;
|
||||
define("audiorenderer", ["cordova/android/vlcplayer"]);
|
||||
} else {
|
||||
window.VlcAudio = true;
|
||||
define("audiorenderer", ["cordova/android/vlcplayer"]);
|
||||
}
|
||||
define("videorenderer", ["cordova/android/vlcplayer"]);
|
||||
}
|
||||
else if (Dashboard.isRunningInCordova() && browserInfo.safari) {
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
preferThumb: true,
|
||||
context: 'tv',
|
||||
lazy: true,
|
||||
overlayPlayButton: true
|
||||
overlayMoreButton: true
|
||||
});
|
||||
}
|
||||
else if (viewStyle == "ThumbCard") {
|
||||
|
@ -160,7 +160,7 @@
|
|||
context: 'tv',
|
||||
centerText: true,
|
||||
lazy: true,
|
||||
overlayPlayButton: true
|
||||
overlayMoreButton: true
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -2020,5 +2020,6 @@
|
|||
"LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.",
|
||||
"ButtonPlayExternalPlayer": "Play with external player",
|
||||
"NotScheduledToRecord": "Not scheduled to record",
|
||||
"SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update."
|
||||
"SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update.",
|
||||
"LatestFromLibrary": "Latest {0}"
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue