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

add fetch timeout

This commit is contained in:
Luke Pulverenti 2015-12-06 23:57:04 -05:00
parent 7c3fa06651
commit ba5afc0ae2
14 changed files with 98 additions and 41 deletions

View file

@ -205,7 +205,23 @@
headers['Content-Type'] = contentType; headers['Content-Type'] = contentType;
} }
return fetch(request.url, fetchRequest); if (!request.timeout) {
return fetch(request.url, fetchRequest);
}
return new Promise(function (resolve, reject) {
var timeout = setTimeout(reject, request.timeout);
fetch(request.url, fetchRequest).then(function (response) {
clearTimeout(timeout);
resolve(response);
}, function (error) {
clearTimeout(timeout);
throw error;
});
});
} }
function paramsToString(params) { function paramsToString(params) {
@ -256,9 +272,9 @@
return Promise.reject(response); return Promise.reject(response);
} }
}, function () { }, function (error) {
onFetchFail(request.url, {}); onFetchFail(request.url, {});
return Promise.reject({}); throw error;
}); });
} }
@ -379,7 +395,7 @@
return Promise.reject(response); return Promise.reject(response);
} }
}, function () { }, function (error) {
logger.log("Request failed to " + request.url); logger.log("Request failed to " + request.url);
@ -390,26 +406,26 @@
var previousServerAddress = self.serverAddress(); var previousServerAddress = self.serverAddress();
tryReconnect().then(function () { return tryReconnect().then(function () {
logger.log("Reconnect succeesed"); logger.log("Reconnect succeesed");
request.url = request.url.replace(previousServerAddress, self.serverAddress()); request.url = request.url.replace(previousServerAddress, self.serverAddress());
self.fetchWithFailover(request, false); return self.fetchWithFailover(request, false);
}, function () { }, function (innerError) {
logger.log("Reconnect failed"); logger.log("Reconnect failed");
onFetchFail(request.url, {}); onFetchFail(request.url, {});
return Promise.reject({}); throw innerError;
}); });
} else { } else {
logger.log("Reporting request failure"); logger.log("Reporting request failure");
onFetchFail(request.url, {}); onFetchFail(request.url, {});
return Promise.reject({}); throw error;
} }
}); });
}; };
@ -590,7 +606,13 @@
var now = new Date().getTime(); var now = new Date().getTime();
return self.get(url).then(function () { return self.ajax({
type: "GET",
url: url,
timeout: 5000
}).then(function () {
var responseTimeSeconds = (new Date().getTime() - now) / 1000; var responseTimeSeconds = (new Date().getTime() - now) / 1000;
var bytesPerSecond = byteSize / responseTimeSeconds; var bytesPerSecond = byteSize / responseTimeSeconds;

View file

@ -113,7 +113,23 @@
headers['Content-Type'] = contentType; headers['Content-Type'] = contentType;
} }
return fetch(request.url, fetchRequest); if (!request.timeout) {
return fetch(request.url, fetchRequest);
}
return new Promise(function (resolve, reject) {
var timeout = setTimeout(reject, request.timeout);
fetch(request.url, fetchRequest).then(function (response) {
clearTimeout(timeout);
resolve(response);
}, function (error) {
clearTimeout(timeout);
throw error;
});
});
} }
function paramsToString(params) { function paramsToString(params) {
@ -154,8 +170,8 @@
return Promise.reject(response); return Promise.reject(response);
} }
}, function () { }, function (error) {
return Promise.reject({}); throw error;
}); });
} }

View file

@ -340,7 +340,7 @@
} }
.overflowBackdropCard { .overflowBackdropCard {
width: 80%; width: 84%;
max-width: 400px; max-width: 400px;
} }

View file

@ -463,12 +463,16 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
} }
.itemDetailImage { .itemDetailImage {
-moz-box-shadow: 0px 0 20px #000; border: solid 1px transparent;
-webkit-box-shadow: 0px 0 20px #000;
box-shadow: 0px 0 20px #000;
border: solid 1px #222;
} }
.itemDetailImage.loaded {
-moz-box-shadow: 0px 0 20px #000;
-webkit-box-shadow: 0px 0 20px #000;
box-shadow: 0px 0 20px #000;
border: solid 1px #222;
}
.detailImageContainer img { .detailImageContainer img {
width: 280px; width: 280px;
/* This is just to make sure it always takes up some space */ /* This is just to make sure it always takes up some space */

View file

@ -781,7 +781,10 @@
self.endSession = function () { self.endSession = function () {
castPlayer.stopApp(); self.stop();
setTimeout(function () {
castPlayer.stopApp();
}, 1000);
}; };
self.volumeUp = function () { self.volumeUp = function () {

View file

@ -167,7 +167,7 @@
function playInternalPostMediaSourceSelection(item, mediaSource, startPosition, deferred) { function playInternalPostMediaSourceSelection(item, mediaSource, startPosition, deferred) {
Dashboard.hideModalLoadingMsg(); Dashboard.hideLoadingMsg();
currentItem = item; currentItem = item;
currentMediaSource = mediaSource; currentMediaSource = mediaSource;

View file

@ -644,7 +644,7 @@
} }
function enableScrollX() { function enableScrollX() {
return browserInfo.mobile && AppInfo.enableAppLayouts; return browserInfo.mobile && AppInfo.enableAppLayouts && screen.availWidth <= 1000;
} }
function getPortraitShape() { function getPortraitShape() {
@ -899,7 +899,7 @@
html = LibraryBrowser.getPosterViewHtml({ html = LibraryBrowser.getPosterViewHtml({
items: result.Items, items: result.Items,
shape: getPortraitShape(), shape: getPortraitShape(),
showTitle: false, showTitle: true,
centerText: true, centerText: true,
lazy: true lazy: true
}); });

View file

@ -3260,6 +3260,11 @@
} }
var img = elem.querySelector('img'); var img = elem.querySelector('img');
img.onload = function () {
if (img.src.indexOf('empty.png') == -1) {
img.classList.add('loaded');
}
};
ImageLoader.lazyImage(img, url); ImageLoader.lazyImage(img, url);
}, },

View file

@ -763,10 +763,9 @@
curr.addEventListener('click', onCardClick); curr.addEventListener('click', onCardClick);
if (AppInfo.isTouchPreferred) { if (AppInfo.isTouchPreferred) {
curr.removeEventListener('contextmenu', disableEvent); curr.removeEventListener('contextmenu', disableEvent);
curr.addEventListener('contextmenu', disableEvent); curr.addEventListener('contextmenu', disableEvent);
//this.off('contextmenu', onContextMenu);
//this.on('contextmenu', onContextMenu);
} }
else { else {
curr.removeEventListener('contextmenu', onContextMenu); curr.removeEventListener('contextmenu', onContextMenu);
@ -820,6 +819,7 @@
hammertime.on('press', onTapHold); hammertime.on('press', onTapHold);
hammertime.on('pressup', onTapHoldUp); hammertime.on('pressup', onTapHoldUp);
}); });
showTapHoldHelp(element); showTapHoldHelp(element);
} }
@ -863,9 +863,16 @@
showSelections(card); showSelections(card);
if (s.stopPropagation) {
e.stopPropagation();
}
e.preventDefault(); e.preventDefault();
e.stopPropagation();
return false; return false;
} }
e.preventDefault();
e.stopPropagation();
return false;
} }
function onTapHoldUp(e) { function onTapHoldUp(e) {

View file

@ -272,7 +272,7 @@
var userAtTop = showUserAtTop(); var userAtTop = showUserAtTop();
var homeHref = window.ApiClient ? 'index.html' : 'selectserver.html'; var homeHref = window.ApiClient ? 'index.html' : 'selectserver.html?showuser=1';
var hasUserImage = user.imageUrl && AppInfo.enableUserImage; var hasUserImage = user.imageUrl && AppInfo.enableUserImage;
@ -376,7 +376,7 @@
html += '<a class="sidebarLink lnkMediaFolder lnkMySync" data-itemid="mysync" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mysync.html"><iron-icon icon="sync" class="sidebarLinkIcon"></iron-icon><span class="sidebarLinkText">' + Globalize.translate('ButtonSync') + '</span></a>'; html += '<a class="sidebarLink lnkMediaFolder lnkMySync" data-itemid="mysync" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mysync.html"><iron-icon icon="sync" class="sidebarLinkIcon"></iron-icon><span class="sidebarLinkText">' + Globalize.translate('ButtonSync') + '</span></a>';
if (Dashboard.isConnectMode()) { if (Dashboard.isConnectMode()) {
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="selectserver" onclick="return LibraryMenu.onLinkClicked(event, this);" href="selectserver.html"><iron-icon icon="wifi" class="sidebarLinkIcon"></iron-icon><span class="sidebarLinkText">' + Globalize.translate('ButtonSelectServer') + '</span></a>'; html += '<a class="sidebarLink lnkMediaFolder" data-itemid="selectserver" onclick="return LibraryMenu.onLinkClicked(event, this);" href="selectserver.html?showuser=1"><iron-icon icon="wifi" class="sidebarLinkIcon"></iron-icon><span class="sidebarLinkText">' + Globalize.translate('ButtonSelectServer') + '</span></a>';
} }
if (showUserAtTop()) { if (showUserAtTop()) {
@ -790,7 +790,7 @@
} }
} }
pageClassOn('pageinit', 'page', function () { pageClassOn('pagebeforeshow', 'page', function () {
var page = this; var page = this;

View file

@ -845,7 +845,7 @@
if (firstItem.MediaType === "Video") { if (firstItem.MediaType === "Video") {
Dashboard.showModalLoadingMsg(); Dashboard.showLoadingMsg();
} }
if (options.startPositionTicks || firstItem.MediaType !== 'Video' || !AppSettings.enableCinemaMode()) { if (options.startPositionTicks || firstItem.MediaType !== 'Video' || !AppSettings.enableCinemaMode()) {
@ -1064,7 +1064,7 @@
} }
if (item.IsPlaceHolder) { if (item.IsPlaceHolder) {
Dashboard.hideModalLoadingMsg(); Dashboard.hideLoadingMsg();
MediaController.showPlaybackInfoErrorMessage('PlaceHolder'); MediaController.showPlaybackInfoErrorMessage('PlaceHolder');
return; return;
} }
@ -1073,7 +1073,7 @@
if (item.MediaType == 'Video' && AppSettings.enableAutomaticBitrateDetection() && (new Date().getTime() - (self.lastBitrateDetections[bitrateDetectionKey] || 0)) > 300000) { if (item.MediaType == 'Video' && AppSettings.enableAutomaticBitrateDetection() && (new Date().getTime() - (self.lastBitrateDetections[bitrateDetectionKey] || 0)) > 300000) {
Dashboard.showModalLoadingMsg(); Dashboard.showLoadingMsg();
ApiClient.detectBitrate().then(function (bitrate) { ApiClient.detectBitrate().then(function (bitrate) {
Logger.log('Max bitrate auto detected to ' + bitrate); Logger.log('Max bitrate auto detected to ' + bitrate);
@ -1096,7 +1096,7 @@
if (item.MediaType === "Video") { if (item.MediaType === "Video") {
Dashboard.showModalLoadingMsg(); Dashboard.showLoadingMsg();
} }
MediaController.getPlaybackInfo(item.Id, deviceProfile, startPosition).then(function (playbackInfoResult) { MediaController.getPlaybackInfo(item.Id, deviceProfile, startPosition).then(function (playbackInfoResult) {
@ -1122,7 +1122,7 @@
callback(mediaSource); callback(mediaSource);
} }
} else { } else {
Dashboard.hideModalLoadingMsg(); Dashboard.hideLoadingMsg();
MediaController.showPlaybackInfoErrorMessage('NoCompatibleStream'); MediaController.showPlaybackInfoErrorMessage('NoCompatibleStream');
} }
}); });
@ -1140,7 +1140,7 @@
function playInternalPostMediaSourceSelection(item, mediaSource, startPosition, callback) { function playInternalPostMediaSourceSelection(item, mediaSource, startPosition, callback) {
Dashboard.hideModalLoadingMsg(); Dashboard.hideLoadingMsg();
self.currentMediaSource = mediaSource; self.currentMediaSource = mediaSource;
self.currentItem = item; self.currentItem = item;

View file

@ -334,24 +334,24 @@
function updatePageStyle(page) { function updatePageStyle(page) {
if (ConnectionManager.isLoggedIntoConnect()) { if (getParameterByName('showuser') == '1') {
$(page).addClass('libraryPage').addClass('noSecondaryNavPage').removeClass('standalonePage'); $(page).addClass('libraryPage').addClass('noSecondaryNavPage').removeClass('standalonePage');
} else { } else {
$(page).removeClass('libraryPage').removeClass('noSecondaryNavPage').addClass('standalonePage'); $(page).removeClass('libraryPage').removeClass('noSecondaryNavPage').addClass('standalonePage');
} }
} }
$(document).on('pageinit pagebeforeshow', "#selectServerPage", function () { pageIdOn('pagebeforeshow', "selectServerPage", function () {
var page = this; var page = this;
updatePageStyle(page); updatePageStyle(page);
});
}).on('pageshow', "#selectServerPage", function () { pageIdOn('pageshow', "selectServerPage", function () {
var page = this; var page = this;
loadPage(page); loadPage(page);
}); });
})(); })();

View file

@ -1757,7 +1757,7 @@ var AppInfo = {};
function initRequire() { function initRequire() {
var urlArgs = "v=" + window.dashboardVersion; var urlArgs = "v=" + (window.dashboardVersion || new Date().getDate());
var paths = { var paths = {
velocity: "bower_components/velocity/velocity.min", velocity: "bower_components/velocity/velocity.min",
@ -2209,7 +2209,7 @@ var AppInfo = {};
postInitDependencies.push('scripts/nowplayingbar'); postInitDependencies.push('scripts/nowplayingbar');
} }
//postInitDependencies.push('components/testermessage'); postInitDependencies.push('components/testermessage');
require(postInitDependencies); require(postInitDependencies);
}); });

View file

@ -4,7 +4,7 @@
<title>Emby</title> <title>Emby</title>
</head> </head>
<body> <body>
<div id="selectServerPage" data-role="page" class="page libraryPage noSecondaryNavPage" data-theme="b" data-require="scripts/selectserver,paper-fab,paper-item-body,paper-icon-item"> <div id="selectServerPage" data-role="page" class="page noSecondaryNavPage standalonePage" data-theme="b" data-require="scripts/selectserver,paper-fab,paper-item-body,paper-icon-item">
<div data-role="content"> <div data-role="content">