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

update access denied exceptions

This commit is contained in:
Luke Pulverenti 2015-09-25 22:31:13 -04:00
parent 294281602e
commit ad38cf4783
17 changed files with 154 additions and 138 deletions

View file

@ -724,7 +724,7 @@
var deferred = DeferredBuilder.Deferred(); var deferred = DeferredBuilder.Deferred();
require(['serverdiscovery'], function () { require(['serverdiscovery'], function () {
ServerDiscovery.findServers(2500).done(function (foundServers) { ServerDiscovery.findServers(1500).done(function (foundServers) {
var servers = foundServers.map(function (foundServer) { var servers = foundServers.map(function (foundServer) {

View file

@ -7,7 +7,7 @@
var fetcher = window.BackgroundFetch; var fetcher = window.BackgroundFetch;
fetcher.configure(onBackgroundFetch, onBackgroundFetchFailed, { fetcher.configure(onBackgroundFetch, onBackgroundFetchFailed, {
stopOnTerminate: true // <-- false is default stopOnTerminate: false // <-- false is default
}); });
} }
@ -55,7 +55,7 @@
Logger.log('- BackgroundFetch failed'); Logger.log('- BackgroundFetch failed');
} }
var syncInterval = 1800000; var syncInterval = 3600000;
function restartInterval() { function restartInterval() {
@ -65,11 +65,12 @@
}, syncInterval); }, syncInterval);
if (lastStart > 0 && (now - lastStart) >= syncInterval) { if (lastStart > 0 && (new Date().getTime() - lastStart) >= syncInterval) {
setTimeout(function () { setTimeout(function () {
startSync(); startSync();
}, 3000);
}, 5000);
} }
} }

View file

@ -98,13 +98,20 @@
TabBar.show(); TabBar.show();
} }
var isFirstHide = true;
function hideTabs() { function hideTabs() {
if (!initComplete) { if (!initComplete) {
return; return;
} }
TabBar.hide(); var hide = function () { TabBar.hide(); };
if (isFirstHide) {
isFirstHide = false;
setTimeout(hide, 1000);
} else {
hide();
}
} }
Dashboard.ready(function () { Dashboard.ready(function () {
@ -113,7 +120,7 @@
Events.on(ConnectionManager, 'localusersignedin', showTabs); Events.on(ConnectionManager, 'localusersignedin', showTabs);
Events.on(ConnectionManager, 'localusersignedout', hideTabs); Events.on(ConnectionManager, 'localusersignedout', hideTabs);
Events.on(MediaController, 'playbackstart', onPlaybackStart); Events.on(MediaController, 'beforeplaybackstart', onPlaybackStart);
Events.on(MediaController, 'playbackstop', onPlaybackStop); Events.on(MediaController, 'playbackstop', onPlaybackStop);
}); });

View file

@ -350,7 +350,7 @@
var deferred = DeferredBuilder.Deferred(); var deferred = DeferredBuilder.Deferred();
Logger.log('Deleting ' + path); Logger.log('Deleting ' + path);
resolveFile(path, function (fileEntry) { resolveFile(path, null, function (fileEntry) {
fileEntry.remove(function () { fileEntry.remove(function () {
Logger.log('Deleted ' + path); Logger.log('Deleted ' + path);
@ -370,18 +370,27 @@
return deferred.promise(); return deferred.promise();
} }
function resolveFile(path, success, fail) { function resolveFile(path, options, success, fail) {
getFileSystem().done(function (fileSystem) { getFileSystem().done(function (fileSystem) {
fileSystem.root.getFile(path, { create: false }, success, fail); fileSystem.root.getFile(path, options || { create: false }, success, fail);
}); });
} }
function createLocalItem(libraryItem, serverInfo, originalFileName) { function createLocalItem(libraryItem, serverInfo, originalFileName) {
var path = getDirectoryPath(libraryItem, serverInfo); var enableFriendlyPath = false;
var path = getDirectoryPath(libraryItem, serverInfo, enableFriendlyPath);
if (enableFriendlyPath) {
path.push(getLocalFileName(libraryItem, originalFileName)); path.push(getLocalFileName(libraryItem, originalFileName));
} else {
var nameParts = originalFileName.split('.');
var ext = nameParts.length > 1 ? ('.' + nameParts[nameParts.length - 1]) : '';
path.push('media' + ext);
}
var item = {}; var item = {};
@ -407,7 +416,11 @@
return deferred.promise(); return deferred.promise();
} }
function getDirectoryPath(item, server) { function getDirectoryPath(item, server, enableFriendlyPath) {
if (!enableFriendlyPath) {
return ['sync', item.Id];
}
var parts = []; var parts = [];
parts.push("sync"); parts.push("sync");
@ -462,58 +475,6 @@
function downloadFile(url, localPath, enableBackground) { function downloadFile(url, localPath, enableBackground) {
return downloadWithFileTransfer(url, localPath, enableBackground); return downloadWithFileTransfer(url, localPath, enableBackground);
if (!enableBackground) {
return downloadWithFileTransfer(url, localPath);
}
var deferred = DeferredBuilder.Deferred();
if (localStorage.getItem('sync-' + url) == '1') {
Logger.log('file was downloaded previously');
deferred.resolveWith(null, [localPath]);
return deferred.promise();
}
Logger.log('downloading: ' + url + ' to ' + localPath);
getFileSystem().done(function (fileSystem) {
createDirectory(getParentDirectoryPath(localPath)).done(function () {
fileSystem.root.getFile(localPath, { create: true }, function (targetFile) {
var downloader = new BackgroundTransfer.BackgroundDownloader();
// Create a new download operation.
var download = downloader.createDownload(url, targetFile);
var isQueued = true;
// Start the download and persist the promise to be able to cancel the download.
var downloadPromise = download.startAsync().then(function () {
// on success
Logger.log('Downloaded local url: ' + localPath);
localStorage.setItem('sync-' + url, '1');
isQueued = false;
}, function () {
// on error
Logger.log('download failed: ' + url + ' to ' + localPath);
deferred.reject();
}, function (value) {
// on progress
//Logger.log('download progress: ' + value);
});
});
}).fail(getOnFail(deferred));;
}).fail(getOnFail(deferred));
return deferred.promise();
} }
var activeDownloads = []; var activeDownloads = [];
@ -544,16 +505,15 @@
Logger.log('downloading: ' + url + ' to ' + localPath); Logger.log('downloading: ' + url + ' to ' + localPath);
getFileSystem().done(function (fileSystem) {
createDirectory(getParentDirectoryPath(localPath)).done(function () { createDirectory(getParentDirectoryPath(localPath)).done(function () {
fileSystem.root.getFile(localPath, { create: true }, function (targetFile) { resolveFile(localPath, { create: true }, function (targetFile) {
var isQueued = enableBackground; var isQueued = enableBackground;
var isError = false; var isError = false;
var ft = new FileTransfer(); var ft = new FileTransfer();
activeDownloads.push(downloadKey);
ft.download(url, targetFile.toURL(), function (entry) { ft.download(url, targetFile.toURL(), function (entry) {
removeDownload(downloadKey); removeDownload(downloadKey);
@ -578,7 +538,6 @@
deferred.reject(); deferred.reject();
} }
}); });
activeDownloads.push(downloadKey);
if (enableBackground) { if (enableBackground) {
// Give it a short period of time to see if it has already been completed before. Either way, move on and resolve it. // Give it a short period of time to see if it has already been completed before. Either way, move on and resolve it.
@ -590,11 +549,14 @@
// true indicates that it's queued // true indicates that it's queued
deferred.resolveWith(null, [localPath, isQueued]); deferred.resolveWith(null, [localPath, isQueued]);
} }
}, 1500); }, 2000);
} }
});
}).fail(getOnFail(deferred)); }, function () {
Logger.log('getFile failed for ' + localPath);
deferred.reject();
});
}).fail(getOnFail(deferred)); }).fail(getOnFail(deferred));
@ -761,7 +723,7 @@
return deferred.promise(); return deferred.promise();
} }
resolveFile(path, function (fileEntry) { resolveFile(path, null, function (fileEntry) {
Logger.log('fileExists: true - path: ' + path); Logger.log('fileExists: true - path: ' + path);
deferred.resolveWith(null, [true]); deferred.resolveWith(null, [true]);
@ -806,7 +768,7 @@
return deferred.promise(); return deferred.promise();
} }
resolveFile(path, function (fileEntry) { resolveFile(path, null, function (fileEntry) {
Logger.log('translateFilePath fileExists: true - path: ' + path); Logger.log('translateFilePath fileExists: true - path: ' + path);
Logger.log('translateFilePath resolving with: ' + fileEntry.toURL()); Logger.log('translateFilePath resolving with: ' + fileEntry.toURL());
deferred.resolveWith(null, [fileEntry.toURL()]); deferred.resolveWith(null, [fileEntry.toURL()]);

View file

@ -6,13 +6,15 @@
<body> <body>
<div id="nowPlayingPage" data-role="page" class="page libraryPage nowPlayingPage noSecondaryNavPage" data-contextname="${TitleRemoteControl}" data-theme="b" data-require="jqmcollapsible,scripts/nowplayingpage,paperbuttonstyle"> <div id="nowPlayingPage" data-role="page" class="page libraryPage nowPlayingPage noSecondaryNavPage" data-contextname="${TitleRemoteControl}" data-theme="b" data-require="jqmcollapsible,scripts/nowplayingpage,paperbuttonstyle">
<paper-tabs selected="{{selected}}" class="nowPlayingPagePaperTabs" hidescrollbuttons noink> <div class="libraryViewNav">
<paper-tabs class="nowPlayingPagePaperTabs" hidescrollbuttons noink>
<paper-tab>${TabNowPlaying}</paper-tab> <paper-tab>${TabNowPlaying}</paper-tab>
<paper-tab>${TabControls}</paper-tab> <paper-tab>${TabControls}</paper-tab>
<paper-tab>${TabPlaylist}</paper-tab> <paper-tab>${TabPlaylist}</paper-tab>
</paper-tabs> </paper-tabs>
</div>
<div data-role="content" style="overflow:visible;"> <div data-role="content" style="overflow:visible;">

View file

@ -256,7 +256,7 @@
var link = '<a href="http://emby.media" target="_blank">http://emby.media</a>'; var link = '<a href="http://emby.media" target="_blank">http://emby.media</a>';
$('.embyIntroDownloadMessage', page).html(Globalize.translate('EmbyIntroDownloadMessage', link)); $('.embyIntroDownloadMessage', page).html(Globalize.translate('EmbyIntroDownloadMessage', link));
}).on('pageshowready', "#connectLoginPage", function () { }).on('pageshow', "#connectLoginPage", function () {
var page = this; var page = this;
loadPage(page); loadPage(page);

View file

@ -1003,7 +1003,7 @@
} }
}; };
$(document).on('pageshowready', "#dashboardPage", DashboardPage.onPageShow).on('pagebeforehide', "#dashboardPage", DashboardPage.onPageHide); $(document).on('pageshow', "#dashboardPage", DashboardPage.onPageShow).on('pagebeforehide', "#dashboardPage", DashboardPage.onPageHide);
(function ($, document, window) { (function ($, document, window) {
@ -1287,7 +1287,7 @@ $(document).on('pageshowready', "#dashboardPage", DashboardPage.onPageShow).on('
result.CustomPrefs[welcomeTourKey] = welcomeDismissValue; result.CustomPrefs[welcomeTourKey] = welcomeDismissValue;
ApiClient.updateDisplayPreferences('dashboard', result, userId, 'dashboard'); ApiClient.updateDisplayPreferences('dashboard', result, userId, 'dashboard');
$(page).off('pageshowready', onPageShowReadyCheckTour); $(page).off('pageshow', onPageShowCheckTour);
}); });
} }
@ -1344,7 +1344,7 @@ $(document).on('pageshowready', "#dashboardPage", DashboardPage.onPageShow).on('
}); });
} }
function onPageShowReadyCheckTour() { function onPageShowCheckTour() {
var page = this; var page = this;
var apiClient = ApiClient; var apiClient = ApiClient;
@ -1362,13 +1362,13 @@ $(document).on('pageshowready', "#dashboardPage", DashboardPage.onPageShow).on('
takeTour(page, Dashboard.getCurrentUserId()); takeTour(page, Dashboard.getCurrentUserId());
}); });
}).on('pageshowready', "#dashboardPage", onPageShowReadyCheckTour); }).on('pageshow', "#dashboardPage", onPageShowCheckTour);
})(jQuery, document, window); })(jQuery, document, window);
(function () { (function () {
$(document).on('pageshowready', ".type-interior", function () { $(document).on('pageshow', ".type-interior", function () {
var page = this; var page = this;

View file

@ -250,7 +250,7 @@
$('.libraryViewNav', ownerpage).removeClass('libraryViewNavWithMinHeight'); $('.libraryViewNav', ownerpage).removeClass('libraryViewNavWithMinHeight');
} }
$(ownerpage).on('pageshow', LibraryBrowser.onTabbedpagebeforeshow); $(ownerpage).on('pagebeforeshow', LibraryBrowser.onTabbedpagebeforeshow);
pages.addEventListener('iron-select', function () { pages.addEventListener('iron-select', function () {
// When transition animations are used, add a content loading delay to allow the animations to finish // When transition animations are used, add a content loading delay to allow the animations to finish
@ -406,7 +406,7 @@
afterNavigate.call($($.mobile.activePage)[0]); afterNavigate.call($($.mobile.activePage)[0]);
} else { } else {
$(document).one('pageshow', '.page', afterNavigate); $(document).one('pagebeforeshow', '.page', afterNavigate);
Dashboard.navigate(url); Dashboard.navigate(url);
} }
}, },

View file

@ -249,9 +249,13 @@
} }
Events.on(player, 'playbackstop', onPlaybackStop); Events.on(player, 'playbackstop', onPlaybackStop);
Events.on(player, 'playbackstart', onPlaybackStart); Events.on(player, 'beforeplaybackstart', onBeforePlaybackStart);
}; };
function onBeforePlaybackStart(e, state) {
$(self).trigger('beforeplaybackstart', [state, this]);
}
function onPlaybackStart(e, state) { function onPlaybackStart(e, state) {
$(self).trigger('playbackstart', [state, this]); $(self).trigger('playbackstart', [state, this]);
} }
@ -450,7 +454,12 @@
return deferred.promise(); return deferred.promise();
}; };
function doWithPlaybackValidation(fn) { function doWithPlaybackValidation(player, fn) {
if (!player.isLocalPlayer) {
fn();
return;
}
requirejs(["scripts/registrationservices"], function () { requirejs(["scripts/registrationservices"], function () {
RegistrationServices.validateFeature('playback').done(fn); RegistrationServices.validateFeature('playback').done(fn);
@ -479,7 +488,7 @@
self.play = function (options) { self.play = function (options) {
doWithPlaybackValidation(function () { doWithPlaybackValidation(currentPlayer, function () {
if (typeof (options) === 'string') { if (typeof (options) === 'string') {
options = { ids: [options] }; options = { ids: [options] };
} }
@ -490,13 +499,13 @@
self.shuffle = function (id) { self.shuffle = function (id) {
doWithPlaybackValidation(function () { doWithPlaybackValidation(currentPlayer, function () {
currentPlayer.shuffle(id); currentPlayer.shuffle(id);
}); });
}; };
self.instantMix = function (id) { self.instantMix = function (id) {
doWithPlaybackValidation(function () { doWithPlaybackValidation(currentPlayer, function () {
currentPlayer.instantMix(id); currentPlayer.instantMix(id);
}); });
}; };

View file

@ -1078,6 +1078,8 @@
mediaRenderer.init().done(function () { mediaRenderer.init().done(function () {
self.onBeforePlaybackStart(mediaRenderer, item, mediaSource);
self.setSrcIntoRenderer(mediaRenderer, streamInfo, item, self.currentMediaSource); self.setSrcIntoRenderer(mediaRenderer, streamInfo, item, self.currentMediaSource);
self.streamInfo = streamInfo; self.streamInfo = streamInfo;

View file

@ -1721,6 +1721,13 @@
// Nothing to setup here // Nothing to setup here
}; };
self.onBeforePlaybackStart = function (mediaRenderer, item, mediaSource) {
var state = self.getPlayerStateInternal(mediaRenderer, item, mediaSource);
Events.trigger(self, 'beforeplaybackstart', [state]);
};
self.onPlaybackStart = function (mediaRenderer, item, mediaSource) { self.onPlaybackStart = function (mediaRenderer, item, mediaSource) {
var state = self.getPlayerStateInternal(mediaRenderer, item, mediaSource); var state = self.getPlayerStateInternal(mediaRenderer, item, mediaSource);
@ -1942,6 +1949,8 @@
// Set volume first to avoid an audible change // Set volume first to avoid an audible change
mediaRenderer.volume(initialVolume); mediaRenderer.volume(initialVolume);
self.onBeforePlaybackStart(mediaRenderer, item, mediaSource);
mediaRenderer.setCurrentSrc(streamInfo, item, mediaSource); mediaRenderer.setCurrentSrc(streamInfo, item, mediaSource);
self.streamInfo = streamInfo; self.streamInfo = streamInfo;
}); });

View file

@ -777,8 +777,10 @@
if (AppInfo.enableNowPlayingPageBottomTabs) { if (AppInfo.enableNowPlayingPageBottomTabs) {
tabs.alignBottom = true; tabs.alignBottom = true;
tabs.classList.add('bottom'); tabs.classList.add('bottom');
//page.classList.add('noSecondaryNavPage');
} else { } else {
tabs.classList.remove('bottom'); tabs.classList.remove('bottom');
//page.classList.remove('noSecondaryNavPage');
} }
LibraryBrowser.configureSwipeTabs(page, tabs, page.querySelectorAll('neon-animated-pages')[0]); LibraryBrowser.configureSwipeTabs(page, tabs, page.querySelectorAll('neon-animated-pages')[0]);

View file

@ -59,6 +59,10 @@
return enableScrollX() ? 'overflowPortrait' : 'portrait'; return enableScrollX() ? 'overflowPortrait' : 'portrait';
} }
function getSquareShape() {
return enableScrollX() ? 'overflowSquare' : 'square';
}
function getLibraryButtonsHtml(items) { function getLibraryButtonsHtml(items) {
var html = ""; var html = "";
@ -612,9 +616,14 @@
html += '</div>'; html += '</div>';
} }
if (enableScrollX()) {
html += '<div class="hiddenScrollX itemsContainer">';
} else {
html += '<div class="itemsContainer">';
}
html += LibraryBrowser.getPosterViewHtml({ html += LibraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: "autohome", shape: getSquareShape(),
showTitle: true, showTitle: true,
showParentTitle: true, showParentTitle: true,
coverImage: true, coverImage: true,
@ -622,9 +631,11 @@
showDetailsMenu: true, showDetailsMenu: true,
centerText: true centerText: true
}); });
html += '</div>';
elem.innerHTML = html; elem.innerHTML = html;
ImageLoader.lazyChildren(elem); ImageLoader.lazyChildren(elem);
$(elem).createCardMenus();
}); });
} }

View file

@ -1747,11 +1747,15 @@ var AppInfo = {};
AppInfo.enableNavDrawer = false; AppInfo.enableNavDrawer = false;
AppInfo.enableSearchInTopMenu = false; AppInfo.enableSearchInTopMenu = false;
AppInfo.enableHomeFavorites = false; AppInfo.enableHomeFavorites = false;
AppInfo.enableNowPlayingBar = false;
AppInfo.enableCustomHomeSections = false; AppInfo.enableCustomHomeSections = false;
AppInfo.enableHomeTabs = false; AppInfo.enableHomeTabs = false;
AppInfo.enableNowPlayingPageBottomTabs = false; AppInfo.enableNowPlayingPageBottomTabs = false;
// Disable the now playing bar for the iphone since we already have the now playing tab at the bottom
if (navigator.userAgent.toString().toLowerCase().indexOf('iphone') != -1) {
AppInfo.enableNowPlayingBar = false;
}
} else { } else {
if (isMobile) { if (isMobile) {
@ -2479,8 +2483,6 @@ pageClassOn('pageshow', "page", function () {
} }
} }
Events.trigger(page, 'pageshowready');
Dashboard.ensureHeader(page); Dashboard.ensureHeader(page);
if (apiClient && !apiClient.isWebSocketOpen()) { if (apiClient && !apiClient.isWebSocketOpen()) {

View file

@ -326,6 +326,8 @@
function reloadData(page) { function reloadData(page) {
lastDataLoad = 0;
Dashboard.showLoadingMsg(); Dashboard.showLoadingMsg();
var options = {}; var options = {};
@ -344,9 +346,6 @@
loadData(page, response.Items); loadData(page, response.Items);
setTimeout(function () {
loadData(page, response.Items);
}, 2000);
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
}); });
@ -396,7 +395,6 @@
$(document).on('pageshow', ".syncActivityPage", function () { $(document).on('pageshow', ".syncActivityPage", function () {
var page = this; var page = this;
lastDataLoad = 0;
Dashboard.getPluginSecurityInfo().done(function (pluginSecurityInfo) { Dashboard.getPluginSecurityInfo().done(function (pluginSecurityInfo) {

View file

@ -225,3 +225,11 @@ paper-tab {
.nowPlayingPageBackButton { .nowPlayingPageBackButton {
display: none !important; display: none !important;
} }
.nowPlayingPage .libraryViewNav {
top: 0 !important;
}
.nowPlayingPage {
padding-top: 40px !important;
}

View file

@ -3193,10 +3193,13 @@ $.widget( "mobile.page", {
if (from) { if (from) {
from[0].style.display = 'none'; from[0].style.display = 'none';
//var pages = document.querySelectorAll("div[data-role='page']"); var pages = this.element[0].childNodes;
//for (var i = 0, length = pages.length; i < length; i++) { for (var i = 0, length = pages.length; i < length; i++) {
// pages[i].style.display = 'none'; var pg = pages[i];
//} if (pg.getAttribute && pg.getAttribute('data-role') == 'page') {
pg.style.display = 'none';
}
}
} }
var toPage = to[0]; var toPage = to[0];