mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge branch 'master' into scrollmanager
This commit is contained in:
commit
906442fba0
194 changed files with 2019 additions and 1665 deletions
|
@ -30,7 +30,6 @@ define([], function () {
|
|||
}
|
||||
|
||||
function isMobile(userAgent) {
|
||||
|
||||
var terms = [
|
||||
'mobi',
|
||||
'ipad',
|
||||
|
@ -144,14 +143,16 @@ define([], function () {
|
|||
}
|
||||
}
|
||||
|
||||
var animation = false,
|
||||
animationstring = 'animation',
|
||||
keyframeprefix = '',
|
||||
domPrefixes = ['Webkit', 'O', 'Moz'],
|
||||
pfx = '',
|
||||
elm = document.createElement('div');
|
||||
var animation = false;
|
||||
var animationstring = 'animation';
|
||||
var keyframeprefix = '';
|
||||
var domPrefixes = ['Webkit', 'O', 'Moz'];
|
||||
var pfx = '';
|
||||
var elm = document.createElement('div');
|
||||
|
||||
if (elm.style.animationName !== undefined) { animation = true; }
|
||||
if (elm.style.animationName !== undefined) {
|
||||
animation = true;
|
||||
}
|
||||
|
||||
if (animation === false && allowPrefix) {
|
||||
for (var i = 0; i < domPrefixes.length; i++) {
|
||||
|
@ -204,8 +205,7 @@ define([], function () {
|
|||
|
||||
// http://www.neowin.net/news/ie11-fakes-user-agent-to-fool-gmail-in-windows-phone-81-gdr1-update
|
||||
browser = "msie";
|
||||
}
|
||||
else if (ua.indexOf("like gecko") !== -1 && ua.indexOf('webkit') === -1 && ua.indexOf('opera') === -1 && ua.indexOf('chrome') === -1 && ua.indexOf('safari') === -1) {
|
||||
} else if (ua.indexOf("like gecko") !== -1 && ua.indexOf('webkit') === -1 && ua.indexOf('opera') === -1 && ua.indexOf('chrome') === -1 && ua.indexOf('safari') === -1) {
|
||||
browser = "msie";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -88,18 +88,14 @@ define(['browser'], function (browser) {
|
|||
if (browser.edgeUwp) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
else if (format === 'wma') {
|
||||
} else if (format === 'wma') {
|
||||
if (browser.tizen || browser.orsay) {
|
||||
return true;
|
||||
}
|
||||
if (browser.edgeUwp) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
else if (format === 'opus') {
|
||||
} else if (format === 'opus') {
|
||||
typeString = 'audio/ogg; codecs="opus"';
|
||||
|
||||
if (document.createElement('audio').canPlayType(typeString).replace(/no/, '')) {
|
||||
|
@ -107,9 +103,7 @@ define(['browser'], function (browser) {
|
|||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
else if (format === 'mp2') {
|
||||
} else if (format === 'mp2') {
|
||||
|
||||
// For now
|
||||
return false;
|
||||
|
@ -575,9 +569,7 @@ define(['browser'], function (browser) {
|
|||
Type: 'Audio',
|
||||
AudioCodec: audioFormat
|
||||
});
|
||||
}
|
||||
|
||||
else if (audioFormat === 'mp3') {
|
||||
} else if (audioFormat === 'mp3') {
|
||||
|
||||
profile.DirectPlayProfiles.push({
|
||||
Container: audioFormat,
|
||||
|
|
|
@ -2,19 +2,19 @@ define(["datetime", "jQuery", "material-icons"], function (datetime, $) {
|
|||
"use strict";
|
||||
|
||||
function getNode(item, folderState, selected) {
|
||||
var htmlName = getNodeInnerHtml(item),
|
||||
node = {
|
||||
id: item.Id,
|
||||
text: htmlName,
|
||||
state: {
|
||||
opened: item.IsFolder && folderState == "open",
|
||||
selected: selected
|
||||
},
|
||||
li_attr: {
|
||||
serveritemtype: item.Type,
|
||||
collectiontype: item.CollectionType
|
||||
}
|
||||
};
|
||||
var htmlName = getNodeInnerHtml(item);
|
||||
var node = {
|
||||
id: item.Id,
|
||||
text: htmlName,
|
||||
state: {
|
||||
opened: item.IsFolder && folderState == "open",
|
||||
selected: selected
|
||||
},
|
||||
li_attr: {
|
||||
serveritemtype: item.Type,
|
||||
collectiontype: item.CollectionType
|
||||
}
|
||||
};
|
||||
if (item.IsFolder) {
|
||||
node.children = [{
|
||||
text: "Loading...",
|
||||
|
@ -44,20 +44,15 @@ define(["datetime", "jQuery", "material-icons"], function (datetime, $) {
|
|||
var htmlName = "<div class='editorNode'>";
|
||||
if (item.IsFolder) {
|
||||
htmlName += '<i class="md-icon metadataSidebarIcon">folder</i>';
|
||||
}
|
||||
else if (item.MediaType === "Video") {
|
||||
} else if (item.MediaType === "Video") {
|
||||
htmlName += '<i class="md-icon metadataSidebarIcon">movie</i>';
|
||||
}
|
||||
else if (item.MediaType === "Audio") {
|
||||
} else if (item.MediaType === "Audio") {
|
||||
htmlName += '<i class="md-icon metadataSidebarIcon">audiotrack</i>';
|
||||
}
|
||||
else if (item.Type === "TvChannel") {
|
||||
} else if (item.Type === "TvChannel") {
|
||||
htmlName += '<i class="md-icon metadataSidebarIcon">live_tv</i>';
|
||||
}
|
||||
else if (item.MediaType === "Photo") {
|
||||
} else if (item.MediaType === "Photo") {
|
||||
htmlName += '<i class="md-icon metadataSidebarIcon">photo</i>';
|
||||
}
|
||||
else if (item.MediaType === "Book") {
|
||||
} else if (item.MediaType === "Book") {
|
||||
htmlName += '<i class="md-icon metadataSidebarIcon">book</i>';
|
||||
}
|
||||
if (item.LockData) {
|
||||
|
|
|
@ -91,20 +91,20 @@ define(["userSettings"], function (userSettings) {
|
|||
html += '<div style="display:inline-block;">';
|
||||
|
||||
if (showControls) {
|
||||
html += '<button is="paper-icon-button-light" class="btnPreviousPage autoSize" ' + (startIndex ? "" : "disabled") + '><i class="md-icon"></i></button>';
|
||||
html += '<button is="paper-icon-button-light" class="btnNextPage autoSize" ' + (startIndex + limit >= totalRecordCount ? "disabled" : "") + '><i class="md-icon"></i></button>';
|
||||
html += '<button is="paper-icon-button-light" class="btnPreviousPage autoSize" ' + (startIndex ? "" : "disabled") + '><i class="md-icon">arrow_back</i></button>';
|
||||
html += '<button is="paper-icon-button-light" class="btnNextPage autoSize" ' + (startIndex + limit >= totalRecordCount ? "disabled" : "") + '><i class="md-icon">arrow_forward</i></button>';
|
||||
}
|
||||
|
||||
if (options.addLayoutButton) {
|
||||
html += '<button is="paper-icon-button-light" title="' + Globalize.translate("ButtonSelectView") + '" class="btnChangeLayout autoSize" data-layouts="' + (options.layouts || "") + '" onclick="LibraryBrowser.showLayoutMenu(this, \'' + (options.currentLayout || "") + '\');"><i class="md-icon"></i></button>';
|
||||
html += '<button is="paper-icon-button-light" title="' + Globalize.translate("ButtonSelectView") + '" class="btnChangeLayout autoSize" data-layouts="' + (options.layouts || "") + '" onclick="LibraryBrowser.showLayoutMenu(this, \'' + (options.currentLayout || "") + '\');"><i class="md-icon">view_comfy</i></button>';
|
||||
}
|
||||
|
||||
if (options.sortButton) {
|
||||
html += '<button is="paper-icon-button-light" class="btnSort autoSize" title="' + Globalize.translate("ButtonSort") + '"><i class="md-icon"></i></button>';
|
||||
html += '<button is="paper-icon-button-light" class="btnSort autoSize" title="' + Globalize.translate("ButtonSort") + '"><i class="md-icon">sort_by_alpha</i></button>';
|
||||
}
|
||||
|
||||
if (options.filterButton) {
|
||||
html += '<button is="paper-icon-button-light" class="btnFilter autoSize" title="' + Globalize.translate("ButtonFilter") + '"><i class="md-icon"></i></button>';
|
||||
html += '<button is="paper-icon-button-light" class="btnFilter autoSize" title="' + Globalize.translate("ButtonFilter") + '"><i class="md-icon">filter_list</i></button>';
|
||||
}
|
||||
|
||||
html += "</div>";
|
||||
|
@ -156,7 +156,8 @@ define(["userSettings"], function (userSettings) {
|
|||
html += '<h2 style="margin:0 0 .5em;">';
|
||||
html += Globalize.translate("HeaderSortBy");
|
||||
html += "</h2>";
|
||||
var i, length;
|
||||
var i;
|
||||
var length;
|
||||
var isChecked;
|
||||
html += '<div>';
|
||||
for (i = 0, length = options.items.length; i < length; i++) {
|
||||
|
|
|
@ -25,11 +25,6 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
if (user && user.name) {
|
||||
if (user.imageUrl) {
|
||||
var url = user.imageUrl;
|
||||
|
||||
if (user.supportsImageParams) {
|
||||
url += "&height=" + Math.round(26 * Math.max(window.devicePixelRatio || 1, 2));
|
||||
}
|
||||
|
||||
updateHeaderUserButton(url);
|
||||
hasImage = true;
|
||||
}
|
||||
|
@ -71,7 +66,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
headerUserButton.innerHTML = '<div class="headerButton headerButtonRight paper-icon-button-light headerUserButtonRound" style="background-image:url(\'' + src + "');\"></div>";
|
||||
} else {
|
||||
headerUserButton.classList.remove("headerUserButtonRound");
|
||||
headerUserButton.innerHTML = '<i class="md-icon"></i>';
|
||||
headerUserButton.innerHTML = '<i class="md-icon">person</i>';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -189,7 +184,6 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
html += "</div>";
|
||||
}
|
||||
|
||||
|
||||
// add buttons to navigation drawer
|
||||
navDrawerScrollContainer.innerHTML = html;
|
||||
// bind logout button click to method
|
||||
|
@ -551,11 +545,11 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
var icon = headerCastButton.querySelector("i");
|
||||
|
||||
if (info && !info.isLocalPlayer) {
|
||||
icon.innerHTML = "";
|
||||
icon.innerHTML = "cast_connected";
|
||||
headerCastButton.classList.add("castButton-active");
|
||||
context.querySelector(".headerSelectedPlayer").innerHTML = info.deviceName || info.name;
|
||||
} else {
|
||||
icon.innerHTML = "";
|
||||
icon.innerHTML = "cast";
|
||||
headerCastButton.classList.remove("castButton-active");
|
||||
context.querySelector(".headerSelectedPlayer").innerHTML = "";
|
||||
}
|
||||
|
@ -843,16 +837,16 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
|||
var html = "";
|
||||
html += '<div class="flex align-items-center flex-grow headerTop">';
|
||||
html += '<div class="headerLeft">';
|
||||
html += '<button type="button" is="paper-icon-button-light" class="headerButton headerButtonLeft headerBackButton hide"><i class="md-icon">' + (browser.safari ? "chevron_left" : "") + "</i></button>";
|
||||
html += '<button type="button" is="paper-icon-button-light" class="headerButton headerHomeButton hide barsMenuButton headerButtonLeft"><i class="md-icon"></i></button>';
|
||||
html += '<button type="button" is="paper-icon-button-light" class="headerButton mainDrawerButton barsMenuButton headerButtonLeft hide"><i class="md-icon"></i></button>';
|
||||
html += '<button type="button" is="paper-icon-button-light" class="headerButton headerButtonLeft headerBackButton hide"><i class="md-icon">' + (browser.safari ? "chevron_left" : "arrow_back") + "</i></button>";
|
||||
html += '<button type="button" is="paper-icon-button-light" class="headerButton headerHomeButton hide barsMenuButton headerButtonLeft"><i class="md-icon">home</i></button>';
|
||||
html += '<button type="button" is="paper-icon-button-light" class="headerButton mainDrawerButton barsMenuButton headerButtonLeft hide"><i class="md-icon">menu</i></button>';
|
||||
html += '<h3 class="pageTitle"></h3>';
|
||||
html += "</div>";
|
||||
html += '<div class="headerRight">';
|
||||
html += '<span class="headerSelectedPlayer"></span>';
|
||||
html += '<button is="paper-icon-button-light" class="headerCastButton castButton headerButton headerButtonRight hide"><i class="md-icon"></i></button>';
|
||||
html += '<button type="button" is="paper-icon-button-light" class="headerButton headerButtonRight headerSearchButton hide"><i class="md-icon"></i></button>';
|
||||
html += '<button is="paper-icon-button-light" class="headerButton headerButtonRight headerUserButton hide"><i class="md-icon"></i></button>';
|
||||
html += '<button is="paper-icon-button-light" class="headerCastButton castButton headerButton headerButtonRight hide"><i class="md-icon">cast</i></button>';
|
||||
html += '<button type="button" is="paper-icon-button-light" class="headerButton headerButtonRight headerSearchButton hide"><i class="md-icon">search</i></button>';
|
||||
html += '<button is="paper-icon-button-light" class="headerButton headerButtonRight headerUserButton hide"><i class="md-icon">person</i></button>';
|
||||
html += "</div>";
|
||||
html += "</div>";
|
||||
html += '<div class="headerTabs sectionTabs hide">';
|
||||
|
|
|
@ -447,6 +447,6 @@ define([
|
|||
defineRoute({
|
||||
path: "/",
|
||||
isDefaultRoute: true,
|
||||
autoFocus: false,
|
||||
autoFocus: false
|
||||
});
|
||||
});
|
||||
|
|
|
@ -478,6 +478,9 @@ var AppInfo = {};
|
|||
keyboardnavigation.enable();
|
||||
});
|
||||
require(["focusPreventScroll"]);
|
||||
require(["autoFocuser"], function(autoFocuser) {
|
||||
autoFocuser.enable();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -866,6 +869,7 @@ var AppInfo = {};
|
|||
define("skinManager", [componentsPath + "/skinManager"], returnFirstDependency);
|
||||
define("keyboardnavigation", [componentsPath + "/keyboardnavigation"], returnFirstDependency);
|
||||
define("scrollManager", [componentsPath + "/scrollManager"], returnFirstDependency);
|
||||
define("autoFocuser", [componentsPath + "/autoFocuser"], returnFirstDependency);
|
||||
define("connectionManager", [], function () {
|
||||
return ConnectionManager;
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue