mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
livetvcomponents.js
This commit is contained in:
parent
ecccf00fcb
commit
44ba92261d
1 changed files with 83 additions and 41 deletions
|
@ -1,57 +1,92 @@
|
||||||
define(["layoutManager", "datetime", "cardBuilder", "apphost"], function(layoutManager, datetime, cardBuilder, appHost) {
|
define(["layoutManager", "datetime", "cardBuilder", "apphost"], function (layoutManager, datetime, cardBuilder, appHost) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
function enableScrollX() {
|
function enableScrollX() {
|
||||||
return !layoutManager.desktop
|
return !layoutManager.desktop;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getBackdropShape() {
|
function getBackdropShape() {
|
||||||
return enableScrollX() ? "overflowBackdrop" : "backdrop"
|
if (enableScrollX()) {
|
||||||
|
return "overflowBackdrop";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "backdrop";
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTimersHtml(timers, options) {
|
function getTimersHtml(timers, options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
var i, length, items = timers.map(function(t) {
|
var i;
|
||||||
return t.Type = "Timer", t
|
var length;
|
||||||
}),
|
var items = timers.map(function (t) {
|
||||||
groups = [],
|
t.Type = "Timer";
|
||||||
currentGroupName = "",
|
return t;
|
||||||
currentGroup = [];
|
});
|
||||||
|
var groups = [];
|
||||||
|
var currentGroupName = "";
|
||||||
|
var currentGroup = [];
|
||||||
|
|
||||||
for (i = 0, length = items.length; i < length; i++) {
|
for (i = 0, length = items.length; i < length; i++) {
|
||||||
var item = items[i],
|
var item = items[i];
|
||||||
dateText = "";
|
var dateText = "";
|
||||||
if (!1 !== options.indexByDate && item.StartDate) try {
|
|
||||||
var premiereDate = datetime.parseISO8601Date(item.StartDate, !0);
|
if (false !== options.indexByDate && item.StartDate) {
|
||||||
dateText = datetime.toLocaleDateString(premiereDate, {
|
try {
|
||||||
weekday: "long",
|
var premiereDate = datetime.parseISO8601Date(item.StartDate, true);
|
||||||
month: "short",
|
dateText = datetime.toLocaleDateString(premiereDate, {
|
||||||
day: "numeric"
|
weekday: "long",
|
||||||
})
|
month: "short",
|
||||||
} catch (err) {}
|
day: "numeric"
|
||||||
dateText != currentGroupName ? (currentGroup.length && groups.push({
|
});
|
||||||
|
} catch (err) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dateText != currentGroupName) {
|
||||||
|
if (currentGroup.length) {
|
||||||
|
groups.push({
|
||||||
|
name: currentGroupName,
|
||||||
|
items: currentGroup
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
currentGroupName = dateText;
|
||||||
|
currentGroup = [item];
|
||||||
|
} else {
|
||||||
|
currentGroup.push(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentGroup.length) {
|
||||||
|
groups.push({
|
||||||
name: currentGroupName,
|
name: currentGroupName,
|
||||||
items: currentGroup
|
items: currentGroup
|
||||||
}), currentGroupName = dateText, currentGroup = [item]) : currentGroup.push(item)
|
});
|
||||||
}
|
}
|
||||||
currentGroup.length && groups.push({
|
|
||||||
name: currentGroupName,
|
|
||||||
items: currentGroup
|
|
||||||
});
|
|
||||||
var html = "";
|
var html = "";
|
||||||
|
|
||||||
for (i = 0, length = groups.length; i < length; i++) {
|
for (i = 0, length = groups.length; i < length; i++) {
|
||||||
var group = groups[i],
|
var group = groups[i];
|
||||||
supportsImageAnalysis = appHost.supports("imageanalysis"),
|
var supportsImageAnalysis = appHost.supports("imageanalysis");
|
||||||
cardLayout = appHost.preferVisualCards || supportsImageAnalysis;
|
var cardLayout = appHost.preferVisualCards || supportsImageAnalysis;
|
||||||
if (cardLayout = !0, group.name && (html += '<div class="verticalSection">', html += '<h2 class="sectionTitle sectionTitle-cards padded-left">' + group.name + "</h2>"), enableScrollX()) {
|
|
||||||
|
if (cardLayout = true, group.name && (html += '<div class="verticalSection">', html += '<h2 class="sectionTitle sectionTitle-cards padded-left">' + group.name + "</h2>"), enableScrollX()) {
|
||||||
var scrollXClass = "scrollX hiddenScrollX";
|
var scrollXClass = "scrollX hiddenScrollX";
|
||||||
layoutManager.tv && (scrollXClass += " smoothScrollX"), html += '<div is="emby-itemscontainer" class="itemsContainer ' + scrollXClass + ' padded-left padded-right">'
|
|
||||||
} else html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap padded-left padded-right">';
|
if (layoutManager.tv) {
|
||||||
|
scrollXClass += " smoothScrollX";
|
||||||
|
}
|
||||||
|
|
||||||
|
html += '<div is="emby-itemscontainer" class="itemsContainer ' + scrollXClass + ' padded-left padded-right">';
|
||||||
|
} else {
|
||||||
|
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap padded-left padded-right">';
|
||||||
|
}
|
||||||
|
|
||||||
html += cardBuilder.getCardsHtml({
|
html += cardBuilder.getCardsHtml({
|
||||||
items: group.items,
|
items: group.items,
|
||||||
shape: cardLayout ? getBackdropShape() : enableScrollX() ? "autoOverflow" : "autoVertical",
|
shape: cardLayout ? getBackdropShape() : enableScrollX() ? "autoOverflow" : "autoVertical",
|
||||||
showParentTitleOrTitle: !0,
|
showParentTitleOrTitle: true,
|
||||||
showAirTime: !0,
|
showAirTime: true,
|
||||||
showAirEndTime: !0,
|
showAirEndTime: true,
|
||||||
showChannelName: !cardLayout,
|
showChannelName: !cardLayout,
|
||||||
cardLayout: cardLayout,
|
cardLayout: cardLayout,
|
||||||
centerText: !cardLayout,
|
centerText: !cardLayout,
|
||||||
|
@ -59,15 +94,22 @@ define(["layoutManager", "datetime", "cardBuilder", "apphost"], function(layoutM
|
||||||
cardFooterAside: "none",
|
cardFooterAside: "none",
|
||||||
preferThumb: !!cardLayout || "auto",
|
preferThumb: !!cardLayout || "auto",
|
||||||
defaultShape: cardLayout ? null : "portrait",
|
defaultShape: cardLayout ? null : "portrait",
|
||||||
coverImage: !0,
|
coverImage: true,
|
||||||
allowBottomPadding: !1,
|
allowBottomPadding: false,
|
||||||
overlayText: !1,
|
overlayText: false,
|
||||||
showChannelLogo: cardLayout
|
showChannelLogo: cardLayout
|
||||||
}), html += "</div>", group.name && (html += "</div>")
|
});
|
||||||
|
html += "</div>";
|
||||||
|
|
||||||
|
if (group.name) {
|
||||||
|
html += "</div>";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return Promise.resolve(html)
|
|
||||||
|
return Promise.resolve(html);
|
||||||
}
|
}
|
||||||
|
|
||||||
window.LiveTvHelpers = {
|
window.LiveTvHelpers = {
|
||||||
getTimersHtml: getTimersHtml
|
getTimersHtml: getTimersHtml
|
||||||
}
|
};
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue