mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update translations
This commit is contained in:
parent
59ba9520de
commit
fc9519999d
6 changed files with 393 additions and 357 deletions
|
@ -246,6 +246,21 @@
|
||||||
background-position: center center;
|
background-position: center center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.iconCardImage {
|
||||||
|
text-align: center;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardImage .fa {
|
||||||
|
color: rgb(255, 255, 255);
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
font-size: 50px;
|
||||||
|
margin: auto;
|
||||||
|
top: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
.bannerCard {
|
.bannerCard {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1116,54 +1116,52 @@
|
||||||
squareSize = posterInfo.smallSquareSize;
|
squareSize = posterInfo.smallSquareSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var dateText;
|
||||||
|
|
||||||
for (var i = 0, length = items.length; i < length; i++) {
|
for (var i = 0, length = items.length; i < length; i++) {
|
||||||
|
|
||||||
var item = items[i];
|
var item = items[i];
|
||||||
|
|
||||||
|
dateText = null;
|
||||||
|
|
||||||
primaryImageAspectRatio = LibraryBrowser.getAveragePrimaryImageAspectRatio([item]);
|
primaryImageAspectRatio = LibraryBrowser.getAveragePrimaryImageAspectRatio([item]);
|
||||||
|
|
||||||
if (options.showPremiereDateIndex) {
|
if (options.showPremiereDateIndex) {
|
||||||
|
|
||||||
var futureDateText;
|
|
||||||
|
|
||||||
if (item.PremiereDate) {
|
if (item.PremiereDate) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
futureDateText = LibraryBrowser.getFutureDateText(parseISO8601Date(item.PremiereDate, { toLocal: true }), true);
|
dateText = LibraryBrowser.getFutureDateText(parseISO8601Date(item.PremiereDate, { toLocal: true }), true);
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var val = futureDateText || Globalize.translate('HeaderUnknownDate');
|
var newIndexValue = dateText || Globalize.translate('HeaderUnknownDate');
|
||||||
|
|
||||||
if (val != currentIndexValue) {
|
if (newIndexValue != currentIndexValue) {
|
||||||
|
|
||||||
html += '<h2 class="timelineHeader detailSectionHeader" style="text-align:center;">' + val + '</h2>';
|
html += '<h2 class="timelineHeader detailSectionHeader" style="text-align:center;">' + newIndexValue + '</h2>';
|
||||||
currentIndexValue = val;
|
currentIndexValue = newIndexValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (options.showStartDateIndex) {
|
else if (options.showStartDateIndex) {
|
||||||
|
|
||||||
var futureDateText;
|
|
||||||
|
|
||||||
if (item.StartDate) {
|
if (item.StartDate) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
futureDateText = LibraryBrowser.getFutureDateText(parseISO8601Date(item.StartDate, { toLocal: true }), true);
|
dateText = LibraryBrowser.getFutureDateText(parseISO8601Date(item.StartDate, { toLocal: true }), true);
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var val = futureDateText || Globalize.translate('HeaderUnknownDate');
|
var newIndexValue = dateText || Globalize.translate('HeaderUnknownDate');
|
||||||
|
|
||||||
if (val != currentIndexValue) {
|
if (newIndexValue != currentIndexValue) {
|
||||||
|
|
||||||
html += '<h2 class="timelineHeader detailSectionHeader" style="text-align:center;">' + val + '</h2>';
|
html += '<h2 class="timelineHeader detailSectionHeader" style="text-align:center;">' + newIndexValue + '</h2>';
|
||||||
currentIndexValue = val;
|
currentIndexValue = newIndexValue;
|
||||||
}
|
}
|
||||||
} else if (options.timeline) {
|
} else if (options.timeline) {
|
||||||
var year = item.ProductionYear || Globalize.translate('HeaderUnknownYear');
|
var year = item.ProductionYear || Globalize.translate('HeaderUnknownYear');
|
||||||
|
@ -1175,343 +1173,359 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var imgUrl = null;
|
html += LibraryBrowser.getPosterViewItemHtml(item, i, options, primaryImageAspectRatio, thumbWidth, posterWidth, squareSize, bannerWidth);
|
||||||
var background = null;
|
}
|
||||||
var width = null;
|
|
||||||
var height = null;
|
|
||||||
|
|
||||||
var forceName = false;
|
return html;
|
||||||
|
},
|
||||||
|
|
||||||
var enableImageEnhancers = options.enableImageEnhancers !== false;
|
getPosterViewItemHtml: function (item, index, options, primaryImageAspectRatio, thumbWidth, posterWidth, squareSize, bannerWidth) {
|
||||||
|
|
||||||
if (options.autoThumb && item.ImageTags && item.ImageTags.Primary && item.PrimaryImageAspectRatio && item.PrimaryImageAspectRatio >= 1.5) {
|
var html = '';
|
||||||
|
var imgUrl = null;
|
||||||
width = posterWidth;
|
var icon;
|
||||||
height = primaryImageAspectRatio ? Math.round(posterWidth / primaryImageAspectRatio) : null;
|
var background = null;
|
||||||
|
var width = null;
|
||||||
imgUrl = ApiClient.getImageUrl(item.Id, {
|
var height = null;
|
||||||
type: "Primary",
|
|
||||||
height: height,
|
var forceName = false;
|
||||||
width: width,
|
|
||||||
tag: item.ImageTags.Primary,
|
var enableImageEnhancers = options.enableImageEnhancers !== false;
|
||||||
enableImageEnhancers: enableImageEnhancers
|
|
||||||
});
|
if (options.autoThumb && item.ImageTags && item.ImageTags.Primary && item.PrimaryImageAspectRatio && item.PrimaryImageAspectRatio >= 1.5) {
|
||||||
|
|
||||||
} else if (options.autoThumb && item.ImageTags && item.ImageTags.Thumb) {
|
width = posterWidth;
|
||||||
|
height = primaryImageAspectRatio ? Math.round(posterWidth / primaryImageAspectRatio) : null;
|
||||||
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
|
||||||
type: "Thumb",
|
imgUrl = ApiClient.getImageUrl(item.Id, {
|
||||||
maxWidth: thumbWidth,
|
type: "Primary",
|
||||||
tag: item.ImageTags.Thumb,
|
height: height,
|
||||||
enableImageEnhancers: enableImageEnhancers
|
width: width,
|
||||||
});
|
tag: item.ImageTags.Primary,
|
||||||
|
enableImageEnhancers: enableImageEnhancers
|
||||||
} else if (options.preferBackdrop && item.BackdropImageTags && item.BackdropImageTags.length) {
|
});
|
||||||
|
|
||||||
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
} else if (options.autoThumb && item.ImageTags && item.ImageTags.Thumb) {
|
||||||
type: "Backdrop",
|
|
||||||
maxWidth: thumbWidth,
|
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
||||||
tag: item.BackdropImageTags[0],
|
type: "Thumb",
|
||||||
enableImageEnhancers: enableImageEnhancers
|
maxWidth: thumbWidth,
|
||||||
});
|
tag: item.ImageTags.Thumb,
|
||||||
|
enableImageEnhancers: enableImageEnhancers
|
||||||
} else if (options.preferThumb && item.ImageTags && item.ImageTags.Thumb) {
|
});
|
||||||
|
|
||||||
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
} else if (options.preferBackdrop && item.BackdropImageTags && item.BackdropImageTags.length) {
|
||||||
type: "Thumb",
|
|
||||||
maxWidth: thumbWidth,
|
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
||||||
tag: item.ImageTags.Thumb,
|
type: "Backdrop",
|
||||||
enableImageEnhancers: enableImageEnhancers
|
maxWidth: thumbWidth,
|
||||||
});
|
tag: item.BackdropImageTags[0],
|
||||||
|
enableImageEnhancers: enableImageEnhancers
|
||||||
} else if (options.preferBanner && item.ImageTags && item.ImageTags.Banner) {
|
});
|
||||||
|
|
||||||
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
} else if (options.preferThumb && item.ImageTags && item.ImageTags.Thumb) {
|
||||||
type: "Banner",
|
|
||||||
maxWidth: bannerWidth,
|
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
||||||
tag: item.ImageTags.Banner,
|
type: "Thumb",
|
||||||
enableImageEnhancers: enableImageEnhancers
|
maxWidth: thumbWidth,
|
||||||
});
|
tag: item.ImageTags.Thumb,
|
||||||
|
enableImageEnhancers: enableImageEnhancers
|
||||||
} else if (options.preferThumb && item.SeriesThumbImageTag && options.inheritThumb !== false) {
|
});
|
||||||
|
|
||||||
imgUrl = ApiClient.getScaledImageUrl(item.SeriesId, {
|
} else if (options.preferBanner && item.ImageTags && item.ImageTags.Banner) {
|
||||||
type: "Thumb",
|
|
||||||
maxWidth: thumbWidth,
|
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
||||||
tag: item.SeriesThumbImageTag,
|
type: "Banner",
|
||||||
enableImageEnhancers: enableImageEnhancers
|
maxWidth: bannerWidth,
|
||||||
});
|
tag: item.ImageTags.Banner,
|
||||||
|
enableImageEnhancers: enableImageEnhancers
|
||||||
} else if (options.preferThumb && item.ParentThumbItemId && options.inheritThumb !== false) {
|
});
|
||||||
|
|
||||||
imgUrl = ApiClient.getThumbImageUrl(item.ParentThumbItemId, {
|
} else if (options.preferThumb && item.SeriesThumbImageTag && options.inheritThumb !== false) {
|
||||||
type: "Thumb",
|
|
||||||
maxWidth: thumbWidth,
|
imgUrl = ApiClient.getScaledImageUrl(item.SeriesId, {
|
||||||
enableImageEnhancers: enableImageEnhancers
|
type: "Thumb",
|
||||||
});
|
maxWidth: thumbWidth,
|
||||||
|
tag: item.SeriesThumbImageTag,
|
||||||
} else if (options.preferThumb && item.BackdropImageTags && item.BackdropImageTags.length) {
|
enableImageEnhancers: enableImageEnhancers
|
||||||
|
});
|
||||||
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
|
||||||
type: "Backdrop",
|
} else if (options.preferThumb && item.ParentThumbItemId && options.inheritThumb !== false) {
|
||||||
maxWidth: thumbWidth,
|
|
||||||
tag: item.BackdropImageTags[0],
|
imgUrl = ApiClient.getThumbImageUrl(item.ParentThumbItemId, {
|
||||||
enableImageEnhancers: enableImageEnhancers
|
type: "Thumb",
|
||||||
});
|
maxWidth: thumbWidth,
|
||||||
|
enableImageEnhancers: enableImageEnhancers
|
||||||
forceName = true;
|
});
|
||||||
|
|
||||||
} else if (item.ImageTags && item.ImageTags.Primary) {
|
} else if (options.preferThumb && item.BackdropImageTags && item.BackdropImageTags.length) {
|
||||||
|
|
||||||
width = posterWidth;
|
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
||||||
height = primaryImageAspectRatio ? Math.round(posterWidth / primaryImageAspectRatio) : null;
|
type: "Backdrop",
|
||||||
|
maxWidth: thumbWidth,
|
||||||
imgUrl = ApiClient.getImageUrl(item.Id, {
|
tag: item.BackdropImageTags[0],
|
||||||
type: "Primary",
|
enableImageEnhancers: enableImageEnhancers
|
||||||
height: height,
|
});
|
||||||
width: width,
|
|
||||||
tag: item.ImageTags.Primary,
|
forceName = true;
|
||||||
enableImageEnhancers: enableImageEnhancers
|
|
||||||
});
|
} else if (item.ImageTags && item.ImageTags.Primary) {
|
||||||
|
|
||||||
}
|
width = posterWidth;
|
||||||
else if (item.ParentPrimaryImageTag) {
|
height = primaryImageAspectRatio ? Math.round(posterWidth / primaryImageAspectRatio) : null;
|
||||||
|
|
||||||
imgUrl = ApiClient.getImageUrl(item.ParentPrimaryImageItemId, {
|
imgUrl = ApiClient.getImageUrl(item.Id, {
|
||||||
type: "Primary",
|
type: "Primary",
|
||||||
width: posterWidth,
|
height: height,
|
||||||
tag: item.ParentPrimaryImageTag,
|
width: width,
|
||||||
enableImageEnhancers: enableImageEnhancers
|
tag: item.ImageTags.Primary,
|
||||||
});
|
enableImageEnhancers: enableImageEnhancers
|
||||||
}
|
});
|
||||||
else if (item.AlbumId && item.AlbumPrimaryImageTag) {
|
|
||||||
|
|
||||||
height = squareSize;
|
|
||||||
width = primaryImageAspectRatio ? Math.round(height * primaryImageAspectRatio) : null;
|
|
||||||
|
|
||||||
imgUrl = ApiClient.getScaledImageUrl(item.AlbumId, {
|
|
||||||
type: "Primary",
|
|
||||||
height: height,
|
|
||||||
width: width,
|
|
||||||
tag: item.AlbumPrimaryImageTag,
|
|
||||||
enableImageEnhancers: enableImageEnhancers
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
else if (item.Type == 'Season' && item.ImageTags && item.ImageTags.Thumb) {
|
|
||||||
|
|
||||||
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
|
||||||
type: "Thumb",
|
|
||||||
maxWidth: thumbWidth,
|
|
||||||
tag: item.ImageTags.Thumb,
|
|
||||||
enableImageEnhancers: enableImageEnhancers
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
else if (item.BackdropImageTags && item.BackdropImageTags.length) {
|
|
||||||
|
|
||||||
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
|
||||||
type: "Backdrop",
|
|
||||||
maxWidth: thumbWidth,
|
|
||||||
tag: item.BackdropImageTags[0],
|
|
||||||
enableImageEnhancers: enableImageEnhancers
|
|
||||||
});
|
|
||||||
|
|
||||||
} else if (item.ImageTags && item.ImageTags.Thumb) {
|
|
||||||
|
|
||||||
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
|
||||||
type: "Thumb",
|
|
||||||
maxWidth: thumbWidth,
|
|
||||||
tag: item.ImageTags.Thumb,
|
|
||||||
enableImageEnhancers: enableImageEnhancers
|
|
||||||
});
|
|
||||||
|
|
||||||
} else if (item.SeriesThumbImageTag) {
|
|
||||||
|
|
||||||
imgUrl = ApiClient.getScaledImageUrl(item.SeriesId, {
|
|
||||||
type: "Thumb",
|
|
||||||
maxWidth: thumbWidth,
|
|
||||||
tag: item.SeriesThumbImageTag,
|
|
||||||
enableImageEnhancers: enableImageEnhancers
|
|
||||||
});
|
|
||||||
|
|
||||||
} else if (item.ParentThumbItemId) {
|
|
||||||
|
|
||||||
imgUrl = ApiClient.getThumbImageUrl(item, {
|
|
||||||
type: "Thumb",
|
|
||||||
maxWidth: thumbWidth,
|
|
||||||
enableImageEnhancers: enableImageEnhancers
|
|
||||||
});
|
|
||||||
|
|
||||||
} else if (item.MediaType == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist") {
|
|
||||||
|
|
||||||
if (item.Name && options.showTitle) {
|
|
||||||
imgUrl = 'css/images/items/list/audio.png';
|
|
||||||
}
|
|
||||||
background = defaultBackground;
|
|
||||||
|
|
||||||
} else if (item.Type == "Recording" || item.Type == "Program" || item.Type == "TvChannel") {
|
|
||||||
|
|
||||||
if (item.Name && options.showTitle) {
|
|
||||||
imgUrl = 'css/images/items/list/collection.png';
|
|
||||||
}
|
|
||||||
|
|
||||||
background = defaultBackground;
|
|
||||||
} else if (item.MediaType == "Video" || item.Type == "Season" || item.Type == "Series") {
|
|
||||||
|
|
||||||
if (item.Name && options.showTitle) {
|
|
||||||
imgUrl = 'css/images/items/list/video.png';
|
|
||||||
}
|
|
||||||
background = defaultBackground;
|
|
||||||
} else if (item.Type == "Person") {
|
|
||||||
|
|
||||||
if (item.Name && options.showTitle) {
|
|
||||||
imgUrl = 'css/images/items/list/person.png';
|
|
||||||
}
|
|
||||||
background = defaultBackground;
|
|
||||||
} else {
|
|
||||||
if (item.Name && options.showTitle) {
|
|
||||||
imgUrl = 'css/images/items/list/collection.png';
|
|
||||||
}
|
|
||||||
background = defaultBackground;
|
|
||||||
}
|
|
||||||
|
|
||||||
var cssClass = "card";
|
|
||||||
|
|
||||||
if (options.transparent !== false) {
|
|
||||||
cssClass += " transparentCard";
|
|
||||||
}
|
|
||||||
|
|
||||||
cssClass += ' ' + options.shape + 'Card';
|
|
||||||
|
|
||||||
var mediaSourceCount = item.MediaSourceCount || 1;
|
|
||||||
|
|
||||||
var href = options.linkItem === false ? '#' : LibraryBrowser.getHref(item, options.context);
|
|
||||||
|
|
||||||
if (item.UserData) {
|
|
||||||
cssClass += ' ' + LibraryBrowser.getUserDataCssClass(item.UserData.Key);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.showChildCountIndicator && item.ChildCount) {
|
|
||||||
cssClass += ' groupedCard';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.showTitle && !options.overlayText) {
|
|
||||||
cssClass += ' bottomPaddedCard';
|
|
||||||
}
|
|
||||||
|
|
||||||
var dataAttributes = LibraryBrowser.getItemDataAttributes(item, options, i);
|
|
||||||
|
|
||||||
var defaultAction = options.defaultAction;
|
|
||||||
if (defaultAction == 'play' || defaultAction == 'playallfromhere') {
|
|
||||||
if (item.PlayAccess != 'Full') {
|
|
||||||
defaultAction = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var defaultActionAttribute = defaultAction ? (' data-action="' + defaultAction + '"') : '';
|
|
||||||
|
|
||||||
// card
|
|
||||||
html += '<div' + dataAttributes + ' class="' + cssClass + '">';
|
|
||||||
|
|
||||||
var style = "";
|
|
||||||
|
|
||||||
if (imgUrl && !options.lazy) {
|
|
||||||
style += 'background-image:url(\'' + imgUrl + '\');';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (background) {
|
|
||||||
style += "background-color:" + background + ";";
|
|
||||||
}
|
|
||||||
|
|
||||||
var imageCssClass = 'cardImage';
|
|
||||||
if (options.coverImage) {
|
|
||||||
imageCssClass += " coveredCardImage";
|
|
||||||
}
|
|
||||||
if (options.centerImage) {
|
|
||||||
imageCssClass += " centeredCardImage";
|
|
||||||
}
|
|
||||||
|
|
||||||
var dataSrc = "";
|
|
||||||
|
|
||||||
if (options.lazy && imgUrl) {
|
|
||||||
imageCssClass += " lazy";
|
|
||||||
dataSrc = ' data-src="' + imgUrl + '"';
|
|
||||||
}
|
|
||||||
|
|
||||||
var cardboxCssClass = 'cardBox';
|
|
||||||
|
|
||||||
if (options.cardLayout) {
|
|
||||||
cardboxCssClass += ' visualCardBox';
|
|
||||||
}
|
|
||||||
html += '<div class="' + cardboxCssClass + '">';
|
|
||||||
html += '<div class="cardScalable">';
|
|
||||||
|
|
||||||
html += '<div class="cardPadder"></div>';
|
|
||||||
|
|
||||||
var anchorCssClass = "cardContent";
|
|
||||||
|
|
||||||
if (options.defaultAction) {
|
|
||||||
anchorCssClass += ' itemWithAction';
|
|
||||||
}
|
|
||||||
|
|
||||||
html += '<a class="' + anchorCssClass + '" href="' + href + '"' + defaultActionAttribute + '>';
|
|
||||||
html += '<div class="' + imageCssClass + '" style="' + style + '"' + dataSrc + '></div>';
|
|
||||||
|
|
||||||
html += '<div class="cardOverlayTarget"></div>';
|
|
||||||
|
|
||||||
if (item.LocationType == "Offline" || item.LocationType == "Virtual") {
|
|
||||||
if (options.showLocationTypeIndicator !== false) {
|
|
||||||
html += LibraryBrowser.getOfflineIndicatorHtml(item);
|
|
||||||
}
|
|
||||||
} else if (options.showUnplayedIndicator !== false) {
|
|
||||||
html += LibraryBrowser.getPlayedIndicatorHtml(item);
|
|
||||||
} else if (options.showChildCountIndicator) {
|
|
||||||
html += LibraryBrowser.getGroupCountIndicator(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mediaSourceCount > 1) {
|
|
||||||
html += '<div class="mediaSourceIndicator">' + mediaSourceCount + '</div>';
|
|
||||||
}
|
|
||||||
if (item.IsUnidentified) {
|
|
||||||
html += '<div class="unidentifiedIndicator"><div class="ui-icon-alert ui-btn-icon-notext"></div></div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
var progressHtml = options.showProgress === false || item.IsFolder ? '' : LibraryBrowser.getItemProgressBarHtml((item.Type == 'Recording' ? item : item.UserData));
|
|
||||||
|
|
||||||
var footerOverlayed = false;
|
|
||||||
|
|
||||||
if (options.overlayText || (forceName && !options.showTitle)) {
|
|
||||||
html += LibraryBrowser.getCardFooterText(item, options, imgUrl, forceName, 'cardFooter', progressHtml);
|
|
||||||
footerOverlayed = true;
|
|
||||||
}
|
|
||||||
else if (progressHtml) {
|
|
||||||
html += '<div class="cardFooter">';
|
|
||||||
html += "<div class='cardProgress cardText'>";
|
|
||||||
html += progressHtml;
|
|
||||||
html += "</div>";
|
|
||||||
//cardFooter
|
|
||||||
html += "</div>";
|
|
||||||
|
|
||||||
progressHtml = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
// cardContent
|
|
||||||
html += '</a>';
|
|
||||||
|
|
||||||
// cardScalable
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
if (!options.overlayText && !footerOverlayed) {
|
|
||||||
html += LibraryBrowser.getCardFooterText(item, options, imgUrl, forceName, 'cardFooter outerCardFooter', progressHtml);
|
|
||||||
}
|
|
||||||
|
|
||||||
// cardBox
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
// card
|
|
||||||
html += "</div>";
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else if (item.ParentPrimaryImageTag) {
|
||||||
|
|
||||||
|
imgUrl = ApiClient.getImageUrl(item.ParentPrimaryImageItemId, {
|
||||||
|
type: "Primary",
|
||||||
|
width: posterWidth,
|
||||||
|
tag: item.ParentPrimaryImageTag,
|
||||||
|
enableImageEnhancers: enableImageEnhancers
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if (item.AlbumId && item.AlbumPrimaryImageTag) {
|
||||||
|
|
||||||
|
height = squareSize;
|
||||||
|
width = primaryImageAspectRatio ? Math.round(height * primaryImageAspectRatio) : null;
|
||||||
|
|
||||||
|
imgUrl = ApiClient.getScaledImageUrl(item.AlbumId, {
|
||||||
|
type: "Primary",
|
||||||
|
height: height,
|
||||||
|
width: width,
|
||||||
|
tag: item.AlbumPrimaryImageTag,
|
||||||
|
enableImageEnhancers: enableImageEnhancers
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (item.Type == 'Season' && item.ImageTags && item.ImageTags.Thumb) {
|
||||||
|
|
||||||
|
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
||||||
|
type: "Thumb",
|
||||||
|
maxWidth: thumbWidth,
|
||||||
|
tag: item.ImageTags.Thumb,
|
||||||
|
enableImageEnhancers: enableImageEnhancers
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (item.BackdropImageTags && item.BackdropImageTags.length) {
|
||||||
|
|
||||||
|
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
||||||
|
type: "Backdrop",
|
||||||
|
maxWidth: thumbWidth,
|
||||||
|
tag: item.BackdropImageTags[0],
|
||||||
|
enableImageEnhancers: enableImageEnhancers
|
||||||
|
});
|
||||||
|
|
||||||
|
} else if (item.ImageTags && item.ImageTags.Thumb) {
|
||||||
|
|
||||||
|
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
|
||||||
|
type: "Thumb",
|
||||||
|
maxWidth: thumbWidth,
|
||||||
|
tag: item.ImageTags.Thumb,
|
||||||
|
enableImageEnhancers: enableImageEnhancers
|
||||||
|
});
|
||||||
|
|
||||||
|
} else if (item.SeriesThumbImageTag) {
|
||||||
|
|
||||||
|
imgUrl = ApiClient.getScaledImageUrl(item.SeriesId, {
|
||||||
|
type: "Thumb",
|
||||||
|
maxWidth: thumbWidth,
|
||||||
|
tag: item.SeriesThumbImageTag,
|
||||||
|
enableImageEnhancers: enableImageEnhancers
|
||||||
|
});
|
||||||
|
|
||||||
|
} else if (item.ParentThumbItemId) {
|
||||||
|
|
||||||
|
imgUrl = ApiClient.getThumbImageUrl(item, {
|
||||||
|
type: "Thumb",
|
||||||
|
maxWidth: thumbWidth,
|
||||||
|
enableImageEnhancers: enableImageEnhancers
|
||||||
|
});
|
||||||
|
|
||||||
|
} else if (item.MediaType == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist") {
|
||||||
|
|
||||||
|
if (item.Name && options.showTitle) {
|
||||||
|
icon = 'fa-music';
|
||||||
|
}
|
||||||
|
background = defaultBackground;
|
||||||
|
|
||||||
|
} else if (item.Type == "Recording" || item.Type == "Program" || item.Type == "TvChannel") {
|
||||||
|
|
||||||
|
if (item.Name && options.showTitle) {
|
||||||
|
icon = 'fa-folder-open';
|
||||||
|
}
|
||||||
|
|
||||||
|
background = defaultBackground;
|
||||||
|
} else if (item.MediaType == "Video" || item.Type == "Season" || item.Type == "Series") {
|
||||||
|
|
||||||
|
if (item.Name && options.showTitle) {
|
||||||
|
icon = 'fa-video-camera';
|
||||||
|
}
|
||||||
|
background = defaultBackground;
|
||||||
|
} else if (item.Type == "Person") {
|
||||||
|
|
||||||
|
if (item.Name && options.showTitle) {
|
||||||
|
icon = 'fa-user';
|
||||||
|
}
|
||||||
|
background = defaultBackground;
|
||||||
|
} else {
|
||||||
|
if (item.Name && options.showTitle) {
|
||||||
|
icon = 'fa-folder-open';
|
||||||
|
}
|
||||||
|
background = defaultBackground;
|
||||||
|
}
|
||||||
|
|
||||||
|
var cssClass = "card";
|
||||||
|
|
||||||
|
if (options.transparent !== false) {
|
||||||
|
cssClass += " transparentCard";
|
||||||
|
}
|
||||||
|
|
||||||
|
cssClass += ' ' + options.shape + 'Card';
|
||||||
|
|
||||||
|
var mediaSourceCount = item.MediaSourceCount || 1;
|
||||||
|
|
||||||
|
var href = options.linkItem === false ? '#' : LibraryBrowser.getHref(item, options.context);
|
||||||
|
|
||||||
|
if (item.UserData) {
|
||||||
|
cssClass += ' ' + LibraryBrowser.getUserDataCssClass(item.UserData.Key);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.showChildCountIndicator && item.ChildCount) {
|
||||||
|
cssClass += ' groupedCard';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.showTitle && !options.overlayText) {
|
||||||
|
cssClass += ' bottomPaddedCard';
|
||||||
|
}
|
||||||
|
|
||||||
|
var dataAttributes = LibraryBrowser.getItemDataAttributes(item, options, index);
|
||||||
|
|
||||||
|
var defaultAction = options.defaultAction;
|
||||||
|
if (defaultAction == 'play' || defaultAction == 'playallfromhere') {
|
||||||
|
if (item.PlayAccess != 'Full') {
|
||||||
|
defaultAction = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var defaultActionAttribute = defaultAction ? (' data-action="' + defaultAction + '"') : '';
|
||||||
|
|
||||||
|
// card
|
||||||
|
html += '<div' + dataAttributes + ' class="' + cssClass + '">';
|
||||||
|
|
||||||
|
var style = "";
|
||||||
|
|
||||||
|
if (imgUrl && !options.lazy) {
|
||||||
|
style += 'background-image:url(\'' + imgUrl + '\');';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (background) {
|
||||||
|
style += "background-color:" + background + ";";
|
||||||
|
}
|
||||||
|
|
||||||
|
var imageCssClass = 'cardImage';
|
||||||
|
|
||||||
|
if (icon) {
|
||||||
|
imageCssClass += " iconCardImage";
|
||||||
|
}
|
||||||
|
if (options.coverImage) {
|
||||||
|
imageCssClass += " coveredCardImage";
|
||||||
|
}
|
||||||
|
if (options.centerImage) {
|
||||||
|
imageCssClass += " centeredCardImage";
|
||||||
|
}
|
||||||
|
|
||||||
|
var dataSrc = "";
|
||||||
|
|
||||||
|
if (options.lazy && imgUrl) {
|
||||||
|
imageCssClass += " lazy";
|
||||||
|
dataSrc = ' data-src="' + imgUrl + '"';
|
||||||
|
}
|
||||||
|
|
||||||
|
var cardboxCssClass = 'cardBox';
|
||||||
|
|
||||||
|
if (options.cardLayout) {
|
||||||
|
cardboxCssClass += ' visualCardBox';
|
||||||
|
}
|
||||||
|
html += '<div class="' + cardboxCssClass + '">';
|
||||||
|
html += '<div class="cardScalable">';
|
||||||
|
|
||||||
|
html += '<div class="cardPadder"></div>';
|
||||||
|
|
||||||
|
var anchorCssClass = "cardContent";
|
||||||
|
|
||||||
|
if (options.defaultAction) {
|
||||||
|
anchorCssClass += ' itemWithAction';
|
||||||
|
}
|
||||||
|
|
||||||
|
html += '<a class="' + anchorCssClass + '" href="' + href + '"' + defaultActionAttribute + '>';
|
||||||
|
html += '<div class="' + imageCssClass + '" style="' + style + '"' + dataSrc + '>';
|
||||||
|
if (icon) {
|
||||||
|
html += '<i class="fa ' + icon + '"></i>';
|
||||||
|
}
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
html += '<div class="cardOverlayTarget"></div>';
|
||||||
|
|
||||||
|
if (item.LocationType == "Offline" || item.LocationType == "Virtual") {
|
||||||
|
if (options.showLocationTypeIndicator !== false) {
|
||||||
|
html += LibraryBrowser.getOfflineIndicatorHtml(item);
|
||||||
|
}
|
||||||
|
} else if (options.showUnplayedIndicator !== false) {
|
||||||
|
html += LibraryBrowser.getPlayedIndicatorHtml(item);
|
||||||
|
} else if (options.showChildCountIndicator) {
|
||||||
|
html += LibraryBrowser.getGroupCountIndicator(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mediaSourceCount > 1) {
|
||||||
|
html += '<div class="mediaSourceIndicator">' + mediaSourceCount + '</div>';
|
||||||
|
}
|
||||||
|
if (item.IsUnidentified) {
|
||||||
|
html += '<div class="unidentifiedIndicator"><div class="ui-icon-alert ui-btn-icon-notext"></div></div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
var progressHtml = options.showProgress === false || item.IsFolder ? '' : LibraryBrowser.getItemProgressBarHtml((item.Type == 'Recording' ? item : item.UserData));
|
||||||
|
|
||||||
|
var footerOverlayed = false;
|
||||||
|
|
||||||
|
if (options.overlayText || (forceName && !options.showTitle)) {
|
||||||
|
html += LibraryBrowser.getCardFooterText(item, options, imgUrl, forceName, 'cardFooter', progressHtml);
|
||||||
|
footerOverlayed = true;
|
||||||
|
}
|
||||||
|
else if (progressHtml) {
|
||||||
|
html += '<div class="cardFooter">';
|
||||||
|
html += "<div class='cardProgress cardText'>";
|
||||||
|
html += progressHtml;
|
||||||
|
html += "</div>";
|
||||||
|
//cardFooter
|
||||||
|
html += "</div>";
|
||||||
|
|
||||||
|
progressHtml = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// cardContent
|
||||||
|
html += '</a>';
|
||||||
|
|
||||||
|
// cardScalable
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
if (!options.overlayText && !footerOverlayed) {
|
||||||
|
html += LibraryBrowser.getCardFooterText(item, options, imgUrl, forceName, 'cardFooter outerCardFooter', progressHtml);
|
||||||
|
}
|
||||||
|
|
||||||
|
// cardBox
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
// card
|
||||||
|
html += "</div>";
|
||||||
|
|
||||||
return html;
|
return html;
|
||||||
},
|
},
|
||||||
|
|
|
@ -317,10 +317,12 @@
|
||||||
|
|
||||||
html += Globalize.translate('ButtonHome');
|
html += Globalize.translate('ButtonHome');
|
||||||
html += '</a>';
|
html += '</a>';
|
||||||
|
|
||||||
html += '<div class="libraryMenuDivider"></div>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="dashboard" data-rel="none" href="nowplaying.html"><span class="fa fa-tablet sidebarLinkIcon"></span>' + Globalize.translate('ButtonRemote') + '</a>';
|
||||||
|
|
||||||
|
html += '<div class="libraryMenuDivider"></div>';
|
||||||
|
|
||||||
html += getViewsHtml();
|
html += getViewsHtml();
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,9 @@
|
||||||
|
|
||||||
currentHtml += '<label for="' + id + '">' + i.Name + '</label>';
|
currentHtml += '<label for="' + id + '">' + i.Name + '</label>';
|
||||||
|
|
||||||
var isChecked = user.Configuration.ExcludeFoldersFromGrouping.indexOf(i.Id) == -1;
|
var isChecked = (user.Configuration.ExcludeFoldersFromGrouping != null && user.Configuration.ExcludeFoldersFromGrouping.indexOf(i.Id) == -1) ||
|
||||||
|
user.Configuration.GroupedFolders.indexOf(i.Id) != -1;
|
||||||
|
|
||||||
var checkedHtml = isChecked ? ' checked="checked"' : '';
|
var checkedHtml = isChecked ? ' checked="checked"' : '';
|
||||||
|
|
||||||
currentHtml += '<input class="chkGroupFolder" data-folderid="' + i.Id + '" type="checkbox" id="' + id + '"' + checkedHtml + ' />';
|
currentHtml += '<input class="chkGroupFolder" data-folderid="' + i.Id + '" type="checkbox" id="' + id + '"' + checkedHtml + ' />';
|
||||||
|
@ -209,7 +211,9 @@
|
||||||
return i.getAttribute('data-folderid');
|
return i.getAttribute('data-folderid');
|
||||||
});
|
});
|
||||||
|
|
||||||
user.Configuration.ExcludeFoldersFromGrouping = $(".chkGroupFolder:not(:checked)", page).get().map(function (i) {
|
user.Configuration.ExcludeFoldersFromGrouping = null;
|
||||||
|
|
||||||
|
user.Configuration.GroupedFolders = $(".chkGroupFolder:checked", page).get().map(function (i) {
|
||||||
|
|
||||||
return i.getAttribute('data-folderid');
|
return i.getAttribute('data-folderid');
|
||||||
});
|
});
|
||||||
|
|
|
@ -615,12 +615,14 @@
|
||||||
|
|
||||||
function showIntro() {
|
function showIntro() {
|
||||||
|
|
||||||
if (store.getItem('remotecontrolswipedown') != '1') {
|
var expected = '2';
|
||||||
|
|
||||||
|
if (store.getItem('remotecontrolswipedown') != expected) {
|
||||||
Dashboard.alert({
|
Dashboard.alert({
|
||||||
message: Globalize.translate('MessageSwipeDownOnRemoteControl'),
|
message: Globalize.translate('MessageSwipeDownOnRemoteControl'),
|
||||||
title: Globalize.translate('HeaderAlert')
|
title: Globalize.translate('HeaderAlert')
|
||||||
});
|
});
|
||||||
store.setItem('remotecontrolswipedown', '1');
|
store.setItem('remotecontrolswipedown', expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1489,7 +1489,6 @@ var AppInfo = {};
|
||||||
|
|
||||||
if (isCordova) {
|
if (isCordova) {
|
||||||
AppInfo.enableBottomTabs = true;
|
AppInfo.enableBottomTabs = true;
|
||||||
AppInfo.resetOnLibraryChange = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -1499,7 +1498,7 @@ var AppInfo = {};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!AppInfo.hasLowImageBandwidth) {
|
if (!AppInfo.hasLowImageBandwidth || !isCordova) {
|
||||||
AppInfo.enableLatestChannelItems = true;
|
AppInfo.enableLatestChannelItems = true;
|
||||||
AppInfo.enableStudioTabs = true;
|
AppInfo.enableStudioTabs = true;
|
||||||
AppInfo.enablePeopleTabs = true;
|
AppInfo.enablePeopleTabs = true;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue