mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge branch 'master' of https://github.com/jellyfin/jellyfin-web into replace-unicode
# Conflicts: # src/components/guide/guide.js # src/components/mediainfo/mediainfo.js # src/components/multiselect/multiselect.js # src/components/playback/brightnessosd.js # src/components/recordingcreator/recordingbutton.js # src/components/userdatabuttons/emby-ratingbutton.js # src/controllers/favorites.js
This commit is contained in:
commit
080b3365d6
145 changed files with 1438 additions and 4767 deletions
|
@ -525,7 +525,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa
|
|||
if (session.UserId && session.UserPrimaryImageTag) {
|
||||
return ApiClient.getUserImageUrl(session.UserId, {
|
||||
tag: session.UserPrimaryImageTag,
|
||||
height: 24,
|
||||
type: "Primary"
|
||||
});
|
||||
}
|
||||
|
@ -631,7 +630,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa
|
|||
if (item && item.BackdropImageTags && item.BackdropImageTags.length) {
|
||||
return ApiClient.getScaledImageUrl(item.Id, {
|
||||
type: "Backdrop",
|
||||
width: 275,
|
||||
tag: item.BackdropImageTags[0]
|
||||
});
|
||||
}
|
||||
|
@ -639,7 +637,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa
|
|||
if (item && item.ParentBackdropImageTags && item.ParentBackdropImageTags.length) {
|
||||
return ApiClient.getScaledImageUrl(item.ParentBackdropItemId, {
|
||||
type: "Backdrop",
|
||||
width: 275,
|
||||
tag: item.ParentBackdropImageTags[0]
|
||||
});
|
||||
}
|
||||
|
@ -647,7 +644,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa
|
|||
if (item && item.BackdropImageTag) {
|
||||
return ApiClient.getScaledImageUrl(item.BackdropItemId, {
|
||||
type: "Backdrop",
|
||||
width: 275,
|
||||
tag: item.BackdropImageTag
|
||||
});
|
||||
}
|
||||
|
@ -657,7 +653,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa
|
|||
if (item && imageTags.Thumb) {
|
||||
return ApiClient.getScaledImageUrl(item.Id, {
|
||||
type: "Thumb",
|
||||
width: 275,
|
||||
tag: imageTags.Thumb
|
||||
});
|
||||
}
|
||||
|
@ -665,7 +660,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa
|
|||
if (item && item.ParentThumbImageTag) {
|
||||
return ApiClient.getScaledImageUrl(item.ParentThumbItemId, {
|
||||
type: "Thumb",
|
||||
width: 275,
|
||||
tag: item.ParentThumbImageTag
|
||||
});
|
||||
}
|
||||
|
@ -673,7 +667,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa
|
|||
if (item && item.ThumbImageTag) {
|
||||
return ApiClient.getScaledImageUrl(item.ThumbItemId, {
|
||||
type: "Thumb",
|
||||
width: 275,
|
||||
tag: item.ThumbImageTag
|
||||
});
|
||||
}
|
||||
|
@ -681,7 +674,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa
|
|||
if (item && imageTags.Primary) {
|
||||
return ApiClient.getScaledImageUrl(item.Id, {
|
||||
type: "Primary",
|
||||
width: 275,
|
||||
tag: imageTags.Primary
|
||||
});
|
||||
}
|
||||
|
@ -689,7 +681,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa
|
|||
if (item && item.PrimaryImageTag) {
|
||||
return ApiClient.getScaledImageUrl(item.PrimaryImageItemId, {
|
||||
type: "Primary",
|
||||
width: 275,
|
||||
tag: item.PrimaryImageTag
|
||||
});
|
||||
}
|
||||
|
@ -697,7 +688,6 @@ define(["datetime", "events", "itemHelper", "serverNotifications", "dom", "globa
|
|||
if (item && item.AlbumPrimaryImageTag) {
|
||||
return ApiClient.getScaledImageUrl(item.AlbumId, {
|
||||
type: "Primary",
|
||||
width: 275,
|
||||
tag: item.AlbumPrimaryImageTag
|
||||
});
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ define(["loading", "dom", "libraryMenu", "globalize", "scripts/imagehelper", "hu
|
|||
menuItems.push({
|
||||
name: globalize.translate("Edit"),
|
||||
id: "open",
|
||||
ironIcon: "mode-edit"
|
||||
icon: "mode_edit"
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -43,7 +43,7 @@ define(["loading", "dom", "libraryMenu", "globalize", "scripts/imagehelper", "hu
|
|||
menuItems.push({
|
||||
name: globalize.translate("Delete"),
|
||||
id: "delete",
|
||||
ironIcon: "delete"
|
||||
icon: "delete"
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
define(["appRouter", "cardBuilder", "dom", "globalize", "connectionManager", "apphost", "layoutManager", "focusManager", "emby-itemscontainer", "emby-scroller"], function(appRouter, cardBuilder, dom, globalize, connectionManager, appHost, layoutManager, focusManager) {
|
||||
define(["appRouter", "cardBuilder", "dom", "globalize", "connectionManager", "apphost", "layoutManager", "focusManager", "emby-itemscontainer", "emby-scroller"], function (appRouter, cardBuilder, dom, globalize, connectionManager, appHost, layoutManager, focusManager) {
|
||||
"use strict";
|
||||
|
||||
function enableScrollX() {
|
||||
|
@ -22,92 +22,103 @@ define(["appRouter", "cardBuilder", "dom", "globalize", "connectionManager", "ap
|
|||
name: "HeaderFavoriteMovies",
|
||||
types: "Movie",
|
||||
shape: getPosterShape(),
|
||||
showTitle: !0,
|
||||
showYear: !0,
|
||||
overlayPlayButton: !0,
|
||||
overlayText: !1,
|
||||
centerText: !0
|
||||
showTitle: true,
|
||||
showYear: true,
|
||||
overlayPlayButton: true,
|
||||
overlayText: false,
|
||||
centerText: true
|
||||
}, {
|
||||
name: "HeaderFavoriteShows",
|
||||
types: "Series",
|
||||
shape: getPosterShape(),
|
||||
showTitle: !0,
|
||||
showYear: !0,
|
||||
overlayPlayButton: !0,
|
||||
overlayText: !1,
|
||||
centerText: !0
|
||||
showTitle: true,
|
||||
showYear: true,
|
||||
overlayPlayButton: true,
|
||||
overlayText: false,
|
||||
centerText: true
|
||||
}, {
|
||||
name: "HeaderFavoriteEpisodes",
|
||||
types: "Episode",
|
||||
shape: getThumbShape(),
|
||||
preferThumb: !1,
|
||||
showTitle: !0,
|
||||
showParentTitle: !0,
|
||||
overlayPlayButton: !0,
|
||||
overlayText: !1,
|
||||
centerText: !0
|
||||
preferThumb: false,
|
||||
showTitle: true,
|
||||
showParentTitle: true,
|
||||
overlayPlayButton: true,
|
||||
overlayText: false,
|
||||
centerText: true
|
||||
}, {
|
||||
name: "HeaderFavoriteVideos",
|
||||
types: "Video",
|
||||
shape: getThumbShape(),
|
||||
preferThumb: !0,
|
||||
showTitle: !0,
|
||||
overlayPlayButton: !0,
|
||||
overlayText: !1,
|
||||
centerText: !0
|
||||
preferThumb: true,
|
||||
showTitle: true,
|
||||
overlayPlayButton: true,
|
||||
overlayText: false,
|
||||
centerText: true
|
||||
}, {
|
||||
name: "HeaderFavoriteCollections",
|
||||
types: "BoxSet",
|
||||
shape: getPosterShape(),
|
||||
showTitle: !0,
|
||||
overlayPlayButton: !0,
|
||||
overlayText: !1,
|
||||
centerText: !0
|
||||
showTitle: true,
|
||||
overlayPlayButton: true,
|
||||
overlayText: false,
|
||||
centerText: true
|
||||
}, {
|
||||
name: "HeaderFavoritePlaylists",
|
||||
types: "Playlist",
|
||||
shape: getSquareShape(),
|
||||
preferThumb: !1,
|
||||
showTitle: !0,
|
||||
overlayText: !1,
|
||||
showParentTitle: !1,
|
||||
centerText: !0,
|
||||
overlayPlayButton: !0,
|
||||
coverImage: !0
|
||||
preferThumb: false,
|
||||
showTitle: true,
|
||||
overlayText: false,
|
||||
showParentTitle: false,
|
||||
centerText: true,
|
||||
overlayPlayButton: true,
|
||||
coverImage: true
|
||||
}, {
|
||||
name: "HeaderFavoritePeople",
|
||||
types: "Person",
|
||||
shape: getPosterShape(),
|
||||
preferThumb: false,
|
||||
showTitle: true,
|
||||
overlayText: false,
|
||||
showParentTitle: false,
|
||||
centerText: true,
|
||||
overlayPlayButton: true,
|
||||
coverImage: true
|
||||
}, {
|
||||
name: "HeaderFavoriteArtists",
|
||||
types: "MusicArtist",
|
||||
shape: getSquareShape(),
|
||||
preferThumb: !1,
|
||||
showTitle: !0,
|
||||
overlayText: !1,
|
||||
showParentTitle: !1,
|
||||
centerText: !0,
|
||||
overlayPlayButton: !0,
|
||||
coverImage: !0
|
||||
preferThumb: false,
|
||||
showTitle: true,
|
||||
overlayText: false,
|
||||
showParentTitle: false,
|
||||
centerText: true,
|
||||
overlayPlayButton: true,
|
||||
coverImage: true
|
||||
}, {
|
||||
name: "HeaderFavoriteAlbums",
|
||||
types: "MusicAlbum",
|
||||
shape: getSquareShape(),
|
||||
preferThumb: !1,
|
||||
showTitle: !0,
|
||||
overlayText: !1,
|
||||
showParentTitle: !0,
|
||||
centerText: !0,
|
||||
overlayPlayButton: !0,
|
||||
coverImage: !0
|
||||
preferThumb: false,
|
||||
showTitle: true,
|
||||
overlayText: false,
|
||||
showParentTitle: true,
|
||||
centerText: true,
|
||||
overlayPlayButton: true,
|
||||
coverImage: true
|
||||
}, {
|
||||
name: "HeaderFavoriteSongs",
|
||||
types: "Audio",
|
||||
shape: getSquareShape(),
|
||||
preferThumb: !1,
|
||||
showTitle: !0,
|
||||
overlayText: !1,
|
||||
showParentTitle: !0,
|
||||
centerText: !0,
|
||||
overlayMoreButton: !0,
|
||||
preferThumb: false,
|
||||
showTitle: true,
|
||||
overlayText: false,
|
||||
showParentTitle: true,
|
||||
centerText: true,
|
||||
overlayMoreButton: true,
|
||||
action: "instantmix",
|
||||
coverImage: !0
|
||||
coverImage: true
|
||||
}, {
|
||||
name: "HeaderFavoriteBooks",
|
||||
types: "Book",
|
||||
|
@ -117,59 +128,82 @@ define(["appRouter", "cardBuilder", "dom", "globalize", "connectionManager", "ap
|
|||
overlayPlayButton: true,
|
||||
overlayText: false,
|
||||
centerText: true
|
||||
}]
|
||||
}];
|
||||
}
|
||||
|
||||
function getFetchDataFn(section) {
|
||||
return function() {
|
||||
var apiClient = this.apiClient,
|
||||
options = {
|
||||
SortBy: (section.types, "SeriesName,SortName"),
|
||||
SortOrder: "Ascending",
|
||||
Filters: "IsFavorite",
|
||||
Recursive: !0,
|
||||
Fields: "PrimaryImageAspectRatio,BasicSyncInfo",
|
||||
CollapseBoxSetItems: !1,
|
||||
ExcludeLocationTypes: "Virtual",
|
||||
EnableTotalRecordCount: !1
|
||||
};
|
||||
return function () {
|
||||
var apiClient = this.apiClient;
|
||||
var options = {
|
||||
SortBy: (section.types, "SeriesName,SortName"),
|
||||
SortOrder: "Ascending",
|
||||
Filters: "IsFavorite",
|
||||
Recursive: true,
|
||||
Fields: "PrimaryImageAspectRatio,BasicSyncInfo",
|
||||
CollapseBoxSetItems: false,
|
||||
ExcludeLocationTypes: "Virtual",
|
||||
EnableTotalRecordCount: false
|
||||
};
|
||||
options.Limit = 20;
|
||||
var userId = apiClient.getCurrentUserId();
|
||||
return "MusicArtist" === section.types ? apiClient.getArtists(userId, options) : (options.IncludeItemTypes = section.types, apiClient.getItems(userId, options))
|
||||
}
|
||||
|
||||
if ("MusicArtist" === section.types) {
|
||||
return apiClient.getArtists(userId, options);
|
||||
}
|
||||
|
||||
if ("Person" === section.types) {
|
||||
return apiClient.getPeople(userId, options);
|
||||
}
|
||||
|
||||
options.IncludeItemTypes = section.types;
|
||||
return apiClient.getItems(userId, options);
|
||||
};
|
||||
}
|
||||
|
||||
function getRouteUrl(section, serverId) {
|
||||
return appRouter.getRouteUrl("list", {
|
||||
serverId: serverId,
|
||||
itemTypes: section.types,
|
||||
isFavorite: !0
|
||||
})
|
||||
isFavorite: true
|
||||
});
|
||||
}
|
||||
|
||||
function getItemsHtmlFn(section) {
|
||||
return function(items) {
|
||||
var supportsImageAnalysis = appHost.supports("imageanalysis"),
|
||||
cardLayout = (appHost.preferVisualCards || supportsImageAnalysis) && section.autoCardLayout && section.showTitle;
|
||||
cardLayout = !1;
|
||||
var serverId = this.apiClient.serverId(),
|
||||
leadingButtons = layoutManager.tv ? [{
|
||||
name: globalize.translate("All"),
|
||||
id: "more",
|
||||
icon: "favorite",
|
||||
routeUrl: getRouteUrl(section, serverId)
|
||||
}] : null,
|
||||
lines = 0;
|
||||
return section.showTitle && lines++, section.showYear && lines++, section.showParentTitle && lines++, cardBuilder.getCardsHtml({
|
||||
return function (items) {
|
||||
var supportsImageAnalysis = appHost.supports("imageanalysis");
|
||||
var cardLayout = (appHost.preferVisualCards || supportsImageAnalysis) && section.autoCardLayout && section.showTitle;
|
||||
cardLayout = false;
|
||||
var serverId = this.apiClient.serverId();
|
||||
var leadingButtons = layoutManager.tv ? [{
|
||||
name: globalize.translate("All"),
|
||||
id: "more",
|
||||
icon: "favorite",
|
||||
routeUrl: getRouteUrl(section, serverId)
|
||||
}] : null;
|
||||
var lines = 0;
|
||||
|
||||
if (section.showTitle) {
|
||||
lines++;
|
||||
}
|
||||
|
||||
if (section.showYear) {
|
||||
lines++;
|
||||
}
|
||||
|
||||
if (section.showParentTitle) {
|
||||
lines++;
|
||||
}
|
||||
|
||||
return cardBuilder.getCardsHtml({
|
||||
items: items,
|
||||
preferThumb: section.preferThumb,
|
||||
shape: section.shape,
|
||||
centerText: section.centerText && !cardLayout,
|
||||
overlayText: !1 !== section.overlayText,
|
||||
overlayText: false !== section.overlayText,
|
||||
showTitle: section.showTitle,
|
||||
showYear: section.showYear,
|
||||
showParentTitle: section.showParentTitle,
|
||||
scalable: !0,
|
||||
scalable: true,
|
||||
coverImage: section.coverImage,
|
||||
overlayPlayButton: section.overlayPlayButton,
|
||||
overlayMoreButton: section.overlayMoreButton && !cardLayout,
|
||||
|
@ -178,39 +212,100 @@ define(["appRouter", "cardBuilder", "dom", "globalize", "connectionManager", "ap
|
|||
cardLayout: cardLayout,
|
||||
leadingButtons: leadingButtons,
|
||||
lines: lines
|
||||
})
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
function FavoritesTab(view, params) {
|
||||
this.view = view, this.params = params, this.apiClient = connectionManager.currentApiClient(), this.sectionsContainer = view.querySelector(".sections"), createSections(this, this.sectionsContainer, this.apiClient)
|
||||
this.view = view;
|
||||
this.params = params;
|
||||
this.apiClient = connectionManager.currentApiClient();
|
||||
this.sectionsContainer = view.querySelector(".sections");
|
||||
createSections(this, this.sectionsContainer, this.apiClient);
|
||||
}
|
||||
|
||||
function createSections(instance, elem, apiClient) {
|
||||
var i, length, sections = getSections(),
|
||||
html = "";
|
||||
var i;
|
||||
var length;
|
||||
var sections = getSections();
|
||||
var html = "";
|
||||
|
||||
for (i = 0, length = sections.length; i < length; i++) {
|
||||
var section = sections[i],
|
||||
sectionClass = "verticalSection";
|
||||
section.showTitle || (sectionClass += " verticalSection-extrabottompadding"), html += '<div class="' + sectionClass + ' hide">', html += '<div class="sectionTitleContainer sectionTitleContainer-cards padded-left">', layoutManager.tv ? html += '<h2 class="sectionTitle sectionTitle-cards">' + globalize.translate(section.name) + "</h2>" : (html += '<a is="emby-linkbutton" href="' + getRouteUrl(section, apiClient.serverId()) + '" class="more button-flat button-flat-mini sectionTitleTextButton">', html += '<h2 class="sectionTitle sectionTitle-cards">', html += globalize.translate(section.name), html += "</h2>", html += '<i class="md-icon">chevron_right</i>', html += "</a>"), html += "</div>", html += '<div is="emby-scroller" class="padded-top-focusscale padded-bottom-focusscale" data-mousewheel="false" data-centerfocus="true"><div is="emby-itemscontainer" class="itemsContainer scrollSlider focuscontainer-x padded-left padded-right" data-monitor="markfavorite"></div></div>', html += "</div>"
|
||||
var section = sections[i];
|
||||
var sectionClass = "verticalSection";
|
||||
|
||||
if (!section.showTitle) {
|
||||
sectionClass += " verticalSection-extrabottompadding";
|
||||
}
|
||||
|
||||
html += '<div class="' + sectionClass + ' hide">';
|
||||
html += '<div class="sectionTitleContainer sectionTitleContainer-cards padded-left">';
|
||||
|
||||
if (layoutManager.tv) {
|
||||
html += '<h2 class="sectionTitle sectionTitle-cards">' + globalize.translate(section.name) + "</h2>";
|
||||
} else {
|
||||
html += '<a is="emby-linkbutton" href="' + getRouteUrl(section, apiClient.serverId()) + '" class="more button-flat button-flat-mini sectionTitleTextButton">';
|
||||
html += '<h2 class="sectionTitle sectionTitle-cards">';
|
||||
html += globalize.translate(section.name);
|
||||
html += "</h2>";
|
||||
html += '<i class="md-icon">chevron_right</i>';
|
||||
html += "</a>";
|
||||
}
|
||||
|
||||
html += "</div>";
|
||||
html += '<div is="emby-scroller" class="padded-top-focusscale padded-bottom-focusscale" data-mousewheel="false" data-centerfocus="true"><div is="emby-itemscontainer" class="itemsContainer scrollSlider focuscontainer-x" data-monitor="markfavorite"></div></div>';
|
||||
html += "</div>";
|
||||
}
|
||||
|
||||
elem.innerHTML = html;
|
||||
var elems = elem.querySelectorAll(".itemsContainer");
|
||||
|
||||
for (i = 0, length = elems.length; i < length; i++) {
|
||||
var itemsContainer = elems[i];
|
||||
itemsContainer.fetchData = getFetchDataFn(sections[i]).bind(instance), itemsContainer.getItemsHtml = getItemsHtmlFn(sections[i]).bind(instance), itemsContainer.parentContainer = dom.parentWithClass(itemsContainer, "verticalSection")
|
||||
itemsContainer.fetchData = getFetchDataFn(sections[i]).bind(instance);
|
||||
itemsContainer.getItemsHtml = getItemsHtmlFn(sections[i]).bind(instance);
|
||||
itemsContainer.parentContainer = dom.parentWithClass(itemsContainer, "verticalSection");
|
||||
}
|
||||
}
|
||||
return FavoritesTab.prototype.onResume = function(options) {
|
||||
for (var promises = (this.apiClient, []), view = this.view, elems = this.sectionsContainer.querySelectorAll(".itemsContainer"), i = 0, length = elems.length; i < length; i++) promises.push(elems[i].resume(options));
|
||||
Promise.all(promises).then(function() {
|
||||
options.autoFocus && focusManager.autoFocus(view)
|
||||
})
|
||||
}, FavoritesTab.prototype.onPause = function() {
|
||||
for (var elems = this.sectionsContainer.querySelectorAll(".itemsContainer"), i = 0, length = elems.length; i < length; i++) elems[i].pause()
|
||||
}, FavoritesTab.prototype.destroy = function() {
|
||||
this.view = null, this.params = null, this.apiClient = null;
|
||||
for (var elems = this.sectionsContainer.querySelectorAll(".itemsContainer"), i = 0, length = elems.length; i < length; i++) elems[i].fetchData = null, elems[i].getItemsHtml = null, elems[i].parentContainer = null;
|
||||
this.sectionsContainer = null
|
||||
}, FavoritesTab
|
||||
|
||||
FavoritesTab.prototype.onResume = function (options) {
|
||||
var promises = (this.apiClient, []);
|
||||
var view = this.view;
|
||||
var elems = this.sectionsContainer.querySelectorAll(".itemsContainer");
|
||||
|
||||
for (var i = 0, length = elems.length; i < length; i++) {
|
||||
promises.push(elems[i].resume(options));
|
||||
}
|
||||
|
||||
Promise.all(promises).then(function () {
|
||||
if (options.autoFocus) {
|
||||
focusManager.autoFocus(view);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
FavoritesTab.prototype.onPause = function () {
|
||||
var elems = this.sectionsContainer.querySelectorAll(".itemsContainer");
|
||||
|
||||
for (var i = 0, length = elems.length; i < length; i++) {
|
||||
elems[i].pause();
|
||||
}
|
||||
};
|
||||
|
||||
FavoritesTab.prototype.destroy = function () {
|
||||
this.view = null;
|
||||
this.params = null;
|
||||
this.apiClient = null;
|
||||
var elems = this.sectionsContainer.querySelectorAll(".itemsContainer");
|
||||
|
||||
for (var i = 0, length = elems.length; i < length; i++) {
|
||||
elems[i].fetchData = null;
|
||||
elems[i].getItemsHtml = null;
|
||||
elems[i].parentContainer = null;
|
||||
}
|
||||
|
||||
this.sectionsContainer = null;
|
||||
};
|
||||
|
||||
return FavoritesTab;
|
||||
});
|
||||
|
|
|
@ -116,14 +116,14 @@ define(["loading", "libraryMenu", "dom", "globalize", "cardStyle", "emby-button"
|
|||
menuItems.push({
|
||||
name: globalize.translate("ButtonSettings"),
|
||||
id: "open",
|
||||
ironIcon: "mode-edit"
|
||||
icon: "mode_edit"
|
||||
});
|
||||
}
|
||||
|
||||
menuItems.push({
|
||||
name: globalize.translate("ButtonUninstall"),
|
||||
id: "delete",
|
||||
ironIcon: "delete"
|
||||
icon: "delete"
|
||||
});
|
||||
|
||||
require(["actionsheet"], function (actionsheet) {
|
||||
|
|
|
@ -459,7 +459,6 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
|
|||
imgUrl = apiClient.getScaledImageUrl(item.Id, {
|
||||
type: "Thumb",
|
||||
index: 0,
|
||||
maxWidth: screenWidth,
|
||||
tag: item.ImageTags.Thumb
|
||||
});
|
||||
itemBackdropElement.classList.remove("noBackdrop");
|
||||
|
@ -469,7 +468,6 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
|
|||
imgUrl = apiClient.getScaledImageUrl(item.Id, {
|
||||
type: "Primary",
|
||||
index: 0,
|
||||
maxWidth: screenWidth,
|
||||
tag: item.ImageTags.Primary
|
||||
});
|
||||
itemBackdropElement.classList.remove("noBackdrop");
|
||||
|
@ -479,7 +477,6 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
|
|||
imgUrl = apiClient.getScaledImageUrl(item.Id, {
|
||||
type: "Backdrop",
|
||||
index: 0,
|
||||
maxWidth: screenWidth,
|
||||
tag: item.BackdropImageTags[0]
|
||||
});
|
||||
itemBackdropElement.classList.remove("noBackdrop");
|
||||
|
@ -489,8 +486,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
|
|||
imgUrl = apiClient.getScaledImageUrl(item.ParentBackdropItemId, {
|
||||
type: "Backdrop",
|
||||
index: 0,
|
||||
tag: item.ParentBackdropImageTags[0],
|
||||
maxWidth: screenWidth
|
||||
tag: item.ParentBackdropImageTags[0]
|
||||
});
|
||||
itemBackdropElement.classList.remove("noBackdrop");
|
||||
imageLoader.lazyImage(itemBackdropElement, imgUrl, false);
|
||||
|
@ -499,7 +495,6 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
|
|||
imgUrl = apiClient.getScaledImageUrl(item.Id, {
|
||||
type: "Thumb",
|
||||
index: 0,
|
||||
maxWidth: screenWidth,
|
||||
tag: item.ImageTags.Thumb
|
||||
});
|
||||
itemBackdropElement.classList.remove("noBackdrop");
|
||||
|
@ -822,7 +817,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
|
|||
if (detectRatio && item.PrimaryImageAspectRatio) {
|
||||
if (item.PrimaryImageAspectRatio >= 1.48) {
|
||||
shape = "thumb";
|
||||
} else if (item.PrimaryImageAspectRatio >= .85 && item.PrimaryImageAspectRatio <= 1.34) {
|
||||
} else if (item.PrimaryImageAspectRatio >= 0.85 && item.PrimaryImageAspectRatio <= 1.34) {
|
||||
shape = "square";
|
||||
}
|
||||
}
|
||||
|
@ -858,7 +853,6 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuild
|
|||
elem.classList.remove("squareDetailImageContainer");
|
||||
}
|
||||
|
||||
|
||||
if (url) {
|
||||
imageLoader.lazyImage(elem.querySelector("img"), url);
|
||||
}
|
||||
|
|
|
@ -60,11 +60,11 @@ define(["globalize", "loading", "libraryMenu", "emby-checkbox", "emby-button", "
|
|||
libraryMenu.setTabs("librarysetup", 1, getTabs);
|
||||
loadData();
|
||||
ApiClient.getSystemInfo().then(function(info) {
|
||||
if ("Windows" === info.OperatingSystem) {
|
||||
view.querySelector(".fldSaveMetadataHidden").classList.remove("hide");
|
||||
} else {
|
||||
view.querySelector(".fldSaveMetadataHidden").classList.add("hide");
|
||||
}
|
||||
if ("Windows" === info.OperatingSystem) {
|
||||
view.querySelector(".fldSaveMetadataHidden").classList.remove("hide");
|
||||
} else {
|
||||
view.querySelector(".fldSaveMetadataHidden").classList.add("hide");
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -88,27 +88,27 @@ define(["jQuery", "apphost", "scripts/taskbutton", "loading", "libraryMenu", "gl
|
|||
menuItems.push({
|
||||
name: globalize.translate("ButtonEditImages"),
|
||||
id: "editimages",
|
||||
ironIcon: "photo"
|
||||
icon: "photo"
|
||||
});
|
||||
menuItems.push({
|
||||
name: globalize.translate("ManageLibrary"),
|
||||
id: "edit",
|
||||
ironIcon: "folder_open"
|
||||
icon: "folder_open"
|
||||
});
|
||||
menuItems.push({
|
||||
name: globalize.translate("ButtonRemove"),
|
||||
id: "delete",
|
||||
ironIcon: "remove"
|
||||
icon: "delete"
|
||||
});
|
||||
menuItems.push({
|
||||
name: globalize.translate("ButtonRename"),
|
||||
id: "rename",
|
||||
ironIcon: "mode_edit"
|
||||
icon: "mode_edit"
|
||||
});
|
||||
menuItems.push({
|
||||
name: globalize.translate("ScanLibrary"),
|
||||
id: "refresh",
|
||||
ironIcon: "refresh"
|
||||
icon: "refresh"
|
||||
});
|
||||
|
||||
require(["actionsheet"], function (actionsheet) {
|
||||
|
|
|
@ -61,7 +61,7 @@ define(["libraryBrowser", "cardBuilder", "apphost", "imageLoader", "loading"], f
|
|||
preferThumb: true,
|
||||
context: 'music',
|
||||
cardLayout: true,
|
||||
showTitle: true,
|
||||
showTitle: true
|
||||
});
|
||||
} else if (viewStyle == "PosterCard") {
|
||||
html = cardBuilder.getCardsHtml({
|
||||
|
@ -69,7 +69,7 @@ define(["libraryBrowser", "cardBuilder", "apphost", "imageLoader", "loading"], f
|
|||
shape: "auto",
|
||||
context: 'music',
|
||||
cardLayout: true,
|
||||
showTitle: true,
|
||||
showTitle: true
|
||||
});
|
||||
} else if (viewStyle == "Poster") {
|
||||
html = cardBuilder.getCardsHtml({
|
||||
|
|
|
@ -72,8 +72,8 @@ define(["loading", "libraryMenu", "globalize", "emby-checkbox", "emby-select"],
|
|||
}
|
||||
|
||||
function validateHttps(form) {
|
||||
var certPath = form.querySelector("#txtCertificatePath").value || null,
|
||||
httpsMode = form.querySelector("#selectHttpsMode").value;
|
||||
var certPath = form.querySelector("#txtCertificatePath").value || null;
|
||||
var httpsMode = form.querySelector("#selectHttpsMode").value;
|
||||
return "enabled" !== httpsMode && "required" !== httpsMode || certPath ? Promise.resolve() : new Promise(function(resolve, reject) {
|
||||
return alertText({
|
||||
title: globalize.translate("TitleHostingSettings"),
|
||||
|
|
|
@ -92,13 +92,13 @@ define(["jQuery", "loading", "datetime", "dom", "globalize", "emby-input", "emby
|
|||
|
||||
var hours = trigger.IntervalTicks / 36e9;
|
||||
|
||||
if (hours == .25) {
|
||||
if (hours == 0.25) {
|
||||
return "Every 15 minutes";
|
||||
}
|
||||
if (hours == .5) {
|
||||
if (hours == 0.5) {
|
||||
return "Every 30 minutes";
|
||||
}
|
||||
if (hours == .75) {
|
||||
if (hours == 0.75) {
|
||||
return "Every 45 minutes";
|
||||
}
|
||||
if (hours == 1) {
|
||||
|
|
|
@ -137,7 +137,8 @@ define(["jQuery", "loading", "events", "globalize", "serverNotifications", "huma
|
|||
pollInterval && clearInterval(pollInterval);
|
||||
}
|
||||
|
||||
var pollInterval, serverId = ApiClient.serverId();
|
||||
var pollInterval;
|
||||
var serverId = ApiClient.serverId();
|
||||
|
||||
$(".divScheduledTasks", view).on("click", ".btnStartTask", function() {
|
||||
var button = this;
|
||||
|
|
|
@ -57,7 +57,9 @@ define(["layoutManager", "loading", "datetime", "libraryBrowser", "cardBuilder",
|
|||
month: "short",
|
||||
day: "numeric"
|
||||
});
|
||||
} catch (err) {}
|
||||
} catch (err) {
|
||||
console.log('error parsing timestamp for upcoming tv shows');
|
||||
}
|
||||
}
|
||||
|
||||
if (dateText != currentGroupName) {
|
||||
|
|
|
@ -27,22 +27,22 @@ define(["loading", "dom", "globalize", "humanedate", "paper-icon-button-light",
|
|||
menuItems.push({
|
||||
name: globalize.translate("ButtonOpen"),
|
||||
id: "open",
|
||||
ironIcon: "mode-edit"
|
||||
icon: "mode_edit"
|
||||
});
|
||||
menuItems.push({
|
||||
name: globalize.translate("ButtonLibraryAccess"),
|
||||
id: "access",
|
||||
ironIcon: "lock"
|
||||
icon: "lock"
|
||||
});
|
||||
menuItems.push({
|
||||
name: globalize.translate("ButtonParentalControl"),
|
||||
id: "parentalcontrol",
|
||||
ironIcon: "person"
|
||||
icon: "person"
|
||||
});
|
||||
menuItems.push({
|
||||
name: globalize.translate("ButtonDelete"),
|
||||
id: "delete",
|
||||
ironIcon: "delete"
|
||||
icon: "delete"
|
||||
});
|
||||
|
||||
require(["actionsheet"], function (actionsheet) {
|
||||
|
@ -149,7 +149,7 @@ define(["loading", "dom", "globalize", "humanedate", "paper-icon-button-light",
|
|||
menuItems.push({
|
||||
name: globalize.translate("ButtonCancel"),
|
||||
id: "delete",
|
||||
ironIcon: "delete"
|
||||
icon: "delete"
|
||||
});
|
||||
|
||||
require(["actionsheet"], function (actionsheet) {
|
||||
|
|
|
@ -467,34 +467,34 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
|||
|
||||
switch (e.detail.command) {
|
||||
case "left":
|
||||
if ("osd" === currentVisibleMenu) {
|
||||
showOsd();
|
||||
} else {
|
||||
if (!currentVisibleMenu) {
|
||||
e.preventDefault();
|
||||
playbackManager.rewind(player);
|
||||
if ("osd" === currentVisibleMenu) {
|
||||
showOsd();
|
||||
} else {
|
||||
if (!currentVisibleMenu) {
|
||||
e.preventDefault();
|
||||
playbackManager.rewind(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case "right":
|
||||
if ("osd" === currentVisibleMenu) {
|
||||
showOsd();
|
||||
} else if (!currentVisibleMenu) {
|
||||
e.preventDefault();
|
||||
playbackManager.fastForward(player);
|
||||
}
|
||||
if ("osd" === currentVisibleMenu) {
|
||||
showOsd();
|
||||
} else if (!currentVisibleMenu) {
|
||||
e.preventDefault();
|
||||
playbackManager.fastForward(player);
|
||||
}
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case "pageup":
|
||||
playbackManager.nextChapter(player);
|
||||
break;
|
||||
playbackManager.nextChapter(player);
|
||||
break;
|
||||
|
||||
case "pagedown":
|
||||
playbackManager.previousChapter(player);
|
||||
break;
|
||||
playbackManager.previousChapter(player);
|
||||
break;
|
||||
|
||||
case "up":
|
||||
case "down":
|
||||
|
@ -508,16 +508,16 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
|||
case "rewind":
|
||||
case "next":
|
||||
case "previous":
|
||||
showOsd();
|
||||
break;
|
||||
showOsd();
|
||||
break;
|
||||
|
||||
case "record":
|
||||
onRecordingCommand();
|
||||
showOsd();
|
||||
break;
|
||||
onRecordingCommand();
|
||||
showOsd();
|
||||
break;
|
||||
|
||||
case "togglestats":
|
||||
toggleStats();
|
||||
toggleStats();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -852,7 +852,6 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
|||
var volumeSlider = view.querySelector('.osdVolumeSliderContainer');
|
||||
var progressElement = volumeSlider.querySelector('.mdl-slider-background-lower');
|
||||
|
||||
|
||||
if (-1 === supportedCommands.indexOf("Mute")) {
|
||||
showMuteButton = false;
|
||||
}
|
||||
|
@ -1062,7 +1061,7 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
|||
var player = currentPlayer;
|
||||
if (subtitleSyncOverlay) {
|
||||
subtitleSyncOverlay.toggle(action);
|
||||
} else if(player){
|
||||
} else if (player) {
|
||||
subtitleSyncOverlay = new SubtitleSync(player);
|
||||
}
|
||||
});
|
||||
|
@ -1096,52 +1095,52 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
|||
case "k":
|
||||
playbackManager.playPause(currentPlayer);
|
||||
showOsd();
|
||||
break;
|
||||
break;
|
||||
|
||||
case "l":
|
||||
case "ArrowRight":
|
||||
case "Right":
|
||||
playbackManager.fastForward(currentPlayer);
|
||||
showOsd();
|
||||
break;
|
||||
break;
|
||||
|
||||
case "j":
|
||||
case "ArrowLeft":
|
||||
case "Left":
|
||||
playbackManager.rewind(currentPlayer);
|
||||
showOsd();
|
||||
break;
|
||||
break;
|
||||
|
||||
case "f":
|
||||
if (!e.ctrlKey && !e.metaKey) {
|
||||
playbackManager.toggleFullscreen(currentPlayer);
|
||||
showOsd();
|
||||
}
|
||||
break;
|
||||
if (!e.ctrlKey && !e.metaKey) {
|
||||
playbackManager.toggleFullscreen(currentPlayer);
|
||||
showOsd();
|
||||
}
|
||||
break;
|
||||
|
||||
case "m":
|
||||
playbackManager.toggleMute(currentPlayer);
|
||||
showOsd();
|
||||
break;
|
||||
playbackManager.toggleMute(currentPlayer);
|
||||
showOsd();
|
||||
break;
|
||||
|
||||
case "NavigationLeft":
|
||||
case "GamepadDPadLeft":
|
||||
case "GamepadLeftThumbstickLeft":
|
||||
// Ignores gamepad events that are always triggered, even when not focused.
|
||||
if (document.hasFocus()) {
|
||||
playbackManager.rewind(currentPlayer);
|
||||
showOsd();
|
||||
}
|
||||
break;
|
||||
if (document.hasFocus()) {
|
||||
playbackManager.rewind(currentPlayer);
|
||||
showOsd();
|
||||
}
|
||||
break;
|
||||
|
||||
case "NavigationRight":
|
||||
case "GamepadDPadRight":
|
||||
case "GamepadLeftThumbstickRight":
|
||||
// Ignores gamepad events that are always triggered, even when not focused.
|
||||
if (document.hasFocus()) {
|
||||
playbackManager.fastForward(currentPlayer);
|
||||
showOsd();
|
||||
}
|
||||
if (document.hasFocus()) {
|
||||
playbackManager.fastForward(currentPlayer);
|
||||
showOsd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1275,7 +1274,7 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
|||
dom.addEventListener(window, "keydown", onWindowKeyDown, {
|
||||
passive: true
|
||||
});
|
||||
} catch(e) {
|
||||
} catch (e) {
|
||||
require(['appRouter'], function(appRouter) {
|
||||
appRouter.showDirect('/');
|
||||
});
|
||||
|
@ -1334,24 +1333,24 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
|||
|
||||
switch (pointerType) {
|
||||
case "touch":
|
||||
if (now - lastPointerDown > 300) {
|
||||
lastPointerDown = now;
|
||||
toggleOsd();
|
||||
}
|
||||
if (now - lastPointerDown > 300) {
|
||||
lastPointerDown = now;
|
||||
toggleOsd();
|
||||
}
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case "mouse":
|
||||
if (!e.button) {
|
||||
playbackManager.playPause(currentPlayer);
|
||||
showOsd();
|
||||
}
|
||||
if (!e.button) {
|
||||
playbackManager.playPause(currentPlayer);
|
||||
showOsd();
|
||||
}
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
default:
|
||||
playbackManager.playPause(currentPlayer);
|
||||
showOsd();
|
||||
playbackManager.playPause(currentPlayer);
|
||||
showOsd();
|
||||
}
|
||||
}, {
|
||||
passive: true
|
||||
|
@ -1361,14 +1360,16 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
|||
dom.addEventListener(view, "dblclick", onDoubleClick, {});
|
||||
} else {
|
||||
var options = { passive: true };
|
||||
dom.addEventListener(view, "dblclick", function () { playbackManager.toggleFullscreen(currentPlayer); }, options);
|
||||
dom.addEventListener(view, "dblclick", function () {
|
||||
playbackManager.toggleFullscreen(currentPlayer);
|
||||
}, options);
|
||||
}
|
||||
|
||||
view.querySelector(".buttonMute").addEventListener("click", function () {
|
||||
playbackManager.toggleMute(currentPlayer);
|
||||
});
|
||||
nowPlayingVolumeSlider.addEventListener("change", function () {
|
||||
if(volumeSliderTimer){
|
||||
if (volumeSliderTimer) {
|
||||
// interupt and remove existing timer
|
||||
clearTimeout(volumeSliderTimer);
|
||||
volumeSliderTimer = null;
|
||||
|
@ -1376,10 +1377,10 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
|||
playbackManager.setVolume(this.value, currentPlayer);
|
||||
});
|
||||
nowPlayingVolumeSlider.addEventListener("mousemove", function () {
|
||||
if(!volumeSliderTimer){
|
||||
if (!volumeSliderTimer) {
|
||||
var that = this;
|
||||
// register new timer
|
||||
volumeSliderTimer = setTimeout(function(){
|
||||
volumeSliderTimer = setTimeout(function() {
|
||||
playbackManager.setVolume(that.value, currentPlayer);
|
||||
// delete timer after completion
|
||||
volumeSliderTimer = null;
|
||||
|
@ -1387,10 +1388,10 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med
|
|||
}
|
||||
});
|
||||
nowPlayingVolumeSlider.addEventListener("touchmove", function () {
|
||||
if(!volumeSliderTimer){
|
||||
if (!volumeSliderTimer) {
|
||||
var that = this;
|
||||
// register new timer
|
||||
volumeSliderTimer = setTimeout(function(){
|
||||
volumeSliderTimer = setTimeout(function() {
|
||||
playbackManager.setVolume(that.value, currentPlayer);
|
||||
// delete timer after completion
|
||||
volumeSliderTimer = null;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue