mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update page caching
This commit is contained in:
parent
b038bc1785
commit
a81a127cc6
15 changed files with 72 additions and 55 deletions
6
dashboard-ui/cordova/android/logging.js
vendored
Normal file
6
dashboard-ui/cordova/android/logging.js
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
window.Logger = {
|
||||||
|
|
||||||
|
log: function (str) {
|
||||||
|
LoggingBridge.log(str);
|
||||||
|
}
|
||||||
|
};
|
|
@ -96,6 +96,8 @@
|
||||||
elem.innerHTML = html;
|
elem.innerHTML = html;
|
||||||
ImageLoader.lazyChildren(elem);
|
ImageLoader.lazyChildren(elem);
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
|
|
||||||
|
LibraryBrowser.setLastRefreshed(page);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,7 +186,7 @@
|
||||||
page.querySelector('#resumableItems').classList.remove('hiddenScrollX');
|
page.querySelector('#resumableItems').classList.remove('hiddenScrollX');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NavHelper.needsRefresh(page)) {
|
if (LibraryBrowser.needsRefresh(page)) {
|
||||||
reload(page);
|
reload(page);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -55,6 +55,7 @@
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
|
|
||||||
|
LibraryBrowser.setLastRefreshed(page);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +63,7 @@
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
if (NavHelper.needsRefresh(page)) {
|
if (LibraryBrowser.needsRefresh(page)) {
|
||||||
loadUpcoming(page);
|
loadUpcoming(page);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -176,7 +176,7 @@
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
if (NavHelper.needsRefresh(page)) {
|
if (LibraryBrowser.needsRefresh(page)) {
|
||||||
if (window.ApiClient) {
|
if (window.ApiClient) {
|
||||||
var userId = Dashboard.getCurrentUserId();
|
var userId = Dashboard.getCurrentUserId();
|
||||||
|
|
||||||
|
@ -192,6 +192,8 @@
|
||||||
showWelcomeIfNeeded(page, result);
|
showWelcomeIfNeeded(page, result);
|
||||||
}
|
}
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
|
|
||||||
|
LibraryBrowser.setLastRefreshed(page);
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
var pageSizeKey = 'pagesize_v4';
|
var pageSizeKey = 'pagesize_v4';
|
||||||
|
|
||||||
return {
|
return {
|
||||||
getDefaultPageSize: function (key, defaultValue) {
|
getDefaultPageSize: function(key, defaultValue) {
|
||||||
|
|
||||||
var saved = appStorage.getItem(key || pageSizeKey);
|
var saved = appStorage.getItem(key || pageSizeKey);
|
||||||
|
|
||||||
|
@ -21,13 +21,13 @@
|
||||||
return isChrome ? 200 : 100;
|
return isChrome ? 200 : 100;
|
||||||
},
|
},
|
||||||
|
|
||||||
getDefaultItemsView: function (view, mobileView) {
|
getDefaultItemsView: function(view, mobileView) {
|
||||||
|
|
||||||
return $.browser.mobile ? mobileView : view;
|
return $.browser.mobile ? mobileView : view;
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
loadSavedQueryValues: function (key, query) {
|
loadSavedQueryValues: function(key, query) {
|
||||||
|
|
||||||
var values = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId());
|
var values = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId());
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
return query;
|
return query;
|
||||||
},
|
},
|
||||||
|
|
||||||
saveQueryValues: function (key, query) {
|
saveQueryValues: function(key, query) {
|
||||||
|
|
||||||
var values = {};
|
var values = {};
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
saveViewSetting: function (key, value) {
|
saveViewSetting: function(key, value) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
appStorage.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
|
appStorage.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
|
||||||
|
@ -68,7 +68,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
getSavedViewSetting: function (key) {
|
getSavedViewSetting: function(key) {
|
||||||
|
|
||||||
var deferred = $.Deferred();
|
var deferred = $.Deferred();
|
||||||
var val = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId() + '_view');
|
var val = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId() + '_view');
|
||||||
|
@ -77,6 +77,27 @@
|
||||||
return deferred.promise();
|
return deferred.promise();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
needsRefresh: function(elem) {
|
||||||
|
|
||||||
|
var last = elem.getAttribute('data-lastrefresh') || '0';
|
||||||
|
|
||||||
|
if (NavHelper.isBack()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var now = new Date().getTime();
|
||||||
|
if ((now - parseInt(last)) < 90000) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
|
||||||
|
setLastRefreshed: function(elem) {
|
||||||
|
|
||||||
|
elem.setAttribute('data-lastrefresh', new Date().getTime());
|
||||||
|
},
|
||||||
|
|
||||||
getDateParamValue: function (date) {
|
getDateParamValue: function (date) {
|
||||||
|
|
||||||
function formatDigit(i) {
|
function formatDigit(i) {
|
||||||
|
|
|
@ -699,28 +699,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// The first time we create the view menu bar, wait until doc ready + login validated
|
|
||||||
// Otherwise we run into the jQM redirect back and forth problem
|
|
||||||
var updateViewMenuBarBeforePageShow = false;
|
|
||||||
|
|
||||||
$(document).on('pagebeforeshowready', ".page", function () {
|
$(document).on('pagebeforeshowready', ".page", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
requiresDashboardDrawerRefresh = true;
|
requiresDashboardDrawerRefresh = true;
|
||||||
|
|
||||||
if (updateViewMenuBarBeforePageShow) {
|
onPageBeforeShowDocumentReady(page);
|
||||||
onPageBeforeShowDocumentReady(page);
|
|
||||||
}
|
|
||||||
|
|
||||||
}).one('pageshowready', ".page", function () {
|
|
||||||
|
|
||||||
var page = this;
|
|
||||||
|
|
||||||
$(function () {
|
|
||||||
onPageBeforeShowDocumentReady(page);
|
|
||||||
updateViewMenuBarBeforePageShow = true;
|
|
||||||
});
|
|
||||||
|
|
||||||
}).on('pageshowready', ".page", function () {
|
}).on('pageshowready', ".page", function () {
|
||||||
|
|
||||||
|
@ -757,10 +742,7 @@
|
||||||
if (AppInfo.enableBottomTabs) {
|
if (AppInfo.enableBottomTabs) {
|
||||||
page.classList.add('noSecondaryNavPage');
|
page.classList.add('noSecondaryNavPage');
|
||||||
|
|
||||||
$(function () {
|
document.querySelector('.footer').classList.add('footerOverBottomTabs');
|
||||||
|
|
||||||
document.querySelector('.footer').classList.add('footerOverBottomTabs');
|
|
||||||
});
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
@ -972,25 +954,7 @@ $.fn.createHoverTouch = function () {
|
||||||
return backUrl == getWindowUrl();
|
return backUrl == getWindowUrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
function needsRefresh(elem) {
|
|
||||||
|
|
||||||
var last = elem.getAttribute('data-lastrefresh') || '0';
|
|
||||||
|
|
||||||
if (isBack()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var now = new Date().getTime();
|
|
||||||
if ((now - parseInt(last)) < 60000) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
elem.setAttribute('data-lastrefresh', now);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
window.NavHelper = {
|
window.NavHelper = {
|
||||||
needsRefresh: needsRefresh,
|
|
||||||
isBack: isBack
|
isBack: isBack
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,8 @@
|
||||||
renderChannels(page, result);
|
renderChannels(page, result);
|
||||||
|
|
||||||
hideLoadingMessage(page);
|
hideLoadingMessage(page);
|
||||||
|
|
||||||
|
LibraryBrowser.setLastRefreshed(page);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,7 +118,7 @@
|
||||||
// Can't use pagebeforeshow here or the loading popup won't center correctly
|
// Can't use pagebeforeshow here or the loading popup won't center correctly
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
if (NavHelper.needsRefresh(page)) {
|
if (LibraryBrowser.needsRefresh(page)) {
|
||||||
query.UserId = Dashboard.getCurrentUserId();
|
query.UserId = Dashboard.getCurrentUserId();
|
||||||
LibraryBrowser.loadSavedQueryValues('movies', query);
|
LibraryBrowser.loadSavedQueryValues('movies', query);
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -70,6 +70,8 @@
|
||||||
|
|
||||||
Dashboard.hideModalLoadingMsg();
|
Dashboard.hideModalLoadingMsg();
|
||||||
|
|
||||||
|
LibraryBrowser.setLastRefreshed(page);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var channelPagingHtml = LibraryBrowser.getQueryPagingHtml({
|
var channelPagingHtml = LibraryBrowser.getQueryPagingHtml({
|
||||||
|
@ -484,7 +486,7 @@
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
if (NavHelper.needsRefresh(page)) {
|
if (LibraryBrowser.needsRefresh(page)) {
|
||||||
reloadPage(page);
|
reloadPage(page);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -28,6 +28,8 @@
|
||||||
elem.innerHTML = html;
|
elem.innerHTML = html;
|
||||||
ImageLoader.lazyChildren(elem);
|
ImageLoader.lazyChildren(elem);
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
|
|
||||||
|
LibraryBrowser.setLastRefreshed(page);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,7 +118,7 @@
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
if (NavHelper.needsRefresh(page)) {
|
if (LibraryBrowser.needsRefresh(page)) {
|
||||||
reload(page);
|
reload(page);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -249,7 +249,7 @@
|
||||||
$(containers).removeClass('hiddenScrollX');
|
$(containers).removeClass('hiddenScrollX');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NavHelper.needsRefresh(page)) {
|
if (LibraryBrowser.needsRefresh(page)) {
|
||||||
loadResume(page, userId, parentId);
|
loadResume(page, userId, parentId);
|
||||||
loadLatest(page, userId, parentId);
|
loadLatest(page, userId, parentId);
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,8 @@
|
||||||
ImageLoader.lazyChildren(elem);
|
ImageLoader.lazyChildren(elem);
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
|
|
||||||
|
LibraryBrowser.setLastRefreshed(page);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,7 +194,7 @@
|
||||||
$(containers).removeClass('hiddenScrollX');
|
$(containers).removeClass('hiddenScrollX');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NavHelper.needsRefresh(page)) {
|
if (LibraryBrowser.needsRefresh(page)) {
|
||||||
loadLatest(page, parentId);
|
loadLatest(page, parentId);
|
||||||
loadPlaylists(page, parentId);
|
loadPlaylists(page, parentId);
|
||||||
loadRecentlyPlayed(page, parentId);
|
loadRecentlyPlayed(page, parentId);
|
||||||
|
|
|
@ -2016,6 +2016,10 @@ var AppInfo = {};
|
||||||
|
|
||||||
if (Dashboard.isConnectMode()) {
|
if (Dashboard.isConnectMode()) {
|
||||||
|
|
||||||
|
if (AppInfo.isNativeApp && $.browser.android) {
|
||||||
|
require(['cordova/android/logging']);
|
||||||
|
}
|
||||||
|
|
||||||
require(['appstorage'], function () {
|
require(['appstorage'], function () {
|
||||||
|
|
||||||
capabilities.DeviceProfile = MediaPlayer.getDeviceProfile(Math.max(screen.height, screen.width));
|
capabilities.DeviceProfile = MediaPlayer.getDeviceProfile(Math.max(screen.height, screen.width));
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
|
|
||||||
function loadLatest(page) {
|
function loadLatest(page) {
|
||||||
|
|
||||||
|
Dashboard.showLoadingMsg();
|
||||||
|
|
||||||
var userId = Dashboard.getCurrentUserId();
|
var userId = Dashboard.getCurrentUserId();
|
||||||
|
|
||||||
var parentId = LibraryMenu.getTopParentId();
|
var parentId = LibraryMenu.getTopParentId();
|
||||||
|
@ -68,13 +70,16 @@
|
||||||
var elem = page.querySelector('#latestEpisodes');
|
var elem = page.querySelector('#latestEpisodes');
|
||||||
elem.innerHTML = html;
|
elem.innerHTML = html;
|
||||||
ImageLoader.lazyChildren(elem);
|
ImageLoader.lazyChildren(elem);
|
||||||
|
|
||||||
|
Dashboard.hideLoadingMsg();
|
||||||
|
LibraryBrowser.setLastRefreshed(page);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).on('pagebeforeshowready', "#tvNextUpPage", function () {
|
$(document).on('pagebeforeshowready', "#tvNextUpPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
if (NavHelper.needsRefresh(page)) {
|
if (LibraryBrowser.needsRefresh(page)) {
|
||||||
loadLatest(page);
|
loadLatest(page);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -92,6 +92,8 @@
|
||||||
elem.innerHTML = html;
|
elem.innerHTML = html;
|
||||||
ImageLoader.lazyChildren(elem);
|
ImageLoader.lazyChildren(elem);
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
|
|
||||||
|
LibraryBrowser.setLastRefreshed(page);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,7 +182,7 @@
|
||||||
page.querySelector('#resumableItems').classList.remove('hiddenScrollX');
|
page.querySelector('#resumableItems').classList.remove('hiddenScrollX');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NavHelper.needsRefresh(page)) {
|
if (LibraryBrowser.needsRefresh(page)) {
|
||||||
reload(page);
|
reload(page);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -56,13 +56,15 @@
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
|
|
||||||
|
LibraryBrowser.setLastRefreshed(page);
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
$(document).on('pagebeforeshowready', "#tvUpcomingPage", function () {
|
$(document).on('pagebeforeshowready', "#tvUpcomingPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
if (NavHelper.needsRefresh(page)) {
|
if (LibraryBrowser.needsRefresh(page)) {
|
||||||
loadUpcoming(page);
|
loadUpcoming(page);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue