1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

merge from upstream

This commit is contained in:
vitorsemeano 2019-03-12 21:41:16 +00:00
commit 093a9b1ebd
68 changed files with 20499 additions and 19536 deletions

View file

@ -32,11 +32,11 @@ function getParameterByName(name, url) {
function pageClassOn(eventName, className, fn) {
"use strict";
document.addEventListener(eventName, function (e__q) {
var target = e__q.target;
document.addEventListener(eventName, function (event) {
var target = event.target;
if (target.classList.contains(className)) {
fn.call(target, e__q);
fn.call(target, event);
}
});
}
@ -44,22 +44,21 @@ function pageClassOn(eventName, className, fn) {
function pageIdOn(eventName, id, fn) {
"use strict";
document.addEventListener(eventName, function (e__w) {
var target = e__w.target;
document.addEventListener(eventName, function (event) {
var target = event.target;
if (target.id === id) {
fn.call(target, e__w);
fn.call(target, event);
}
});
}
var Dashboard = {
allowPluginPages: function (pluginId) {
return true;
},
getCurrentUser: function () {
return window.ApiClient.getCurrentUser(false);
},
//TODO: investigate url prefix support for serverAddress function
serverAddress: function () {
if (AppInfo.isNativeApp) {
var apiClient = window.ApiClient;
@ -231,17 +230,7 @@ var AppInfo = {};
!function () {
"use strict";
function initializeApiClient(apiClient) {
if (!("cordova" !== self.appMode && "android" !== self.appMode)) {
apiClient.getAvailablePlugins = function () {
return Promise.resolve([]);
};
}
}
function onApiClientCreated(e__e, newApiClient) {
initializeApiClient(newApiClient);
function onApiClientCreated(e, newApiClient) {
if (window.$) {
$.ajax = newApiClient.ajax;
}
@ -283,12 +272,12 @@ var AppInfo = {};
function createConnectionManager() {
return require(["connectionManagerFactory", "apphost", "credentialprovider", "events", "userSettings"], function (ConnectionManager, apphost, credentialProvider, events, userSettings) {
var credentialProviderInstance = new credentialProvider(),
promises = [apphost.getSyncProfile(), apphost.init()];
var credentialProviderInstance = new credentialProvider();
var promises = [apphost.getSyncProfile(), apphost.init()];
Promise.all(promises).then(function (responses) {
var deviceProfile = responses[0],
capabilities = Dashboard.capabilities(apphost);
var deviceProfile = responses[0];
var capabilities = Dashboard.capabilities(apphost);
capabilities.DeviceProfile = deviceProfile;
@ -306,7 +295,7 @@ var AppInfo = {};
var apiClient = new apiClientFactory(Dashboard.serverAddress(), apphost.appName(), apphost.appVersion(), apphost.deviceName(), apphost.deviceId(), window.devicePixelRatio);
apiClient.enableAutomaticNetworking = false;
apiClient.manualAddressOnly = true;
apiClient.manualAddressOnly = true;
connectionManager.addApiClient(apiClient);
@ -349,7 +338,7 @@ var AppInfo = {};
}
function getPlaybackManager(playbackManager) {
window.addEventListener("beforeunload", function (e__r) {
window.addEventListener("beforeunload", function () {
try {
playbackManager.onAppClose();
} catch (err) {
@ -467,12 +456,10 @@ var AppInfo = {};
if ("registerElement" in document) {
define("registerElement", []);
} else if (browser.msie) {
define("registerElement", [bowerPath + "/webcomponentsjs/webcomponents-lite.min.js"], returnFirstDependency);
} else {
if (browser.msie) {
define("registerElement", [bowerPath + "/webcomponentsjs/webcomponents-lite.min.js"], returnFirstDependency);
} else {
define("registerElement", [bowerPath + "/document-register-element/build/document-register-element"], returnFirstDependency);
}
define("registerElement", [bowerPath + "/document-register-element/build/document-register-element"], returnFirstDependency);
}
if ("cordova" === self.appMode || "android" === self.appMode) {
@ -532,19 +519,15 @@ var AppInfo = {};
define("bgtaskregister", ["environments/windows-uwp/bgtaskregister"], returnFirstDependency);
define("transfermanager", ["environments/windows-uwp/transfermanager"], returnFirstDependency);
define("filerepository", ["environments/windows-uwp/filerepository"], returnFirstDependency);
} else if ("cordova" === self.appMode) {
define("filerepository", ["cordova/filerepository"], returnFirstDependency);
define("transfermanager", ["filerepository"], returnFirstDependency);
} else if ("android" === self.appMode) {
define("transfermanager", ["cordova/transfermanager"], returnFirstDependency);
define("filerepository", ["cordova/filerepository"], returnFirstDependency);
} else {
if ("cordova" === self.appMode) {
define("filerepository", ["cordova/filerepository"], returnFirstDependency);
define("transfermanager", ["filerepository"], returnFirstDependency);
} else {
if ("android" === self.appMode) {
define("transfermanager", ["cordova/transfermanager"], returnFirstDependency);
define("filerepository", ["cordova/filerepository"], returnFirstDependency);
} else {
define("transfermanager", [apiClientBowerPath + "/sync/transfermanager"], returnFirstDependency);
define("filerepository", [apiClientBowerPath + "/sync/filerepository"], returnFirstDependency);
}
}
define("transfermanager", [apiClientBowerPath + "/sync/transfermanager"], returnFirstDependency);
define("filerepository", [apiClientBowerPath + "/sync/filerepository"], returnFirstDependency);
}
if ("android" === self.appMode) {
@ -600,10 +583,10 @@ var AppInfo = {};
function loadCoreDictionary(globalize) {
var languages = ["ar", "be-by", "bg-bg", "ca", "cs", "da", "de", "el", "en-gb", "en-us", "es", "es-ar", "es-mx", "fa", "fi", "fr", "fr-ca", "gsw", "he", "hi-in", "hr", "hu", "id", "it", "kk", "ko", "lt-lt", "ms", "nb", "nl", "pl", "pt-br", "pt-pt", "ro", "ru", "sk", "sl-si", "sv", "tr", "uk", "vi", "zh-cn", "zh-hk", "zh-tw"];
var translations = languages.map(function (i__t) {
var translations = languages.map(function (language) {
return {
lang: i__t,
path: "strings/" + i__t + ".json"
lang: language,
path: "strings/" + language + ".json"
};
});
globalize.defaultModule("core");
@ -655,12 +638,6 @@ var AppInfo = {};
roles: "admin",
controller: "scripts/addpluginpage"
});
defineRoute({
path: "/appservices.html",
dependencies: [],
autoFocus: false,
roles: "admin"
});
defineRoute({
path: "/autoorganizelog.html",
dependencies: [],
@ -750,12 +727,6 @@ var AppInfo = {};
autoFocus: false,
roles: "admin"
});
defineRoute({
path: "/opensubtitles.html",
dependencies: [],
autoFocus: false,
roles: "admin"
});
defineRoute({
path: "/forgotpassword.html",
dependencies: ["emby-input", "emby-button"],
@ -1159,7 +1130,15 @@ var AppInfo = {};
function loadPlugins(externalPlugins, appHost, browser, shell) {
console.log("Loading installed plugins");
var list = ["components/playback/playbackvalidation", "components/playback/playaccessvalidation", "components/playback/experimentalwarnings", "components/htmlaudioplayer/plugin", "components/htmlvideoplayer/plugin", "components/photoplayer/plugin", "components/youtubeplayer/plugin"];
var list = [
"components/playback/playbackvalidation",
"components/playback/playaccessvalidation",
"components/playback/experimentalwarnings",
"components/htmlaudioplayer/plugin",
"components/htmlvideoplayer/plugin",
"components/photoplayer/plugin",
"components/youtubeplayer/plugin"
];
if ("cordova" === self.appMode) {
list.push("cordova/chromecast");
@ -1177,8 +1156,8 @@ var AppInfo = {};
}
}
for (var i__y = 0, length = externalPlugins.length; i__y < length; i__y++) {
list.push(externalPlugins[i__y]);
for (var index = 0, length = externalPlugins.length; index < length; index++) {
list.push(externalPlugins[index]);
}
return new Promise(function (resolve, reject) {
@ -1201,96 +1180,91 @@ var AppInfo = {};
function onAppReady(browser) {
console.log("Begin onAppReady");
var isInBackground = -1 !== self.location.href.toString().toLowerCase().indexOf("start=backgroundsync");
// ensure that appHost is loaded in this point
require(['appHost'], function (appHost) {
var isInBackground = -1 !== self.location.href.toString().toLowerCase().indexOf("start=backgroundsync");
window.Emby = {};
window.Emby = {};
console.log("onAppReady - loading dependencies");
console.log("onAppReady - loading dependencies");
if (isInBackground) {
syncNow();
} else {
if (isInBackground) {
syncNow();
} else {
if (browser.iOS) {
require(['css!devices/ios/ios.css']);
}
if (browser.iOS) {
require(['css!devices/ios/ios.css']);
}
require(['apphost', 'appRouter', 'scripts/themeloader', 'libraryMenu'], function (appHost, pageObjects) {
window.Emby.Page = pageObjects;
require(['appRouter', 'scripts/themeloader', 'libraryMenu'], function (pageObjects) {
window.Emby.Page = pageObjects;
defineCoreRoutes(appHost);
defineCoreRoutes(appHost);
Emby.Page.start({
click: false,
hashbang: true
});
Emby.Page.start({
click: false,
hashbang: true
});
require(["components/thememediaplayer", "scripts/autobackdrops"]);
require(["components/thememediaplayer", "scripts/autobackdrops"]);
if (!("cordova" !== self.appMode && "android" !== self.appMode)) {
if (browser.android) {
require(["cordova/mediasession", "cordova/chromecast", "cordova/appshortcuts"]);
} else if (browser.safari) {
require(["cordova/mediasession", "cordova/volume", "cordova/statusbar", "cordova/backgroundfetch"]);
if ("cordova" === self.appMode || "android" === self.appMode) {
if (browser.android) {
require(["cordova/mediasession", "cordova/chromecast", "cordova/appshortcuts"]);
} else if (browser.safari) {
require(["cordova/mediasession", "cordova/volume", "cordova/statusbar", "cordova/backgroundfetch"]);
}
}
}
if (!(browser.tv || browser.xboxOne || browser.ps4)) {
require(["components/nowplayingbar/nowplayingbar"]);
}
if (appHost.supports("remotecontrol")) {
require(["playerSelectionMenu", "components/playback/remotecontrolautoplay"]);
}
if (!(appHost.supports("physicalvolumecontrol") && !browser.touch || browser.edge)) {
require(["components/playback/volumeosd"]);
}
if (navigator.mediaSession) {
require(["mediaSession"]);
}
if (!(browser.tv || browser.xboxOne)) {
require(["components/playback/playbackorientation"]);
registerServiceWorker();
if (window.Notification) {
require(["components/notifications/notifications"]);
if (!browser.tv && !browser.xboxOne && !browser.ps4) {
require(["components/nowplayingbar/nowplayingbar"]);
}
}
require(["playerSelectionMenu"]);
if (appHost.supports("remotecontrol")) {
require(["playerSelectionMenu", "components/playback/remotecontrolautoplay"]);
}
if (appHost.supports("fullscreenchange") && (browser.edgeUwp || -1 !== navigator.userAgent.toLowerCase().indexOf("electron"))) {
require(["fullscreen-doubleclick"]);
}
if (!(appHost.supports("physicalvolumecontrol") && !browser.touch || browser.edge)) {
require(["components/playback/volumeosd"]);
}
if (appHost.supports("sync")) {
initLocalSyncEvents();
}
if (navigator.mediaSession) {
require(["mediaSession"]);
}
if (!AppInfo.isNativeApp) {
if (window.ApiClient) {
require(["apiInput"]);
if (!browser.tv && !browser.xboxOne) {
require(["components/playback/playbackorientation"]);
registerServiceWorker();
if (window.Notification) {
require(["components/notifications/notifications"]);
}
}
require(["playerSelectionMenu"]);
if (appHost.supports("fullscreenchange") && (browser.edgeUwp || -1 !== navigator.userAgent.toLowerCase().indexOf("electron"))) {
require(["fullscreen-doubleclick"]);
}
if (appHost.supports("sync")) {
initLocalSyncEvents();
}
if (!AppInfo.isNativeApp && window.ApiClient) {
require(["css!" + ApiClient.getUrl("Branding/Css")]);
}
}
});
}
});
}
});
}
function registerServiceWorker() {
if (navigator.serviceWorker && "cordova" !== self.appMode && "android" !== self.appMode) {
try {
navigator.serviceWorker.register("serviceworker.js").then(function () {
return navigator.serviceWorker.ready;
}).then(function (reg) {
if (reg && reg.sync) {
return reg.sync.register("emby-sync").then(function () {// TODO cvium: the sync serviceworker is a noop?
//window.SyncRegistered = Dashboard.isConnectMode()
});
}
});
navigator.serviceWorker.register("serviceworker.js");
} catch (err) {
console.log("Error registering serviceWorker: " + err);
}
@ -1848,39 +1822,9 @@ var AppInfo = {};
}
}
if ("Playlist" == itemType) {
return "itemdetails.html?id=" + id + "&serverId=" + serverId;
}
var itemTypes = ["Playlist", "TvChannel", "Program", "BoxSet", "MusicAlbum", "MusicGenre", "Person", "Recording", "MusicArtist"];
if ("TvChannel" == itemType) {
return "itemdetails.html?id=" + id + "&serverId=" + serverId;
}
if ("Program" == itemType) {
return "itemdetails.html?id=" + id + "&serverId=" + serverId;
}
if ("BoxSet" == itemType) {
return "itemdetails.html?id=" + id + "&serverId=" + serverId;
}
if ("MusicAlbum" == itemType) {
return "itemdetails.html?id=" + id + "&serverId=" + serverId;
}
if ("MusicGenre" == itemType) {
return "itemdetails.html?id=" + id + "&serverId=" + serverId;
}
if ("Person" == itemType) {
return "itemdetails.html?id=" + id + "&serverId=" + serverId;
}
if ("Recording" == itemType) {
return "itemdetails.html?id=" + id + "&serverId=" + serverId;
}
if ("MusicArtist" == itemType) {
if (itemTypes.indexOf(itemType) >= 0) {
return "itemdetails.html?id=" + id + "&serverId=" + serverId;
}