mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
bundle flvjs and shaka and move all libs to one folder
This commit is contained in:
parent
bbc5a5f491
commit
02a23ffaee
11 changed files with 86 additions and 155 deletions
|
@ -14,10 +14,12 @@
|
||||||
"webpack-cli": "^3.2.3"
|
"webpack-cli": "^3.2.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"flv.js": "^1.5.0",
|
||||||
"jstree": "^3.3.7",
|
"jstree": "^3.3.7",
|
||||||
"jquery": "^3.4.1",
|
"jquery": "^3.4.1",
|
||||||
"hls.js": "^0.12.4",
|
"hls.js": "^0.12.4",
|
||||||
"howler": "^2.1.2",
|
"howler": "^2.1.2",
|
||||||
|
"shaka-player": "^2.5.5",
|
||||||
"swiper": "^4.5.0",
|
"swiper": "^4.5.0",
|
||||||
"sortablejs": "^1.9.0",
|
"sortablejs": "^1.9.0",
|
||||||
"libjass": "^0.11.0"
|
"libjass": "^0.11.0"
|
||||||
|
|
|
@ -4,6 +4,10 @@
|
||||||
// Use define from require.js not webpack's define
|
// Use define from require.js not webpack's define
|
||||||
var _define = window.define;
|
var _define = window.define;
|
||||||
|
|
||||||
|
// flvjs
|
||||||
|
var flvjs = require("flv.js");
|
||||||
|
_define("flvjs", function() { return flvjs; });
|
||||||
|
|
||||||
// jstree
|
// jstree
|
||||||
var jstree = require("jstree");
|
var jstree = require("jstree");
|
||||||
require("jstree/dist/themes/default/style.css");
|
require("jstree/dist/themes/default/style.css");
|
||||||
|
@ -21,6 +25,10 @@ _define("hlsjs", function() { return hlsjs; });
|
||||||
var howler = require("howler");
|
var howler = require("howler");
|
||||||
_define("howler", function() { return howler; });
|
_define("howler", function() { return howler; });
|
||||||
|
|
||||||
|
// shaka
|
||||||
|
var shaka = require("shaka-player");
|
||||||
|
_define("shaka", function() { return shaka });
|
||||||
|
|
||||||
// swiper
|
// swiper
|
||||||
var swiper = require("swiper");
|
var swiper = require("swiper");
|
||||||
require("swiper/dist/css/swiper.min.css");
|
require("swiper/dist/css/swiper.min.css");
|
||||||
|
|
|
@ -430,13 +430,8 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadUserSkinWithOptions(ctx) {
|
function loadUserSkinWithOptions(ctx) {
|
||||||
|
|
||||||
require(['queryString'], function (queryString) {
|
require(['queryString'], function (queryString) {
|
||||||
|
|
||||||
//var url = options.url;
|
|
||||||
//var index = url.indexOf('?');
|
|
||||||
var params = queryString.parse(ctx.querystring);
|
var params = queryString.parse(ctx.querystring);
|
||||||
|
|
||||||
skinManager.loadUserSkin({
|
skinManager.loadUserSkin({
|
||||||
start: params.start
|
start: params.start
|
||||||
});
|
});
|
||||||
|
@ -444,16 +439,13 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
}
|
}
|
||||||
|
|
||||||
function validateRoles(apiClient, roles) {
|
function validateRoles(apiClient, roles) {
|
||||||
|
|
||||||
return Promise.all(roles.split(',').map(function (role) {
|
return Promise.all(roles.split(',').map(function (role) {
|
||||||
return validateRole(apiClient, role);
|
return validateRole(apiClient, role);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
function validateRole(apiClient, role) {
|
function validateRole(apiClient, role) {
|
||||||
|
|
||||||
if (role === 'admin') {
|
if (role === 'admin') {
|
||||||
|
|
||||||
return apiClient.getCurrentUser().then(function (user) {
|
return apiClient.getCurrentUser().then(function (user) {
|
||||||
if (user.Policy.IsAdministrator) {
|
if (user.Policy.IsAdministrator) {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
|
@ -480,7 +472,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
route: route,
|
route: route,
|
||||||
path: ctx.path
|
path: ctx.path
|
||||||
};
|
};
|
||||||
//next();
|
|
||||||
|
|
||||||
ctx.handled = true;
|
ctx.handled = true;
|
||||||
}
|
}
|
||||||
|
@ -503,7 +494,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
}
|
}
|
||||||
|
|
||||||
function endsWith(str, srch) {
|
function endsWith(str, srch) {
|
||||||
|
|
||||||
return str.lastIndexOf(srch) === srch.length - 1;
|
return str.lastIndexOf(srch) === srch.length - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -513,6 +503,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
if (endsWith(baseRoute, '/') && !endsWith(baseRoute, '://')) {
|
if (endsWith(baseRoute, '/') && !endsWith(baseRoute, '://')) {
|
||||||
baseRoute = baseRoute.substring(0, baseRoute.length - 1);
|
baseRoute = baseRoute.substring(0, baseRoute.length - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function baseUrl() {
|
function baseUrl() {
|
||||||
return baseRoute;
|
return baseRoute;
|
||||||
}
|
}
|
||||||
|
@ -551,14 +542,11 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
}
|
}
|
||||||
|
|
||||||
function back() {
|
function back() {
|
||||||
|
|
||||||
page.back();
|
page.back();
|
||||||
}
|
}
|
||||||
|
|
||||||
function canGoBack() {
|
function canGoBack() {
|
||||||
|
|
||||||
var curr = current();
|
var curr = current();
|
||||||
|
|
||||||
if (!curr) {
|
if (!curr) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -576,7 +564,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
}
|
}
|
||||||
|
|
||||||
function show(path, options) {
|
function show(path, options) {
|
||||||
|
|
||||||
if (path.indexOf('/') !== 0 && path.indexOf('://') === -1) {
|
if (path.indexOf('/') !== 0 && path.indexOf('://') === -1) {
|
||||||
path = '/' + path;
|
path = '/' + path;
|
||||||
}
|
}
|
||||||
|
@ -585,7 +572,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
path = path.replace(baseRoute, '');
|
path = path.replace(baseRoute, '');
|
||||||
|
|
||||||
if (currentRouteInfo && currentRouteInfo.path === path) {
|
if (currentRouteInfo && currentRouteInfo.path === path) {
|
||||||
|
|
||||||
// can't use this with home right now due to the back menu
|
// can't use this with home right now due to the back menu
|
||||||
if (currentRouteInfo.route.type !== 'home') {
|
if (currentRouteInfo.route.type !== 'home') {
|
||||||
loading.hide();
|
loading.hide();
|
||||||
|
@ -594,7 +580,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
resolveOnNextShow = resolve;
|
resolveOnNextShow = resolve;
|
||||||
page.show(path, options);
|
page.show(path, options);
|
||||||
});
|
});
|
||||||
|
@ -615,14 +600,12 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
}
|
}
|
||||||
|
|
||||||
function showItem(item, serverId, options) {
|
function showItem(item, serverId, options) {
|
||||||
|
|
||||||
if (typeof (item) === 'string') {
|
if (typeof (item) === 'string') {
|
||||||
var apiClient = serverId ? connectionManager.getApiClient(serverId) : connectionManager.currentApiClient();
|
var apiClient = serverId ? connectionManager.getApiClient(serverId) : connectionManager.currentApiClient();
|
||||||
apiClient.getItem(apiClient.getCurrentUserId(), item).then(function (item) {
|
apiClient.getItem(apiClient.getCurrentUserId(), item).then(function (item) {
|
||||||
appRouter.showItem(item, options);
|
appRouter.showItem(item, options);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (arguments.length === 2) {
|
if (arguments.length === 2) {
|
||||||
options = arguments[1];
|
options = arguments[1];
|
||||||
}
|
}
|
||||||
|
@ -637,7 +620,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
var allRoutes = [];
|
var allRoutes = [];
|
||||||
|
|
||||||
function addRoute(path, newRoute) {
|
function addRoute(path, newRoute) {
|
||||||
|
|
||||||
page(path, getHandler(newRoute));
|
page(path, getHandler(newRoute));
|
||||||
allRoutes.push(newRoute);
|
allRoutes.push(newRoute);
|
||||||
}
|
}
|
||||||
|
@ -649,7 +631,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
var backdropContainer;
|
var backdropContainer;
|
||||||
var backgroundContainer;
|
var backgroundContainer;
|
||||||
function setTransparency(level) {
|
function setTransparency(level) {
|
||||||
|
|
||||||
if (!backdropContainer) {
|
if (!backdropContainer) {
|
||||||
backdropContainer = document.querySelector('.backdropContainer');
|
backdropContainer = document.querySelector('.backdropContainer');
|
||||||
}
|
}
|
||||||
|
@ -662,8 +643,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
document.documentElement.classList.add('transparentDocument');
|
document.documentElement.classList.add('transparentDocument');
|
||||||
backgroundContainer.classList.add('backgroundContainer-transparent');
|
backgroundContainer.classList.add('backgroundContainer-transparent');
|
||||||
backdropContainer.classList.add('hide');
|
backdropContainer.classList.add('hide');
|
||||||
}
|
} else if (level === 'backdrop' || level === 1) {
|
||||||
else if (level === 'backdrop' || level === 1) {
|
|
||||||
backdrop.externalBackdrop(true);
|
backdrop.externalBackdrop(true);
|
||||||
document.documentElement.classList.add('transparentDocument');
|
document.documentElement.classList.add('transparentDocument');
|
||||||
backgroundContainer.classList.add('backgroundContainer-transparent');
|
backgroundContainer.classList.add('backgroundContainer-transparent');
|
||||||
|
@ -677,9 +657,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
}
|
}
|
||||||
|
|
||||||
function pushState(state, title, url) {
|
function pushState(state, title, url) {
|
||||||
|
|
||||||
state.navigate = false;
|
state.navigate = false;
|
||||||
|
|
||||||
page.pushState(state, title, url);
|
page.pushState(state, title, url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -690,40 +668,24 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('Setting page base to ' + baseRoute);
|
console.log('Setting page base to ' + baseRoute);
|
||||||
|
|
||||||
page.base(baseRoute);
|
page.base(baseRoute);
|
||||||
}
|
}
|
||||||
|
|
||||||
setBaseRoute();
|
setBaseRoute();
|
||||||
|
|
||||||
function syncNow() {
|
|
||||||
require(['localsync'], function (localSync) {
|
|
||||||
localSync.sync();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function invokeShortcut(id) {
|
function invokeShortcut(id) {
|
||||||
|
|
||||||
if (id.indexOf('library-') === 0) {
|
if (id.indexOf('library-') === 0) {
|
||||||
|
|
||||||
id = id.replace('library-', '');
|
id = id.replace('library-', '');
|
||||||
|
|
||||||
id = id.split('_');
|
id = id.split('_');
|
||||||
|
|
||||||
appRouter.showItem(id[0], id[1]);
|
appRouter.showItem(id[0], id[1]);
|
||||||
|
|
||||||
} else if (id.indexOf('item-') === 0) {
|
} else if (id.indexOf('item-') === 0) {
|
||||||
|
|
||||||
id = id.replace('item-', '');
|
id = id.replace('item-', '');
|
||||||
|
|
||||||
id = id.split('_');
|
id = id.split('_');
|
||||||
|
|
||||||
appRouter.showItem(id[0], id[1]);
|
appRouter.showItem(id[0], id[1]);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
id = id.split('_');
|
id = id.split('_');
|
||||||
|
|
||||||
appRouter.show(appRouter.getRouteUrl(id[0], {
|
appRouter.show(appRouter.getRouteUrl(id[0], {
|
||||||
serverId: id[1]
|
serverId: id[1]
|
||||||
}));
|
}));
|
||||||
|
@ -740,6 +702,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
appRouter.canGoBack = canGoBack;
|
appRouter.canGoBack = canGoBack;
|
||||||
appRouter.current = current;
|
appRouter.current = current;
|
||||||
appRouter.beginConnectionWizard = beginConnectionWizard;
|
appRouter.beginConnectionWizard = beginConnectionWizard;
|
||||||
|
appRouter.invokeShortcut = invokeShortcut;
|
||||||
appRouter.showItem = showItem;
|
appRouter.showItem = showItem;
|
||||||
appRouter.setTransparency = setTransparency;
|
appRouter.setTransparency = setTransparency;
|
||||||
appRouter.getRoutes = getRoutes;
|
appRouter.getRoutes = getRoutes;
|
||||||
|
@ -751,7 +714,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
Backdrop: 1,
|
Backdrop: 1,
|
||||||
Full: 2
|
Full: 2
|
||||||
};
|
};
|
||||||
appRouter.invokeShortcut = invokeShortcut;
|
|
||||||
|
|
||||||
return appRouter;
|
return appRouter;
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,7 +2,6 @@ define(['appStorage', 'events'], function (appStorage, events) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
function getKey(name, userId) {
|
function getKey(name, userId) {
|
||||||
|
|
||||||
if (userId) {
|
if (userId) {
|
||||||
name = userId + '-' + name;
|
name = userId + '-' + name;
|
||||||
}
|
}
|
||||||
|
@ -15,20 +14,15 @@ define(['appStorage', 'events'], function (appStorage, events) {
|
||||||
}
|
}
|
||||||
|
|
||||||
AppSettings.prototype.enableAutoLogin = function (val) {
|
AppSettings.prototype.enableAutoLogin = function (val) {
|
||||||
|
|
||||||
if (val != null) {
|
if (val != null) {
|
||||||
this.set('enableAutoLogin', val.toString());
|
this.set('enableAutoLogin', val.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.get('enableAutoLogin') !== 'false';
|
return this.get('enableAutoLogin') !== 'false';
|
||||||
};
|
};
|
||||||
|
|
||||||
AppSettings.prototype.enableAutomaticBitrateDetection = function (isInNetwork, mediaType, val) {
|
AppSettings.prototype.enableAutomaticBitrateDetection = function (isInNetwork, mediaType, val) {
|
||||||
|
|
||||||
var key = 'enableautobitratebitrate-' + mediaType + '-' + isInNetwork;
|
var key = 'enableautobitratebitrate-' + mediaType + '-' + isInNetwork;
|
||||||
|
|
||||||
if (val != null) {
|
if (val != null) {
|
||||||
|
|
||||||
if (isInNetwork && mediaType === 'Audio') {
|
if (isInNetwork && mediaType === 'Audio') {
|
||||||
val = true;
|
val = true;
|
||||||
}
|
}
|
||||||
|
@ -44,11 +38,8 @@ define(['appStorage', 'events'], function (appStorage, events) {
|
||||||
};
|
};
|
||||||
|
|
||||||
AppSettings.prototype.maxStreamingBitrate = function (isInNetwork, mediaType, val) {
|
AppSettings.prototype.maxStreamingBitrate = function (isInNetwork, mediaType, val) {
|
||||||
|
|
||||||
var key = 'maxbitrate-' + mediaType + '-' + isInNetwork;
|
var key = 'maxbitrate-' + mediaType + '-' + isInNetwork;
|
||||||
|
|
||||||
if (val != null) {
|
if (val != null) {
|
||||||
|
|
||||||
if (isInNetwork && mediaType === 'Audio') {
|
if (isInNetwork && mediaType === 'Audio') {
|
||||||
// nothing to do, this is always a max value
|
// nothing to do, this is always a max value
|
||||||
} else {
|
} else {
|
||||||
|
@ -65,7 +56,6 @@ define(['appStorage', 'events'], function (appStorage, events) {
|
||||||
};
|
};
|
||||||
|
|
||||||
AppSettings.prototype.maxStaticMusicBitrate = function (val) {
|
AppSettings.prototype.maxStaticMusicBitrate = function (val) {
|
||||||
|
|
||||||
if (val !== undefined) {
|
if (val !== undefined) {
|
||||||
this.set('maxStaticMusicBitrate', val);
|
this.set('maxStaticMusicBitrate', val);
|
||||||
}
|
}
|
||||||
|
@ -75,18 +65,15 @@ define(['appStorage', 'events'], function (appStorage, events) {
|
||||||
};
|
};
|
||||||
|
|
||||||
AppSettings.prototype.maxChromecastBitrate = function (val) {
|
AppSettings.prototype.maxChromecastBitrate = function (val) {
|
||||||
|
|
||||||
if (val != null) {
|
if (val != null) {
|
||||||
this.set('chromecastBitrate1', val);
|
this.set('chromecastBitrate1', val);
|
||||||
}
|
}
|
||||||
|
|
||||||
val = this.get('chromecastBitrate1');
|
val = this.get('chromecastBitrate1');
|
||||||
|
|
||||||
return val ? parseInt(val) : null;
|
return val ? parseInt(val) : null;
|
||||||
};
|
};
|
||||||
|
|
||||||
AppSettings.prototype.syncOnlyOnWifi = function (val) {
|
AppSettings.prototype.syncOnlyOnWifi = function (val) {
|
||||||
|
|
||||||
if (val != null) {
|
if (val != null) {
|
||||||
this.set('syncOnlyOnWifi', val.toString());
|
this.set('syncOnlyOnWifi', val.toString());
|
||||||
}
|
}
|
||||||
|
@ -95,7 +82,6 @@ define(['appStorage', 'events'], function (appStorage, events) {
|
||||||
};
|
};
|
||||||
|
|
||||||
AppSettings.prototype.syncPath = function (val) {
|
AppSettings.prototype.syncPath = function (val) {
|
||||||
|
|
||||||
if (val != null) {
|
if (val != null) {
|
||||||
this.set('syncPath', val);
|
this.set('syncPath', val);
|
||||||
}
|
}
|
||||||
|
@ -104,13 +90,11 @@ define(['appStorage', 'events'], function (appStorage, events) {
|
||||||
};
|
};
|
||||||
|
|
||||||
AppSettings.prototype.cameraUploadServers = function (val) {
|
AppSettings.prototype.cameraUploadServers = function (val) {
|
||||||
|
|
||||||
if (val != null) {
|
if (val != null) {
|
||||||
this.set('cameraUploadServers', val.join(','));
|
this.set('cameraUploadServers', val.join(','));
|
||||||
}
|
}
|
||||||
|
|
||||||
val = this.get('cameraUploadServers');
|
val = this.get('cameraUploadServers');
|
||||||
|
|
||||||
if (val) {
|
if (val) {
|
||||||
return val.split(',');
|
return val.split(',');
|
||||||
}
|
}
|
||||||
|
@ -119,7 +103,6 @@ define(['appStorage', 'events'], function (appStorage, events) {
|
||||||
};
|
};
|
||||||
|
|
||||||
AppSettings.prototype.runAtStartup = function (val) {
|
AppSettings.prototype.runAtStartup = function (val) {
|
||||||
|
|
||||||
if (val != null) {
|
if (val != null) {
|
||||||
this.set('runatstartup', val.toString());
|
this.set('runatstartup', val.toString());
|
||||||
}
|
}
|
||||||
|
@ -128,9 +111,7 @@ define(['appStorage', 'events'], function (appStorage, events) {
|
||||||
};
|
};
|
||||||
|
|
||||||
AppSettings.prototype.set = function (name, value, userId) {
|
AppSettings.prototype.set = function (name, value, userId) {
|
||||||
|
|
||||||
var currentValue = this.get(name, userId);
|
var currentValue = this.get(name, userId);
|
||||||
|
|
||||||
appStorage.setItem(getKey(name, userId), value);
|
appStorage.setItem(getKey(name, userId), value);
|
||||||
|
|
||||||
if (currentValue !== value) {
|
if (currentValue !== value) {
|
||||||
|
@ -139,12 +120,10 @@ define(['appStorage', 'events'], function (appStorage, events) {
|
||||||
};
|
};
|
||||||
|
|
||||||
AppSettings.prototype.get = function (name, userId) {
|
AppSettings.prototype.get = function (name, userId) {
|
||||||
|
|
||||||
return appStorage.getItem(getKey(name, userId));
|
return appStorage.getItem(getKey(name, userId));
|
||||||
};
|
};
|
||||||
|
|
||||||
AppSettings.prototype.enableSystemExternalPlayers = function (val) {
|
AppSettings.prototype.enableSystemExternalPlayers = function (val) {
|
||||||
|
|
||||||
if (val != null) {
|
if (val != null) {
|
||||||
this.set('enableSystemExternalPlayers', val.toString());
|
this.set('enableSystemExternalPlayers', val.toString());
|
||||||
}
|
}
|
||||||
|
|
|
@ -223,7 +223,9 @@ var Dashboard = {
|
||||||
return capabilities = Object.assign(capabilities, appHost.getPushTokenInfo());
|
return capabilities = Object.assign(capabilities, appHost.getPushTokenInfo());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var AppInfo = {};
|
var AppInfo = {};
|
||||||
|
|
||||||
!function () {
|
!function () {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
@ -309,6 +311,10 @@ var AppInfo = {};
|
||||||
return "bower_components";
|
return "bower_components";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getComponentsPath() {
|
||||||
|
return "components";
|
||||||
|
}
|
||||||
|
|
||||||
function getPlaybackManager(playbackManager) {
|
function getPlaybackManager(playbackManager) {
|
||||||
window.addEventListener("beforeunload", function () {
|
window.addEventListener("beforeunload", function () {
|
||||||
try {
|
try {
|
||||||
|
@ -381,14 +387,13 @@ var AppInfo = {};
|
||||||
return self.ResizeObserver;
|
return self.ResizeObserver;
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
define("ResizeObserver", ["thirdparty/resize-observer-polyfill/ResizeObserver"], returnFirstDependency);
|
define("ResizeObserver", [getBowerPath() + "/resize-observer-polyfill/ResizeObserver"], returnFirstDependency);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function initRequireWithBrowser(browser) {
|
function initRequireWithBrowser(browser) {
|
||||||
var bowerPath = getBowerPath();
|
var bowerPath = getBowerPath();
|
||||||
var apiClientBowerPath = bowerPath + "/apiclient";
|
var componentsPath = getComponentsPath();
|
||||||
var componentsPath = "components";
|
|
||||||
|
|
||||||
define("filesystem", [componentsPath + "/filesystem"], returnFirstDependency);
|
define("filesystem", [componentsPath + "/filesystem"], returnFirstDependency);
|
||||||
|
|
||||||
|
@ -400,7 +405,7 @@ var AppInfo = {};
|
||||||
|
|
||||||
define("shell", [componentsPath + "/shell"], returnFirstDependency);
|
define("shell", [componentsPath + "/shell"], returnFirstDependency);
|
||||||
|
|
||||||
define("apiclient", [apiClientBowerPath + "/apiclient"], returnFirstDependency);
|
define("apiclient", [bowerPath + "/apiclient/apiclient"], returnFirstDependency);
|
||||||
|
|
||||||
if ("registerElement" in document) {
|
if ("registerElement" in document) {
|
||||||
define("registerElement", []);
|
define("registerElement", []);
|
||||||
|
@ -434,7 +439,7 @@ var AppInfo = {};
|
||||||
define("loading", [componentsPath + "/loading/loading"], returnFirstDependency);
|
define("loading", [componentsPath + "/loading/loading"], returnFirstDependency);
|
||||||
define("multi-download", [componentsPath + "/multidownload"], returnFirstDependency);
|
define("multi-download", [componentsPath + "/multidownload"], returnFirstDependency);
|
||||||
define("fileDownloader", [componentsPath + "/filedownloader"], returnFirstDependency);
|
define("fileDownloader", [componentsPath + "/filedownloader"], returnFirstDependency);
|
||||||
define("localassetmanager", [apiClientBowerPath + "/localassetmanager"], returnFirstDependency);
|
define("localassetmanager", [bowerPath + "/apiclient/localassetmanager"], returnFirstDependency);
|
||||||
|
|
||||||
if ("cordova" === self.appMode || "android" === self.appMode) {
|
if ("cordova" === self.appMode || "android" === self.appMode) {
|
||||||
define("castSenderApiLoader", [], getDummyCastSenderApiLoader);
|
define("castSenderApiLoader", [], getDummyCastSenderApiLoader);
|
||||||
|
@ -442,9 +447,9 @@ var AppInfo = {};
|
||||||
define("castSenderApiLoader", [], getCastSenderApiLoader);
|
define("castSenderApiLoader", [], getCastSenderApiLoader);
|
||||||
}
|
}
|
||||||
|
|
||||||
define("transfermanager", [apiClientBowerPath + "/sync/transfermanager"], returnFirstDependency);
|
define("transfermanager", [bowerPath + "/apiclient/sync/transfermanager"], returnFirstDependency);
|
||||||
define("filerepository", [apiClientBowerPath + "/sync/filerepository"], returnFirstDependency);
|
define("filerepository", [bowerPath + "/apiclient/sync/filerepository"], returnFirstDependency);
|
||||||
define("localsync", [apiClientBowerPath + "/sync/localsync"], returnFirstDependency);
|
define("localsync", [bowerPath + "/apiclient/sync/localsync"], returnFirstDependency);
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
|
@ -560,16 +565,9 @@ var AppInfo = {};
|
||||||
|
|
||||||
// ensure that appHost is loaded in this point
|
// ensure that appHost is loaded in this point
|
||||||
require(['apphost', 'appRouter'], function (appHost, appRouter) {
|
require(['apphost', 'appRouter'], function (appHost, appRouter) {
|
||||||
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 (browser.iOS) {
|
if (browser.iOS) {
|
||||||
require(['css!css/ios.css']);
|
require(['css!css/ios.css']);
|
||||||
}
|
}
|
||||||
|
@ -609,15 +607,10 @@ var AppInfo = {};
|
||||||
|
|
||||||
require(["playerSelectionMenu", "fullscreenManager"]);
|
require(["playerSelectionMenu", "fullscreenManager"]);
|
||||||
|
|
||||||
if (appHost.supports("sync")) {
|
|
||||||
initLocalSyncEvents();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!AppInfo.isNativeApp && window.ApiClient) {
|
if (!AppInfo.isNativeApp && window.ApiClient) {
|
||||||
require(["css!" + ApiClient.getUrl("Branding/Css")]);
|
require(["css!" + ApiClient.getUrl("Branding/Css")]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -631,20 +624,6 @@ var AppInfo = {};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function syncNow() {
|
|
||||||
require(["localsync"], function (localSync) {
|
|
||||||
localSync.sync();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function initLocalSyncEvents() {
|
|
||||||
require(["serverNotifications", "events"], function (serverNotifications, events) {
|
|
||||||
events.on(serverNotifications, "SyncJobItemReady", syncNow);
|
|
||||||
events.on(serverNotifications, "SyncJobCancelled", syncNow);
|
|
||||||
events.on(serverNotifications, "SyncJobItemCancelled", syncNow);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function onWebComponentsReady(browser) {
|
function onWebComponentsReady(browser) {
|
||||||
initRequireWithBrowser(browser);
|
initRequireWithBrowser(browser);
|
||||||
|
|
||||||
|
@ -653,7 +632,7 @@ var AppInfo = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!window.Promise || browser.web0s) {
|
if (!window.Promise || browser.web0s) {
|
||||||
require(["thirdparty/native-promise-only/lib/npo.src"], init);
|
require([getBowerPath() + "/native-promise-only/lib/npo.src"], init);
|
||||||
} else {
|
} else {
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
@ -664,24 +643,24 @@ var AppInfo = {};
|
||||||
(function () {
|
(function () {
|
||||||
var urlArgs = "v=" + (window.dashboardVersion || new Date().getDate());
|
var urlArgs = "v=" + (window.dashboardVersion || new Date().getDate());
|
||||||
var bowerPath = getBowerPath();
|
var bowerPath = getBowerPath();
|
||||||
var apiClientBowerPath = bowerPath + "/apiclient";
|
var componentsPath = getComponentsPath();
|
||||||
var componentsPath = "components";
|
|
||||||
var paths = {
|
var paths = {
|
||||||
playlisteditor: componentsPath + "/playlisteditor/playlisteditor",
|
playlisteditor: componentsPath + "/playlisteditor/playlisteditor",
|
||||||
medialibrarycreator: componentsPath + "/medialibrarycreator/medialibrarycreator",
|
medialibrarycreator: componentsPath + "/medialibrarycreator/medialibrarycreator",
|
||||||
medialibraryeditor: componentsPath + "/medialibraryeditor/medialibraryeditor",
|
medialibraryeditor: componentsPath + "/medialibraryeditor/medialibraryeditor",
|
||||||
imageoptionseditor: componentsPath + "/imageoptionseditor/imageoptionseditor",
|
imageoptionseditor: componentsPath + "/imageoptionseditor/imageoptionseditor",
|
||||||
humanedate: componentsPath + "/humanedate",
|
humanedate: componentsPath + "/humanedate",
|
||||||
|
apphost: componentsPath + "/apphost",
|
||||||
libraryBrowser: "scripts/librarybrowser",
|
libraryBrowser: "scripts/librarybrowser",
|
||||||
events: apiClientBowerPath + "/events",
|
events: bowerPath + "/apiclient/events",
|
||||||
credentialprovider: apiClientBowerPath + "/credentialprovider",
|
credentialprovider: bowerPath + "/apiclient/credentialprovider",
|
||||||
connectionManagerFactory: bowerPath + "/apiclient/connectionmanager",
|
connectionManagerFactory: bowerPath + "/apiclient/connectionmanager",
|
||||||
visibleinviewport: componentsPath + "/visibleinviewport",
|
visibleinviewport: componentsPath + "/visibleinviewport",
|
||||||
browserdeviceprofile: componentsPath + "/browserdeviceprofile",
|
browserdeviceprofile: componentsPath + "/browserdeviceprofile",
|
||||||
browser: componentsPath + "/browser",
|
browser: componentsPath + "/browser",
|
||||||
inputManager: componentsPath + "/inputManager",
|
inputManager: componentsPath + "/inputManager",
|
||||||
qualityoptions: componentsPath + "/qualityoptions",
|
qualityoptions: componentsPath + "/qualityoptions",
|
||||||
page: "thirdparty/page",
|
page: bowerPath + "/page",
|
||||||
focusManager: componentsPath + "/focusManager",
|
focusManager: componentsPath + "/focusManager",
|
||||||
datetime: componentsPath + "/datetime",
|
datetime: componentsPath + "/datetime",
|
||||||
globalize: componentsPath + "/globalize",
|
globalize: componentsPath + "/globalize",
|
||||||
|
@ -693,10 +672,8 @@ var AppInfo = {};
|
||||||
pluginManager: componentsPath + "/pluginManager",
|
pluginManager: componentsPath + "/pluginManager",
|
||||||
packageManager: componentsPath + "/packagemanager"
|
packageManager: componentsPath + "/packagemanager"
|
||||||
};
|
};
|
||||||
paths.flvjs = "thirdparty/flvjs/flv.min";
|
|
||||||
paths.shaka = "thirdparty/shaka/shaka-player.compiled";
|
|
||||||
paths.apphost = componentsPath + "/apphost";
|
|
||||||
|
|
||||||
|
requirejs.onError = onRequireJsError;
|
||||||
requirejs.config({
|
requirejs.config({
|
||||||
waitSeconds: 0,
|
waitSeconds: 0,
|
||||||
map: {
|
map: {
|
||||||
|
@ -706,13 +683,22 @@ var AppInfo = {};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
bundles: {
|
bundles: {
|
||||||
bundle: ["jstree", "jQuery", "hlsjs", "howler", "swiper", "sortable", "libjass"]
|
bundle: [
|
||||||
|
"flvjs",
|
||||||
|
"jstree",
|
||||||
|
"jQuery",
|
||||||
|
"hlsjs",
|
||||||
|
"howler",
|
||||||
|
"shaka",
|
||||||
|
"swiper",
|
||||||
|
"sortable",
|
||||||
|
"libjass"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
urlArgs: urlArgs,
|
urlArgs: urlArgs,
|
||||||
paths: paths,
|
paths: paths,
|
||||||
onError: onRequireJsError
|
onError: onRequireJsError
|
||||||
});
|
});
|
||||||
requirejs.onError = onRequireJsError;
|
|
||||||
|
|
||||||
// Expose jQuery globally
|
// Expose jQuery globally
|
||||||
require(["jQuery"], function(jQuery) {
|
require(["jQuery"], function(jQuery) {
|
||||||
|
@ -808,7 +794,7 @@ var AppInfo = {};
|
||||||
viewManager.dispatchPageEvents(true);
|
viewManager.dispatchPageEvents(true);
|
||||||
return viewManager;
|
return viewManager;
|
||||||
});
|
});
|
||||||
define('appStorage', [apiClientBowerPath + '/appStorage'], returnFirstDependency);
|
define('appStorage', [bowerPath + "/apiclient/appStorage"], returnFirstDependency);
|
||||||
define("dashboardcss", ["css!css/dashboard"], returnFirstDependency);
|
define("dashboardcss", ["css!css/dashboard"], returnFirstDependency);
|
||||||
define("slideshow", [componentsPath + "/slideshow/slideshow"], returnFirstDependency);
|
define("slideshow", [componentsPath + "/slideshow/slideshow"], returnFirstDependency);
|
||||||
define("fetch", [bowerPath + "/fetch/fetch"], returnFirstDependency);
|
define("fetch", [bowerPath + "/fetch/fetch"], returnFirstDependency);
|
||||||
|
@ -824,13 +810,13 @@ var AppInfo = {};
|
||||||
define("viewSettings", [componentsPath + "/viewsettings/viewsettings"], returnFirstDependency);
|
define("viewSettings", [componentsPath + "/viewsettings/viewsettings"], returnFirstDependency);
|
||||||
define("filterMenu", [componentsPath + "/filtermenu/filtermenu"], returnFirstDependency);
|
define("filterMenu", [componentsPath + "/filtermenu/filtermenu"], returnFirstDependency);
|
||||||
define("sortMenu", [componentsPath + "/sortmenu/sortmenu"], returnFirstDependency);
|
define("sortMenu", [componentsPath + "/sortmenu/sortmenu"], returnFirstDependency);
|
||||||
define("serversync", [apiClientBowerPath + "/sync/serversync"], returnFirstDependency);
|
define("serversync", [bowerPath + "/apiclient/sync/serversync"], returnFirstDependency);
|
||||||
define("multiserversync", [apiClientBowerPath + "/sync/multiserversync"], returnFirstDependency);
|
define("multiserversync", [bowerPath + "/apiclient/sync/multiserversync"], returnFirstDependency);
|
||||||
define("mediasync", [apiClientBowerPath + "/sync/mediasync"], returnFirstDependency);
|
define("mediasync", [bowerPath + "/apiclient/sync/mediasync"], returnFirstDependency);
|
||||||
define("idb", [componentsPath + "/idb"], returnFirstDependency);
|
define("idb", [componentsPath + "/idb"], returnFirstDependency);
|
||||||
define("sanitizefilename", [componentsPath + "/sanitizefilename"], returnFirstDependency);
|
define("sanitizefilename", [componentsPath + "/sanitizefilename"], returnFirstDependency);
|
||||||
define("itemrepository", [apiClientBowerPath + "/sync/itemrepository"], returnFirstDependency);
|
define("itemrepository", [bowerPath + "/apiclient/sync/itemrepository"], returnFirstDependency);
|
||||||
define("useractionrepository", [apiClientBowerPath + "/sync/useractionrepository"], returnFirstDependency);
|
define("useractionrepository", [bowerPath + "/apiclient/sync/useractionrepository"], returnFirstDependency);
|
||||||
define("scroller", [componentsPath + "/scroller"], returnFirstDependency);
|
define("scroller", [componentsPath + "/scroller"], returnFirstDependency);
|
||||||
define("toast", [componentsPath + "/toast/toast"], returnFirstDependency);
|
define("toast", [componentsPath + "/toast/toast"], returnFirstDependency);
|
||||||
define("scrollHelper", [componentsPath + "/scrollhelper"], returnFirstDependency);
|
define("scrollHelper", [componentsPath + "/scrollhelper"], returnFirstDependency);
|
||||||
|
@ -1133,9 +1119,11 @@ var AppInfo = {};
|
||||||
|
|
||||||
return require(["browser"], onWebComponentsReady);
|
return require(["browser"], onWebComponentsReady);
|
||||||
}();
|
}();
|
||||||
|
|
||||||
pageClassOn("viewshow", "standalonePage", function () {
|
pageClassOn("viewshow", "standalonePage", function () {
|
||||||
document.querySelector(".skinHeader").classList.add("noHeaderRight");
|
document.querySelector(".skinHeader").classList.add("noHeaderRight");
|
||||||
});
|
});
|
||||||
|
|
||||||
pageClassOn("viewhide", "standalonePage", function () {
|
pageClassOn("viewhide", "standalonePage", function () {
|
||||||
document.querySelector(".skinHeader").classList.remove("noHeaderRight");
|
document.querySelector(".skinHeader").classList.remove("noHeaderRight");
|
||||||
});
|
});
|
||||||
|
|
|
@ -1297,7 +1297,6 @@
|
||||||
"LabelHomeNetworkQuality": "Hjemme netværk kvalitet:",
|
"LabelHomeNetworkQuality": "Hjemme netværk kvalitet:",
|
||||||
"LabelHomeScreenSectionValue": "Hjemmeskærm sektion {0}:",
|
"LabelHomeScreenSectionValue": "Hjemmeskærm sektion {0}:",
|
||||||
"LabelInternetQuality": "Internet kvalitet:",
|
"LabelInternetQuality": "Internet kvalitet:",
|
||||||
"LabelLocalSyncStatusValue": "Status: {0}",
|
|
||||||
"LabelLogs": "Log:",
|
"LabelLogs": "Log:",
|
||||||
"LabelMatchType": "Passer til type:",
|
"LabelMatchType": "Passer til type:",
|
||||||
"LabelMaxBitrate": "Maks bitrate:",
|
"LabelMaxBitrate": "Maks bitrate:",
|
||||||
|
|
7
src/thirdparty/flvjs/flv.min.js
vendored
7
src/thirdparty/flvjs/flv.min.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue