mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge remote-tracking branch 'upstream/master' into webpack
This commit is contained in:
commit
4b5aec42f7
134 changed files with 4360 additions and 3712 deletions
64
src/scripts/imagehelper.js
Normal file
64
src/scripts/imagehelper.js
Normal file
|
@ -0,0 +1,64 @@
|
|||
define(["browser"], function (browser) {
|
||||
"use strict";
|
||||
|
||||
function getDeviceIcon(device) {
|
||||
var baseUrl = "img/devices/";
|
||||
switch (device) {
|
||||
case "Opera":
|
||||
case "Opera TV":
|
||||
return baseUrl + "opera.svg";
|
||||
case "Samsung Smart TV":
|
||||
return baseUrl + "samsung.svg";
|
||||
case "Xbox One":
|
||||
return baseUrl + "xbox.svg";
|
||||
case "Sony PS4":
|
||||
return baseUrl + "playstation.svg";
|
||||
case "Chrome":
|
||||
return baseUrl + "chrome.svg";
|
||||
case "Firefox":
|
||||
return baseUrl + "firefox.svg";
|
||||
case "Edge":
|
||||
return baseUrl + "edge.svg";
|
||||
case "Internet Explorer":
|
||||
return baseUrl + "msie.svg";
|
||||
case "Web Browser":
|
||||
return baseUrl + "html5.svg";
|
||||
default:
|
||||
return baseUrl + "other.svg";
|
||||
}
|
||||
}
|
||||
|
||||
function getLibraryIcon(library) {
|
||||
switch (library) {
|
||||
case "movies":
|
||||
return "video_library";
|
||||
case "music":
|
||||
return "library_music";
|
||||
case "photos":
|
||||
return "photo_library";
|
||||
case "livetv":
|
||||
return "live_tv";
|
||||
case "tvshows":
|
||||
return "tv";
|
||||
case "trailers":
|
||||
return "local_movies";
|
||||
case "homevideos":
|
||||
return "photo_library";
|
||||
case "musicvideos":
|
||||
return "music_video";
|
||||
case "books":
|
||||
return "library_books";
|
||||
case "channels":
|
||||
return "videocam";
|
||||
case "playlists":
|
||||
return "view_list";
|
||||
default:
|
||||
return "folder";
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
getDeviceIcon: getDeviceIcon,
|
||||
getLibraryIcon: getLibraryIcon
|
||||
};
|
||||
});
|
|
@ -1,4 +1,4 @@
|
|||
define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "viewManager", "libraryBrowser", "appRouter", "apphost", "playbackManager", "browser", "globalize", "paper-icon-button-light", "material-icons", "scrollStyles", "flexStyles"], function (dom, layoutManager, inputManager, connectionManager, events, viewManager, libraryBrowser, appRouter, appHost, playbackManager, browser, globalize) {
|
||||
define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "viewManager", "libraryBrowser", "appRouter", "apphost", "playbackManager", "browser", "globalize", "scripts/imagehelper", "paper-icon-button-light", "material-icons", "scrollStyles", "flexStyles"], function (dom, layoutManager, inputManager, connectionManager, events, viewManager, libraryBrowser, appRouter, appHost, playbackManager, browser, globalize, imageHelper) {
|
||||
"use strict";
|
||||
|
||||
function getCurrentApiClient() {
|
||||
|
@ -268,7 +268,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
}, {
|
||||
name: globalize.translate("TabDashboard"),
|
||||
href: "dashboard.html",
|
||||
pageIds: ["dashboardPage", "serverActivityPage"],
|
||||
pageIds: ["dashboardPage"],
|
||||
icon: "dashboard"
|
||||
}, {
|
||||
name: globalize.translate("General"),
|
||||
|
@ -281,15 +281,13 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
pageIds: ["userProfilesPage", "newUserPage", "editUserPage", "userLibraryAccessPage", "userParentalControlPage", "userPasswordPage"],
|
||||
icon: "people"
|
||||
}, {
|
||||
name: globalize.translate("TabLibrary"),
|
||||
name: globalize.translate("HeaderLibraries"),
|
||||
href: "library.html",
|
||||
pageIds: ["mediaLibraryPage", "librarySettingsPage", "libraryDisplayPage", "metadataImagesConfigurationPage", "metadataNfoPage"],
|
||||
icon: "folder",
|
||||
color: "#38c"
|
||||
icon: "folder"
|
||||
}, {
|
||||
name: globalize.translate("TabPlayback"),
|
||||
icon: "play_arrow",
|
||||
color: "#E5342E",
|
||||
href: "playbackconfiguration.html",
|
||||
pageIds: ["playbackConfigurationPage", "streamingSettingsPage"]
|
||||
}, {
|
||||
|
@ -309,6 +307,12 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
pageIds: ["devicesPage", "devicePage"],
|
||||
icon: "devices"
|
||||
});
|
||||
links.push({
|
||||
name: globalize.translate("HeaderActivity"),
|
||||
href: "serveractivity.html",
|
||||
pageIds: ["serverActivityPage"],
|
||||
icon: "assessment"
|
||||
});
|
||||
links.push({
|
||||
name: globalize.translate("DLNA"),
|
||||
href: "dlnasettings.html",
|
||||
|
@ -323,24 +327,29 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
name: globalize.translate("TabLiveTV"),
|
||||
href: "livetvstatus.html",
|
||||
pageIds: ["liveTvStatusPage", "liveTvTunerPage"],
|
||||
icon: "tv"
|
||||
icon: "live_tv"
|
||||
});
|
||||
links.push({
|
||||
name: globalize.translate("DVR"),
|
||||
href: "livetvsettings.html",
|
||||
pageIds: ["liveTvSettingsPage"],
|
||||
icon: "list"
|
||||
icon: "dvr"
|
||||
});
|
||||
links.push({
|
||||
divider: true,
|
||||
name: globalize.translate("TabExpert")
|
||||
name: globalize.translate("TabAdvanced")
|
||||
});
|
||||
links.push({
|
||||
name: globalize.translate("TabAdvanced"),
|
||||
icon: "code",
|
||||
href: "dashboardhosting.html",
|
||||
color: "#F16834",
|
||||
pageIds: ["dashboardHostingPage", "serverSecurityPage"]
|
||||
name: globalize.translate("TabNetworking"),
|
||||
icon: "cloud",
|
||||
href: "networking.html",
|
||||
pageIds: ["networkingPage"]
|
||||
});
|
||||
links.push({
|
||||
name: globalize.translate("HeaderApiKeys"),
|
||||
icon: "vpn_key",
|
||||
href: "apikeys.html",
|
||||
pageIds: ["apiKeysPage"]
|
||||
});
|
||||
links.push({
|
||||
name: globalize.translate("TabLogs"),
|
||||
|
@ -351,14 +360,12 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
links.push({
|
||||
name: globalize.translate("TabNotifications"),
|
||||
icon: "notifications",
|
||||
color: "brown",
|
||||
href: "notificationsettings.html",
|
||||
pageIds: ["notificationSettingsPage", "notificationSettingPage"]
|
||||
});
|
||||
links.push({
|
||||
name: globalize.translate("TabPlugins"),
|
||||
icon: "shopping_cart",
|
||||
color: "#9D22B1",
|
||||
href: "installedplugins.html",
|
||||
pageIds: ["pluginsPage", "pluginCatalogPage"]
|
||||
});
|
||||
|
@ -436,8 +443,8 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
function createDashboardMenu(apiClient) {
|
||||
return getToolsMenuHtml(apiClient).then(function (toolsMenuHtml) {
|
||||
var html = "";
|
||||
html += '<a class="adminDrawerLogo clearLink" is="emby-linkbutton" href="home.html" style="text-align:left;">';
|
||||
html += '<img src="img/logoblack.png" />';
|
||||
html += '<a class="adminDrawerLogo clearLink" is="emby-linkbutton" href="home.html">';
|
||||
html += '<img src="img/logo.png" />';
|
||||
html += "</a>";
|
||||
html += toolsMenuHtml;
|
||||
navDrawerScrollContainer.innerHTML = html;
|
||||
|
@ -525,46 +532,11 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
html += globalize.translate("HeaderMedia");
|
||||
html += "</h3>";
|
||||
html += items.map(function (i) {
|
||||
var icon = "folder";
|
||||
var icon = i.icon || imageHelper.getLibraryIcon(i.CollectionType);
|
||||
var itemId = i.Id;
|
||||
|
||||
if ("channels" === i.CollectionType) {
|
||||
itemId = "channels";
|
||||
}
|
||||
else if ("livetv" === i.CollectionType) {
|
||||
itemId = "livetv";
|
||||
}
|
||||
|
||||
else if ("photos" === i.CollectionType) {
|
||||
icon = "photo_library";
|
||||
}
|
||||
else if ("music" === i.CollectionType || "musicvideos" === i.CollectionType) {
|
||||
icon = "library_music";
|
||||
}
|
||||
else if ("books" === i.CollectionType) {
|
||||
icon = "library_books";
|
||||
}
|
||||
else if ("playlists" === i.CollectionType) {
|
||||
icon = "view_list";
|
||||
}
|
||||
else if ("movies" === i.CollectionType) {
|
||||
icon = "video_library";
|
||||
}
|
||||
else if ("channels" === i.CollectionType || "Channel" === i.Type) {
|
||||
icon = "videocam";
|
||||
}
|
||||
else if ("tvshows" === i.CollectionType) {
|
||||
icon = "tv";
|
||||
}
|
||||
else if ("livetv" === i.CollectionType) {
|
||||
icon = "live_tv";
|
||||
}
|
||||
icon = i.icon || icon;
|
||||
|
||||
if (i.onclick) {
|
||||
i.onclick;
|
||||
}
|
||||
|
||||
return '<a is="emby-linkbutton" data-itemid="' + itemId + '" class="lnkMediaFolder navMenuOption" href="' + getItemHref(i, i.CollectionType) + '"><i class="md-icon navMenuOptionIcon">' + icon + '</i><span class="sectionName navMenuOptionText">' + i.Name + "</span></a>";
|
||||
}).join("");
|
||||
libraryMenuOptions.innerHTML = html;
|
||||
|
@ -762,7 +734,9 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
return new Promise(function (resolve, reject) {
|
||||
require(["navdrawer"], function (navdrawer) {
|
||||
navDrawerInstance = new navdrawer(getNavDrawerOptions());
|
||||
navDrawerElement.classList.remove("hide");
|
||||
if (!layoutManager.tv) {
|
||||
navDrawerElement.classList.remove("hide");
|
||||
}
|
||||
resolve(navDrawerInstance);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -58,10 +58,10 @@ define([
|
|||
roles: "admin"
|
||||
});
|
||||
defineRoute({
|
||||
path: "/dashboardhosting.html",
|
||||
path: "/networking.html",
|
||||
autoFocus: false,
|
||||
roles: "admin",
|
||||
controller: "dashboardhosting"
|
||||
controller: "networking"
|
||||
});
|
||||
defineRoute({
|
||||
path: "/devices.html",
|
||||
|
@ -334,10 +334,10 @@ define([
|
|||
controller: "serveractivity"
|
||||
});
|
||||
defineRoute({
|
||||
path: "/serversecurity.html",
|
||||
path: "/apikeys.html",
|
||||
autoFocus: false,
|
||||
roles: "admin",
|
||||
controller: "serversecurity"
|
||||
controller: "apikeys"
|
||||
});
|
||||
defineRoute({
|
||||
path: "/streamingsettings.html",
|
||||
|
|
|
@ -213,17 +213,14 @@ var Dashboard = {
|
|||
}
|
||||
},
|
||||
capabilities: function (appHost) {
|
||||
var caps = {
|
||||
var capabilities = {
|
||||
PlayableMediaTypes: ["Audio", "Video"],
|
||||
SupportedCommands: ["MoveUp", "MoveDown", "MoveLeft", "MoveRight", "PageUp", "PageDown", "PreviousLetter", "NextLetter", "ToggleOsd", "ToggleContextMenu", "Select", "Back", "SendKey", "SendString", "GoHome", "GoToSettings", "VolumeUp", "VolumeDown", "Mute", "Unmute", "ToggleMute", "SetVolume", "SetAudioStreamIndex", "SetSubtitleStreamIndex", "DisplayContent", "GoToSearch", "DisplayMessage", "SetRepeatMode", "ChannelUp", "ChannelDown", "PlayMediaSource", "PlayTrailers"],
|
||||
SupportsPersistentIdentifier: "cordova" === self.appMode || "android" === self.appMode,
|
||||
SupportsMediaControl: true
|
||||
};
|
||||
caps.IconUrl = appHost.deviceIconUrl();
|
||||
caps.SupportsSync = appHost.supports("sync");
|
||||
caps.SupportsContentUploading = appHost.supports("cameraupload");
|
||||
appHost.getPushTokenInfo();
|
||||
return caps = Object.assign(caps, appHost.getPushTokenInfo());
|
||||
return capabilities = Object.assign(capabilities, appHost.getPushTokenInfo());
|
||||
}
|
||||
};
|
||||
var AppInfo = {};
|
||||
|
@ -484,6 +481,9 @@ var AppInfo = {};
|
|||
onGlobalizeInit(browser);
|
||||
});
|
||||
});
|
||||
require(["keyboardnavigation"], function(keyboardnavigation) {
|
||||
keyboardnavigation.enable();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -521,13 +521,13 @@ var AppInfo = {};
|
|||
}
|
||||
|
||||
require(["apphost", "css!css/librarybrowser"], function (appHost) {
|
||||
loadPlugins([], appHost, browser).then(function () {
|
||||
loadPlugins(appHost, browser).then(function () {
|
||||
onAppReady(browser);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function loadPlugins(externalPlugins, appHost, browser, shell) {
|
||||
function loadPlugins(appHost, browser, shell) {
|
||||
console.log("Loading installed plugins");
|
||||
var list = [
|
||||
"components/playback/playaccessvalidation",
|
||||
|
@ -546,8 +546,8 @@ var AppInfo = {};
|
|||
}
|
||||
}
|
||||
|
||||
for (var index = 0, length = externalPlugins.length; index < length; index++) {
|
||||
list.push(externalPlugins[index]);
|
||||
if (window.NativeShell) {
|
||||
list = list.concat(window.NativeShell.getPlugins());
|
||||
}
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
@ -880,6 +880,7 @@ var AppInfo = {};
|
|||
define("serverNotifications", [componentsPath + "/serverNotifications/serverNotifications"], returnFirstDependency);
|
||||
define("appFooter-shared", ["appFooter"], createSharedAppFooter);
|
||||
define("skinManager", [componentsPath + "/skinManager"], returnFirstDependency);
|
||||
define("keyboardnavigation", [componentsPath + "/keyboardnavigation"], returnFirstDependency);
|
||||
define("connectionManager", [], function () {
|
||||
return ConnectionManager;
|
||||
});
|
||||
|
@ -1015,6 +1016,9 @@ var AppInfo = {};
|
|||
}
|
||||
|
||||
if ("livetv" === item) {
|
||||
if ("programs" === options.section) {
|
||||
return "livetv.html?tab=0&serverId=" + options.serverId;
|
||||
}
|
||||
if ("guide" === options.section) {
|
||||
return "livetv.html?tab=1&serverId=" + options.serverId;
|
||||
}
|
||||
|
@ -1047,6 +1051,10 @@ var AppInfo = {};
|
|||
return "livetv.html?tab=4&serverId=" + options.serverId;
|
||||
}
|
||||
|
||||
if ("seriesrecording" === options.section) {
|
||||
return "livetv.html?tab=5&serverId=" + options.serverId;
|
||||
}
|
||||
|
||||
return "livetv.html?serverId=" + options.serverId;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue