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

avoid buffering http responses

This commit is contained in:
Luke Pulverenti 2016-10-06 14:55:01 -04:00
parent 86a369b500
commit 170b720d0b
22 changed files with 102 additions and 42 deletions

View file

@ -1273,7 +1273,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo
if (coveredImage) { if (coveredImage) {
imgClass += ' coveredImage-img'; imgClass += ' coveredImage-img';
} }
cardImageContainerOpen += '<img class="' + imgClass + '" data-vibrant="' + cardFooterId + '" data-swatch="db" data-src="' + imgUrl + '" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" />'; cardImageContainerOpen += '<img crossOrigin="Anonymous" class="' + imgClass + '" data-vibrant="' + cardFooterId + '" data-swatch="db" data-src="' + imgUrl + '" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" />';
} else { } else {
cardImageContainerOpen = imgUrl ? ('<div class="' + cardImageContainerClass + ' lazy" data-src="' + imgUrl + '">') : ('<div class="' + cardImageContainerClass + '">'); cardImageContainerOpen = imgUrl ? ('<div class="' + cardImageContainerClass + ' lazy" data-src="' + imgUrl + '">') : ('<div class="' + cardImageContainerClass + '">');

View file

@ -147,6 +147,19 @@ define(['appStorage', 'browser'], function (appStorage, browser) {
if (supportsFullscreen()) { if (supportsFullscreen()) {
features.push('fullscreen'); features.push('fullscreen');
} }
if (!browser.mobile) {
if (browser.safari) {
if (browser.versionMajor && browser.versionMajor >= 10) {
features.push('imageanalysis');
}
} else {
features.push('imageanalysis');
}
}
return features; return features;
}(); }();

View file

@ -40,7 +40,7 @@
</button> </button>
</div> </div>
<div id="btnManualUpdateContainer"> <div id="btnManualUpdateContainer">
<a href="http://emby.media/download" target="_blank">${PleaseUpdateManually}</a>
</div> </div>
</div> </div>
<p id="ports"></p> <p id="ports"></p>

View file

@ -178,6 +178,12 @@
$('#btnManualUpdateContainer', page).show(); $('#btnManualUpdateContainer', page).show();
} }
if (systemInfo.PackageName == 'synology') {
$('#btnManualUpdateContainer').html(Globalize.translate('SynologyUpdateInstructions'));
} else {
$('#btnManualUpdateContainer').html('<a href="http://emby.media/download" target="_blank">' + Globalize.translate('PleaseUpdateManually') + '</a>');
}
DashboardPage.renderPaths(page, systemInfo); DashboardPage.renderPaths(page, systemInfo);
DashboardPage.renderHasPendingRestart(page, systemInfo.HasPendingRestart); DashboardPage.renderHasPendingRestart(page, systemInfo.HasPendingRestart);
}); });

View file

@ -1,4 +1,4 @@
define(['components/categorysyncbuttons', 'cardBuilder', 'emby-itemscontainer'], function (categorysyncbuttons, cardBuilder) { define(['components/categorysyncbuttons', 'cardBuilder', 'apphost', 'emby-itemscontainer'], function (categorysyncbuttons, cardBuilder, appHost) {
function getNextUpPromise() { function getNextUpPromise() {
@ -25,6 +25,8 @@
var html = ''; var html = '';
var supportsImageAnalysis = appHost.supports('imageanalysis');
html += cardBuilder.getCardsHtml({ html += cardBuilder.getCardsHtml({
items: result.Items, items: result.Items,
shape: "backdrop", shape: "backdrop",
@ -35,8 +37,10 @@
preferThumb: true, preferThumb: true,
showDetailsMenu: true, showDetailsMenu: true,
centerText: true, centerText: true,
overlayPlayButton: AppInfo.enableAppLayouts, overlayPlayButton: AppInfo.enableAppLayouts && !supportsImageAnalysis,
context: 'home-nextup' context: 'home-nextup',
cardLayout: supportsImageAnalysis,
vibrant: supportsImageAnalysis
}); });
var elem = page.querySelector('#nextUpItems'); var elem = page.querySelector('#nextUpItems');

View file

@ -1,4 +1,4 @@
define(['datetime', 'cardBuilder', 'emby-itemscontainer', 'scrollStyles'], function (datetime, cardBuilder) { define(['datetime', 'cardBuilder', 'apphost', 'emby-itemscontainer', 'scrollStyles'], function (datetime, cardBuilder, appHost) {
function getUpcomingPromise() { function getUpcomingPromise() {
@ -108,6 +108,8 @@
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">'; html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">';
} }
var supportsImageAnalysis = appHost.supports('imageanalysis');
html += cardBuilder.getCardsHtml({ html += cardBuilder.getCardsHtml({
items: group.items, items: group.items,
showLocationTypeIndicator: false, showLocationTypeIndicator: false,
@ -118,9 +120,11 @@
showDetailsMenu: true, showDetailsMenu: true,
centerText: true, centerText: true,
context: 'home-upcoming', context: 'home-upcoming',
overlayMoreButton: true, overlayMoreButton: !supportsImageAnalysis,
showParentTitle: true, showParentTitle: true,
allowBottomPadding: allowBottomPadding allowBottomPadding: allowBottomPadding,
cardLayout: supportsImageAnalysis,
vibrant: supportsImageAnalysis
}); });
html += '</div>'; html += '</div>';

View file

@ -1143,7 +1143,7 @@
overlayText: true, overlayText: true,
lazy: true, lazy: true,
showDetailsMenu: true, showDetailsMenu: true,
overlayPlayButton: AppInfo.enableAppLayouts overlayPlayButton: true
}); });
} }
else if (item.Type == "GameSystem") { else if (item.Type == "GameSystem") {

View file

@ -120,6 +120,7 @@
posterOptions.showYear = true; posterOptions.showYear = true;
posterOptions.cardLayout = true; posterOptions.cardLayout = true;
posterOptions.centerText = false; posterOptions.centerText = false;
posterOptions.vibrant = true;
html = cardBuilder.getCardsHtml(posterOptions); html = cardBuilder.getCardsHtml(posterOptions);
} }

View file

@ -1,4 +1,4 @@
define(['libraryBrowser', 'cardBuilder', 'dom', 'scrollStyles', 'emby-itemscontainer', 'emby-tabs', 'emby-button'], function (libraryBrowser, cardBuilder, dom) { define(['libraryBrowser', 'cardBuilder', 'apphost', 'scrollStyles', 'emby-itemscontainer', 'emby-tabs', 'emby-button'], function (libraryBrowser, cardBuilder, appHost) {
function enableScrollX() { function enableScrollX() {
return browserInfo.mobile && AppInfo.enableAppLayouts; return browserInfo.mobile && AppInfo.enableAppLayouts;
@ -113,6 +113,8 @@
function renderItems(page, items, sectionClass, overlayButton, shape) { function renderItems(page, items, sectionClass, overlayButton, shape) {
var supportsImageAnalysis = appHost.supports('imageanalysis');
var html = cardBuilder.getCardsHtml({ var html = cardBuilder.getCardsHtml({
items: items, items: items,
preferThumb: !shape, preferThumb: !shape,
@ -124,12 +126,14 @@
coverImage: true, coverImage: true,
overlayText: false, overlayText: false,
lazy: true, lazy: true,
overlayMoreButton: overlayButton != 'play', overlayMoreButton: overlayButton != 'play' && !supportsImageAnalysis,
overlayPlayButton: overlayButton == 'play', overlayPlayButton: overlayButton == 'play',
allowBottomPadding: !enableScrollX(), allowBottomPadding: !enableScrollX(),
showAirTime: true, showAirTime: true,
showAirDateTime: true, showAirDateTime: true,
showChannelName: true showChannelName: true,
vibrant: true,
cardLayout: supportsImageAnalysis
//cardFooterAside: 'logo' //cardFooterAside: 'logo'
}); });

View file

@ -113,7 +113,8 @@
lazy: true, lazy: true,
cardLayout: true, cardLayout: true,
showTitle: true, showTitle: true,
showItemCounts: true showItemCounts: true,
vibrant: true
}); });
} }
else if (viewStyle == "Banner") { else if (viewStyle == "Banner") {
@ -143,7 +144,8 @@
showTitle: true, showTitle: true,
centerText: false, centerText: false,
cardLayout: true, cardLayout: true,
showItemCounts: true showItemCounts: true,
vibrant: true
}); });
} }
else { else {

View file

@ -1,4 +1,4 @@
define(['events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'emby-itemscontainer'], function (events, libraryBrowser, imageLoader, alphaPicker, listView, cardBuilder) { define(['events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'apphost', 'emby-itemscontainer'], function (events, libraryBrowser, imageLoader, alphaPicker, listView, cardBuilder, appHost) {
return function (view, params, tabContent) { return function (view, params, tabContent) {
@ -92,6 +92,8 @@
var html; var html;
var viewStyle = self.getCurrentViewStyle(); var viewStyle = self.getCurrentViewStyle();
var supportsImageAnalysis = appHost.supports('imageanalysis');
if (viewStyle == "Thumb") { if (viewStyle == "Thumb") {
html = cardBuilder.getCardsHtml({ html = cardBuilder.getCardsHtml({
@ -114,7 +116,7 @@
cardLayout: true, cardLayout: true,
showTitle: true, showTitle: true,
showYear: true, showYear: true,
vibrant: true vibrant: supportsImageAnalysis
}); });
} }
else if (viewStyle == "Banner") { else if (viewStyle == "Banner") {
@ -145,7 +147,7 @@
showYear: true, showYear: true,
lazy: true, lazy: true,
cardLayout: true, cardLayout: true,
vibrant: true vibrant: supportsImageAnalysis
}); });
} }
else { else {

View file

@ -110,7 +110,8 @@
coverImage: true, coverImage: true,
showParentTitle: true, showParentTitle: true,
lazy: true, lazy: true,
cardLayout: true cardLayout: true,
vibrant: true
}); });
} }
else { else {

View file

@ -111,7 +111,8 @@
coverImage: true, coverImage: true,
lazy: true, lazy: true,
cardLayout: true, cardLayout: true,
showSongCount: true showSongCount: true,
vibrant: true
}); });
} }
else { else {

View file

@ -79,7 +79,8 @@
showItemCounts: true, showItemCounts: true,
cardLayout: true, cardLayout: true,
showTitle: true, showTitle: true,
lazy: true lazy: true,
vibrant: true
}); });
} }
else if (viewStyle == "PosterCard") { else if (viewStyle == "PosterCard") {
@ -90,7 +91,8 @@
showItemCounts: true, showItemCounts: true,
lazy: true, lazy: true,
cardLayout: true, cardLayout: true,
showTitle: true showTitle: true,
vibrant: true
}); });
} }
else if (viewStyle == "Poster") { else if (viewStyle == "Poster") {

View file

@ -45,10 +45,8 @@
} }
function showTextSuggestions() { function showTextSuggestions() {
if (AppInfo.enableAppLayouts) {
textSuggestions.classList.remove('hide'); textSuggestions.classList.remove('hide');
} }
}
function getAdditionalTextLines(hint) { function getAdditionalTextLines(hint) {
@ -176,10 +174,8 @@
}, 300); }, 300);
} }
if (AppInfo.enableAppLayouts) {
showTextSuggestions(); showTextSuggestions();
loadSuggestions(view); loadSuggestions(view);
}
view.querySelector('.txtSearch').addEventListener('input', function () { view.querySelector('.txtSearch').addEventListener('input', function () {
onSearchChange(this.value); onSearchChange(this.value);

View file

@ -1,4 +1,4 @@
define(['libraryBrowser', 'cardBuilder', 'appSettings', 'components/groupedcards', 'dom', 'scrollStyles', 'emby-button', 'paper-icon-button-light', 'emby-itemscontainer'], function (libraryBrowser, cardBuilder, appSettings, groupedcards, dom) { define(['libraryBrowser', 'cardBuilder', 'appSettings', 'components/groupedcards', 'dom', 'apphost', 'scrollStyles', 'emby-button', 'paper-icon-button-light', 'emby-itemscontainer'], function (libraryBrowser, cardBuilder, appSettings, groupedcards, dom, appHost) {
function getUserViews(userId) { function getUserViews(userId) {
@ -450,6 +450,7 @@
} else { } else {
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">'; html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">';
} }
html += cardBuilder.getCardsHtml({ html += cardBuilder.getCardsHtml({
items: items, items: items,
shape: scrollX ? 'overflowBackdrop' : shape, shape: scrollX ? 'overflowBackdrop' : shape,
@ -555,6 +556,9 @@
} else { } else {
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">'; html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">';
} }
var supportsImageAnalysis = appHost.supports('imageanalysis');
html += cardBuilder.getCardsHtml({ html += cardBuilder.getCardsHtml({
items: result.Items, items: result.Items,
preferThumb: true, preferThumb: true,
@ -566,7 +570,10 @@
overlayPlayButton: true, overlayPlayButton: true,
context: 'home', context: 'home',
centerText: true, centerText: true,
allowBottomPadding: !enableScrollX() allowBottomPadding: !enableScrollX(),
cardLayout: supportsImageAnalysis,
vibrant: supportsImageAnalysis,
cardFooterAside: 'none'
}); });
html += '</div>'; html += '</div>';
} }
@ -684,6 +691,9 @@
} else { } else {
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">'; html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">';
} }
var supportsImageAnalysis = appHost.supports('imageanalysis');
html += cardBuilder.getCardsHtml({ html += cardBuilder.getCardsHtml({
items: result.Items, items: result.Items,
shape: enableScrollX() ? 'autooverflow' : 'auto', shape: enableScrollX() ? 'autooverflow' : 'auto',
@ -696,7 +706,10 @@
overlayText: false, overlayText: false,
overlayPlayButton: true, overlayPlayButton: true,
allowBottomPadding: !enableScrollX(), allowBottomPadding: !enableScrollX(),
preferThumb: true preferThumb: true,
cardLayout: supportsImageAnalysis,
vibrant: supportsImageAnalysis,
cardFooterAside: 'none'
}); });
html += '</div>'; html += '</div>';

View file

@ -2800,7 +2800,6 @@ var AppInfo = {};
initRequireWithBrowser(browser); initRequireWithBrowser(browser);
window.browserInfo = browser; window.browserInfo = browser;
setAppInfo(); setAppInfo();
setDocumentClasses(browser); setDocumentClasses(browser);

View file

@ -61,7 +61,7 @@
centerText: true, centerText: true,
lazy: true, lazy: true,
showTitle: false, showTitle: false,
overlayPlayButton: AppInfo.enableAppLayouts overlayPlayButton: true
}); });
} }

View file

@ -1,4 +1,4 @@
define(['libraryBrowser', 'dom', 'components/categorysyncbuttons', 'cardBuilder', 'scrollStyles', 'emby-itemscontainer', 'emby-tabs', 'emby-button'], function (libraryBrowser, dom, categorysyncbuttons, cardBuilder) { define(['libraryBrowser', 'dom', 'components/categorysyncbuttons', 'cardBuilder', 'apphost', 'scrollStyles', 'emby-itemscontainer', 'emby-tabs', 'emby-button'], function (libraryBrowser, dom, categorysyncbuttons, cardBuilder, appHost) {
return function (view, params) { return function (view, params) {
@ -34,6 +34,9 @@
} }
var container = view.querySelector('#nextUpItems'); var container = view.querySelector('#nextUpItems');
var supportsImageAnalysis = appHost.supports('imageanalysis');
cardBuilder.buildCards(result.Items, { cardBuilder.buildCards(result.Items, {
itemsContainer: container, itemsContainer: container,
preferThumb: true, preferThumb: true,
@ -43,7 +46,10 @@
showParentTitle: true, showParentTitle: true,
overlayText: false, overlayText: false,
centerText: true, centerText: true,
overlayPlayButton: AppInfo.enableAppLayouts overlayPlayButton: true,
cardLayout: supportsImageAnalysis,
vibrant: supportsImageAnalysis,
cardFooterAside: 'none'
}); });
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
@ -92,6 +98,7 @@
var allowBottomPadding = !enableScrollX(); var allowBottomPadding = !enableScrollX();
var container = view.querySelector('#resumableItems'); var container = view.querySelector('#resumableItems');
cardBuilder.buildCards(result.Items, { cardBuilder.buildCards(result.Items, {
itemsContainer: container, itemsContainer: container,
preferThumb: true, preferThumb: true,

View file

@ -1,4 +1,4 @@
define(['events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'emby-itemscontainer'], function (events, libraryBrowser, imageLoader, alphaPicker, listView, cardBuilder) { define(['events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'apphost', 'emby-itemscontainer'], function (events, libraryBrowser, imageLoader, alphaPicker, listView, cardBuilder, appHost) {
return function (view, params, tabContent) { return function (view, params, tabContent) {
@ -92,6 +92,8 @@
var html; var html;
var viewStyle = self.getCurrentViewStyle(); var viewStyle = self.getCurrentViewStyle();
var supportsImageAnalysis = appHost.supports('imageanalysis');
if (viewStyle == "Thumb") { if (viewStyle == "Thumb") {
html = cardBuilder.getCardsHtml({ html = cardBuilder.getCardsHtml({
@ -114,7 +116,7 @@
cardLayout: true, cardLayout: true,
showTitle: true, showTitle: true,
showSeriesYear: true, showSeriesYear: true,
vibrant: true vibrant: supportsImageAnalysis
}); });
} }
else if (viewStyle == "Banner") { else if (viewStyle == "Banner") {
@ -145,7 +147,7 @@
showYear: true, showYear: true,
lazy: true, lazy: true,
cardLayout: true, cardLayout: true,
vibrant: true vibrant: supportsImageAnalysis
}); });
} }
else { else {

View file

@ -1,4 +1,4 @@
define(['datetime', 'libraryBrowser', 'cardBuilder', 'scrollStyles', 'emby-itemscontainer'], function (datetime, libraryBrowser, cardBuilder) { define(['datetime', 'libraryBrowser', 'cardBuilder', 'apphost', 'scrollStyles', 'emby-itemscontainer'], function (datetime, libraryBrowser, cardBuilder, appHost) {
function getUpcomingPromise(context, params) { function getUpcomingPromise(context, params) {
@ -110,6 +110,8 @@
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">'; html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap">';
} }
var supportsImageAnalysis = appHost.supports('imageanalysis');
html += cardBuilder.getCardsHtml({ html += cardBuilder.getCardsHtml({
items: group.items, items: group.items,
showLocationTypeIndicator: false, showLocationTypeIndicator: false,
@ -121,8 +123,8 @@
centerText: true, centerText: true,
showParentTitle: true, showParentTitle: true,
allowBottomPadding: allowBottomPadding, allowBottomPadding: allowBottomPadding,
cardLayout: true, cardLayout: supportsImageAnalysis,
vibrant: true vibrant: supportsImageAnalysis
}); });
html += '</div>'; html += '</div>';

View file

@ -2142,5 +2142,6 @@
"LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.", "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Emby apps on other devices to access media files directly.",
"ButtonPlayExternalPlayer": "Play with external player", "ButtonPlayExternalPlayer": "Play with external player",
"WillRecord": "Will record", "WillRecord": "Will record",
"NotScheduledToRecord": "Not scheduled to record" "NotScheduledToRecord": "Not scheduled to record",
"SynologyUpdateInstructions": "Please login to DSM and go to Package Center to update."
} }