mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update action sheet
This commit is contained in:
parent
a81a127cc6
commit
d1842ae4e3
24 changed files with 246 additions and 98 deletions
|
@ -66,11 +66,12 @@
|
|||
return o.ironIcon;
|
||||
}).length;
|
||||
|
||||
html += '<paper-menu>';
|
||||
for (var i = 0, length = options.items.length; i < length; i++) {
|
||||
|
||||
var option = options.items[i];
|
||||
|
||||
html += '<paper-button class="block menuButton ripple btnOption" data-id="' + option.id + '" style="margin:0;">';
|
||||
html += '<paper-menu-item class="actionSheetMenuItem" data-id="' + option.id + '" style="display:block;">';
|
||||
|
||||
if (option.ironIcon) {
|
||||
html += '<iron-icon icon="' + option.ironIcon + '"></iron-icon>';
|
||||
|
@ -79,8 +80,9 @@
|
|||
html += '<iron-icon></iron-icon>';
|
||||
}
|
||||
html += '<span>' + option.name + '</span>';
|
||||
html += '</paper-button>';
|
||||
html += '</paper-menu-item>';
|
||||
}
|
||||
html += '</paper-menu>';
|
||||
|
||||
if (isScrollable) {
|
||||
html += '</paper-dialog-scrollable>';
|
||||
|
@ -106,7 +108,7 @@
|
|||
$(this).remove();
|
||||
});
|
||||
|
||||
$('.btnOption', dlg).on('click', function () {
|
||||
$('.actionSheetMenuItem', dlg).on('click', function () {
|
||||
|
||||
var selectedId = this.getAttribute('data-id');
|
||||
|
||||
|
|
|
@ -122,10 +122,6 @@
|
|||
return false;
|
||||
}
|
||||
|
||||
if ($.browser.android && AppInfo.isNativeApp) {
|
||||
return screen.availWidth >= 1200;
|
||||
}
|
||||
|
||||
if ($.browser.mobile) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -108,6 +108,8 @@
|
|||
|
||||
$.when(promises).done(function () {
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
||||
LibraryBrowser.setLastRefreshed(page);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -117,7 +119,9 @@
|
|||
|
||||
var userId = Dashboard.getCurrentUserId();
|
||||
|
||||
loadSections(page, userId);
|
||||
if (LibraryBrowser.needsRefresh(page)) {
|
||||
loadSections(page, userId);
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery, document);
|
|
@ -3,7 +3,7 @@
|
|||
var pageSizeKey = 'pagesize_v4';
|
||||
|
||||
return {
|
||||
getDefaultPageSize: function(key, defaultValue) {
|
||||
getDefaultPageSize: function (key, defaultValue) {
|
||||
|
||||
var saved = appStorage.getItem(key || pageSizeKey);
|
||||
|
||||
|
@ -21,13 +21,13 @@
|
|||
return isChrome ? 200 : 100;
|
||||
},
|
||||
|
||||
getDefaultItemsView: function(view, mobileView) {
|
||||
getDefaultItemsView: function (view, mobileView) {
|
||||
|
||||
return $.browser.mobile ? mobileView : view;
|
||||
|
||||
},
|
||||
|
||||
loadSavedQueryValues: function(key, query) {
|
||||
loadSavedQueryValues: function (key, query) {
|
||||
|
||||
var values = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId());
|
||||
|
||||
|
@ -41,7 +41,7 @@
|
|||
return query;
|
||||
},
|
||||
|
||||
saveQueryValues: function(key, query) {
|
||||
saveQueryValues: function (key, query) {
|
||||
|
||||
var values = {};
|
||||
|
||||
|
@ -59,7 +59,7 @@
|
|||
}
|
||||
},
|
||||
|
||||
saveViewSetting: function(key, value) {
|
||||
saveViewSetting: function (key, value) {
|
||||
|
||||
try {
|
||||
appStorage.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
|
||||
|
@ -68,7 +68,7 @@
|
|||
}
|
||||
},
|
||||
|
||||
getSavedViewSetting: function(key) {
|
||||
getSavedViewSetting: function (key) {
|
||||
|
||||
var deferred = $.Deferred();
|
||||
var val = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId() + '_view');
|
||||
|
@ -77,25 +77,39 @@
|
|||
return deferred.promise();
|
||||
},
|
||||
|
||||
needsRefresh: function(elem) {
|
||||
needsRefresh: function (elem) {
|
||||
|
||||
var last = elem.getAttribute('data-lastrefresh') || '0';
|
||||
var last = parseInt(elem.getAttribute('data-lastrefresh') || '0');
|
||||
|
||||
if (!last) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (NavHelper.isBack()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var now = new Date().getTime();
|
||||
if ((now - parseInt(last)) < 90000) {
|
||||
var cacheDuration = 300000;
|
||||
if (!AppInfo.isNativeApp && ($.browser.ipad || $.browser.iphone || $.browser.android)) {
|
||||
cacheDuration = 10000;
|
||||
}
|
||||
|
||||
else if (!$.browser.mobile) {
|
||||
cacheDuration = 60000;
|
||||
}
|
||||
|
||||
if ((now - last) < cacheDuration) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
setLastRefreshed: function(elem) {
|
||||
|
||||
setLastRefreshed: function (elem) {
|
||||
|
||||
elem.setAttribute('data-lastrefresh', new Date().getTime());
|
||||
elem.classList.add('hasrefreshtime');
|
||||
},
|
||||
|
||||
getDateParamValue: function (date) {
|
||||
|
@ -535,13 +549,6 @@
|
|||
|
||||
var href = LibraryBrowser.getHrefInternal(item, context);
|
||||
|
||||
if (context) {
|
||||
if (context != 'livetv') {
|
||||
href += href.indexOf('?') == -1 ? "?context=" : "&context=";
|
||||
href += context;
|
||||
}
|
||||
}
|
||||
|
||||
if (context != 'livetv') {
|
||||
if (topParentId == null && context != 'playlists') {
|
||||
topParentId = LibraryMenu.getTopParentId();
|
||||
|
@ -566,6 +573,8 @@
|
|||
return item.url;
|
||||
}
|
||||
|
||||
var contextSuffix = context ? ('&context=' + context) : '';
|
||||
|
||||
// Handle search hints
|
||||
var id = item.Id || item.ItemId;
|
||||
|
||||
|
@ -632,48 +641,48 @@
|
|||
return "livetvprogram.html?id=" + id;
|
||||
}
|
||||
if (item.Type == "Series") {
|
||||
return "itemdetails.html?id=" + id;
|
||||
return "itemdetails.html?id=" + id + contextSuffix;
|
||||
}
|
||||
if (item.Type == "Season") {
|
||||
return "itemdetails.html?id=" + id;
|
||||
return "itemdetails.html?id=" + id + contextSuffix;
|
||||
}
|
||||
if (item.Type == "BoxSet") {
|
||||
return "itemdetails.html?id=" + id;
|
||||
return "itemdetails.html?id=" + id + contextSuffix;
|
||||
}
|
||||
if (item.Type == "MusicAlbum") {
|
||||
return "itemdetails.html?id=" + id;
|
||||
return "itemdetails.html?id=" + id + contextSuffix;
|
||||
}
|
||||
if (item.Type == "GameSystem") {
|
||||
return "itemdetails.html?id=" + id;
|
||||
return "itemdetails.html?id=" + id + contextSuffix;
|
||||
}
|
||||
if (item.Type == "Genre") {
|
||||
return "itembynamedetails.html?id=" + id;
|
||||
return "itembynamedetails.html?id=" + id + contextSuffix;
|
||||
}
|
||||
if (item.Type == "MusicGenre") {
|
||||
return "itembynamedetails.html?id=" + id;
|
||||
return "itembynamedetails.html?id=" + id + contextSuffix;
|
||||
}
|
||||
if (item.Type == "GameGenre") {
|
||||
return "itembynamedetails.html?id=" + id;
|
||||
return "itembynamedetails.html?id=" + id + contextSuffix;
|
||||
}
|
||||
if (item.Type == "Studio") {
|
||||
return "itembynamedetails.html?id=" + id;
|
||||
return "itembynamedetails.html?id=" + id + contextSuffix;
|
||||
}
|
||||
if (item.Type == "Person") {
|
||||
return "itembynamedetails.html?id=" + id;
|
||||
return "itembynamedetails.html?id=" + id + contextSuffix;
|
||||
}
|
||||
if (item.Type == "Recording") {
|
||||
return "livetvrecording.html?id=" + id;
|
||||
return "livetvrecording.html?id=" + id + contextSuffix;
|
||||
}
|
||||
|
||||
if (item.Type == "MusicArtist") {
|
||||
return "itembynamedetails.html?id=" + id;
|
||||
return "itembynamedetails.html?id=" + id + contextSuffix;
|
||||
}
|
||||
|
||||
if (item.IsFolder) {
|
||||
return id ? "itemlist.html?parentId=" + id : "#";
|
||||
}
|
||||
|
||||
return "itemdetails.html?id=" + id;
|
||||
return "itemdetails.html?id=" + id + contextSuffix;
|
||||
},
|
||||
|
||||
getImageUrl: function (item, type, index, options) {
|
||||
|
|
|
@ -115,7 +115,7 @@
|
|||
|
||||
var resumePosition = (item.UserData || {}).PlaybackPositionTicks || 0;
|
||||
|
||||
html += '<paper-icon-button icon="play-circle-filled" class="btnPlayItem" data-itemid="' + item.Id + '" data-itemtype="' + item.Type + '" data-isfolder="' + item.IsFolder + '" data-mediatype="' + item.MediaType + '" data-resumeposition="' + resumePosition + '"></paper-icon-button>';
|
||||
html += '<paper-icon-button icon="play-circle-outline" class="btnPlayItem" data-itemid="' + item.Id + '" data-itemtype="' + item.Type + '" data-isfolder="' + item.IsFolder + '" data-mediatype="' + item.MediaType + '" data-resumeposition="' + resumePosition + '"></paper-icon-button>';
|
||||
buttonCount++;
|
||||
}
|
||||
|
||||
|
@ -1228,6 +1228,10 @@
|
|||
$(apiClient).off('websocketmessage', onWebSocketMessage).on('websocketmessage', onWebSocketMessage);
|
||||
}
|
||||
|
||||
function clearRefreshTimes() {
|
||||
$('.hasrefreshtime').removeClass('hasrefreshtime').removeAttr('data-lastrefresh');
|
||||
}
|
||||
|
||||
Dashboard.ready(function () {
|
||||
|
||||
if (window.ApiClient) {
|
||||
|
@ -1237,6 +1241,9 @@
|
|||
$(ConnectionManager).on('apiclientcreated', function (e, apiClient) {
|
||||
initializeApiClient(apiClient);
|
||||
});
|
||||
|
||||
Events.on(ConnectionManager, 'localusersignedin', clearRefreshTimes);
|
||||
Events.on(ConnectionManager, 'localusersignedout', clearRefreshTimes);
|
||||
});
|
||||
|
||||
})(jQuery, document, window);
|
|
@ -121,6 +121,7 @@
|
|||
if (LibraryBrowser.needsRefresh(page)) {
|
||||
query.UserId = Dashboard.getCurrentUserId();
|
||||
LibraryBrowser.loadSavedQueryValues('movies', query);
|
||||
query.Limit = query.Limit || LibraryBrowser.getDefaultPageSize();
|
||||
reloadItems(page);
|
||||
updateFilterControls(this);
|
||||
}
|
||||
|
|
|
@ -89,6 +89,7 @@
|
|||
|
||||
renderRecordings($('#latestRecordings', page), result.Items);
|
||||
|
||||
LibraryBrowser.setLastRefreshed(page);
|
||||
});
|
||||
|
||||
ApiClient.getLiveTvRecordingGroups({
|
||||
|
@ -106,7 +107,9 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
reload(page);
|
||||
if (LibraryBrowser.needsRefresh(page)) {
|
||||
reload(page);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
|
|
@ -97,6 +97,7 @@
|
|||
|
||||
renderTimers(page, result.Items);
|
||||
|
||||
LibraryBrowser.setLastRefreshed(page);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -120,7 +121,9 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
reload(page);
|
||||
if (LibraryBrowser.needsRefresh(page)) {
|
||||
reload(page);
|
||||
}
|
||||
|
||||
}).on('pageinit', "#liveTvSeriesTimersPage", function () {
|
||||
|
||||
|
|
|
@ -104,6 +104,7 @@
|
|||
|
||||
renderTimers(page, result.Items);
|
||||
|
||||
LibraryBrowser.setLastRefreshed(page);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -111,7 +112,9 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
reload(page);
|
||||
if (LibraryBrowser.needsRefresh(page)) {
|
||||
reload(page);
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery, document);
|
|
@ -1844,6 +1844,7 @@ var AppInfo = {};
|
|||
}
|
||||
else if ($.browser.safari) {
|
||||
Dashboard.importCss('themes/ios.css');
|
||||
Dashboard.importCss('thirdparty/materialicons/style.css');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue