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

update favorites page

This commit is contained in:
Luke Pulverenti 2015-07-09 01:52:25 -04:00
parent 22586c7a8f
commit ddb3bd5b3b
9 changed files with 265 additions and 65 deletions

View file

@ -35,7 +35,7 @@
"tag": "v1.0.1",
"commit": "3809f0eb7461c8ca63640aaa238775b3a25aa578"
},
"_source": "git://github.com/polymerelements/iron-menu-behavior.git",
"_source": "git://github.com/PolymerElements/iron-menu-behavior.git",
"_target": "^1.0.0",
"_originalSource": "polymerelements/iron-menu-behavior"
"_originalSource": "PolymerElements/iron-menu-behavior"
}

View file

@ -288,7 +288,7 @@
color: #2ad;
}
@media all and (max-width: 500px) {
@media all and (max-width: 440px) {
.libraryMenuButtonText {
display: none;

View file

@ -3,11 +3,11 @@
function getSections() {
return [
{ name: Globalize.translate('HeaderFavoriteMovies'), types: "Movie", id: "favoriteMovies", shape: 'backdrop', preferThumb: true, showTitle: false },
{ name: Globalize.translate('HeaderFavoriteShows'), types: "Series", id: "favoriteShows", shape: 'backdrop', preferThumb: true, showTitle: false },
{ name: Globalize.translate('HeaderFavoriteEpisodes'), types: "Episode", id: "favoriteEpisode", shape: 'backdrop', preferThumb: false, showTitle: true, showParentTitle: true },
{ name: Globalize.translate('HeaderFavoriteGames'), types: "Game", id: "favoriteGames", shape: 'autohome', preferThumb: false, showTitle: true },
{ name: Globalize.translate('HeaderFavoriteAlbums'), types: "MusicAlbum", id: "favoriteAlbums", shape: 'square', preferThumb: false, showTitle: true, overlayText: false, showParentTitle: true, centerText: true, overlayPlayButton: true }
{ name: 'HeaderFavoriteMovies', types: "Movie", id: "favoriteMovies", shape: 'backdrop', preferThumb: true, showTitle: false },
{ name: 'HeaderFavoriteShows', types: "Series", id: "favoriteShows", shape: 'backdrop', preferThumb: true, showTitle: false },
{ name: 'HeaderFavoriteEpisodes', types: "Episode", id: "favoriteEpisode", shape: 'backdrop', preferThumb: false, showTitle: true, showParentTitle: true },
{ name: 'HeaderFavoriteGames', types: "Game", id: "favoriteGames", shape: 'autohome', preferThumb: false, showTitle: true },
{ name: 'HeaderFavoriteAlbums', types: "MusicAlbum", id: "favoriteAlbums", shape: 'square', preferThumb: false, showTitle: true, overlayText: false, showParentTitle: true, centerText: true, overlayPlayButton: true }
];
}
@ -37,7 +37,7 @@
var html = '';
if (result.Items.length) {
html += '<h1 class="listHeader">' + section.name + '</h1>';
html += '<h1 class="listHeader">' + Globalize.translate(section.name) + '</h1>';
html += '<div>';
html += LibraryBrowser.getPosterViewHtml({
items: result.Items,
@ -56,7 +56,7 @@
html += '</div>';
if (result.TotalRecordCount > result.Items.length) {
var href = "index.html?tab=2&sectionid=" + section.id;
var href = "secondaryitems.html?type=" + section.types + "&filters=IsFavorite&titlekey=" + section.name;
html += '<a class="clearLink" href="' + href + '"><paper-button raised class="more">' + Globalize.translate('ButtonMoreItems') + '</paper-button></a>';
}

View file

@ -32,7 +32,7 @@
setInitialCollapsibleState(page, item, context, user);
renderDetails(page, item, context);
if (item.Type == 'MusicAlbum1' || item.Type == 'Season1') {
if (item.Type == 'MusicAlbum' || item.Type == 'Season1') {
Backdrops.setBackdrops(page, [item]);
$('#itemBackdrop', page).addClass('noBackdrop').css('background-image', 'none');
} else {

View file

@ -2364,16 +2364,18 @@
html += '<div class="listPaging">';
html += '<span style="margin-right: 10px;vertical-align:middle;">';
if (showControls) {
html += '<span style="vertical-align:middle;">';
var startAtDisplay = totalRecordCount ? startIndex + 1 : 0;
html += startAtDisplay + '-' + recordsEnd + ' of ' + totalRecordCount;
var startAtDisplay = totalRecordCount ? startIndex + 1 : 0;
html += startAtDisplay + '-' + recordsEnd + ' of ' + totalRecordCount;
html += '</span>';
html += '</span>';
}
if (showControls || options.viewButton || options.addSelectionButton || options.additionalButtonsHtml) {
html += '<div data-role="controlgroup" data-type="horizontal" style="display:inline-block;">';
html += '<div style="display:inline-block;margin-left:10px;">';
if (showControls) {

View file

@ -1,18 +1,12 @@
(function (window, document, $, devicePixelRatio) {
var backStack = [];
var addNextToBackStack = true;
function renderHeader() {
var html = '<div class="viewMenuBar ui-bar-b">';
if (AppInfo.enableBackButton) {
var backIcon = $.browser.safari ? 'chevron-left' : 'arrow-back';
var icon = $.browser.safari ? 'chevron-left' : 'arrow-back';
html += '<paper-icon-button icon="' + icon + '" class="headerButton headerButtonLeft headerBackButton"></paper-icon-button>';
}
html += '<paper-icon-button icon="' + backIcon + '" class="headerButton headerButtonLeft headerBackButton hide"></paper-icon-button>';
html += '<paper-icon-button icon="menu" class="headerButton mainDrawerButton barsMenuButton headerButtonLeft"></paper-icon-button>';
@ -61,9 +55,6 @@
Dashboard.exit();
}
else {
addNextToBackStack = false;
backStack.length = Math.max(0, backStack.length - 1);
history.back();
}
}
@ -74,28 +65,32 @@
if (user.localUser) {
$('.btnCast', header).visible(true);
$('.headerSearchButton', header).visible(true);
document.querySelector('.headerSearchButton').classList.remove('hide');
requirejs(['voice/voice'], function () {
if (VoiceInputManager.isSupported()) {
$('.headerVoiceButton', header).visible(true);
document.querySelector('.headerVoiceButton').classList.remove('hide');
} else {
$('.headerVoiceButton', header).visible(false);
document.querySelector('.headerVoiceButton').classList.add('hide');
}
});
} else {
$('.btnCast', header).visible(false);
$('.headerVoiceButton', header).visible(false);
$('.headerSearchButton', header).visible(false);
document.querySelector('.headerVoiceButton').classList.add('hide');
document.querySelector('.headerSearchButton').classList.add('hide');
}
if (user.canManageServer) {
$('.dashboardEntryHeaderButton', header).visible(true);
} else {
$('.dashboardEntryHeaderButton', header).visible(false);
var dashboardEntryHeaderButton = document.querySelector('.dashboardEntryHeaderButton');
if (dashboardEntryHeaderButton) {
if (user.canManageServer) {
dashboardEntryHeaderButton.classList.remove('hide');
} else {
dashboardEntryHeaderButton.classList.add('hide');
}
}
var userButtonHtml = '';
@ -136,14 +131,6 @@
$('.headerBackButton').on('click', onBackClick);
// Have to wait for document ready here because otherwise
// we may see the jQM redirect back and forth problem
$(initViewMenuBarHeadroom);
}
function initViewMenuBarHeadroom() {
// grab an element
var viewMenuBar = document.getElementsByClassName("viewMenuBar")[0];
initHeadRoom(viewMenuBar);
}
@ -159,7 +146,11 @@
}
function reEnableHeadroom() {
$('.headroomDisabled').removeClass('headroomDisabled');
var headroomDisabled = document.querySelectorAll('.headroomDisabled');
for (var i = 0, length = headroomDisabled.length; i < length; i++) {
headroomDisabled[i].classList.remove('headroomDisabled');
}
}
function getItemHref(item, context) {
@ -685,16 +676,18 @@
function buildViewMenuBar(page) {
var viewMenuBar = document.querySelector('.viewMenuBar');
if (page.classList.contains('standalonePage')) {
$('.viewMenuBar').visible(false);
if (viewMenuBar) {
viewMenuBar.classList.add('hide');
}
return;
}
var viewMenuBar = document.querySelector('.viewMenuBar');
if (requiresViewMenuRefresh) {
if (viewMenuBar) {
$(viewMenuBar).remove();
viewMenuBar.parentNode.removeChild(viewMenuBar);
viewMenuBar = null;
}
}
@ -713,7 +706,7 @@
ConnectionManager.user(window.ApiClient).done(addUserToHeader);
} else {
$(viewMenuBar).visible(true);
viewMenuBar.classList.remove('hide');
updateContextText(page);
updateLibraryNavLinks(page);
updateViewMenuBarHeadroom(page, viewMenuBar);
@ -737,15 +730,10 @@
}).on('pagebeforehide', ".page", function () {
if (addNextToBackStack) {
var text = $('.libraryMenuButtonText').text() || document.title;
backStack.push(text);
var headroomEnabled = document.querySelectorAll('.headroomEnabled');
for (var i = 0, length = headroomEnabled.length; i < length; i++) {
headroomEnabled[i].classList.add('headroomDisabled');
}
addNextToBackStack = true;
$('.headroomEnabled').addClass('headroomDisabled');
});
function onPageBeforeShowDocumentReady(page) {
@ -755,6 +743,18 @@
var isLibraryPage = page.classList.contains('libraryPage');
var darkDrawer = false;
var titleKey = getParameterByName('titlekey');
if (titleKey) {
document.querySelector('.libraryMenuButtonText').innerHTML = Globalize.translate(titleKey);
}
if (page.getAttribute('data-menubutton') == 'false') {
document.querySelector('.mainDrawerButton').classList.add('hide');
} else {
document.querySelector('.mainDrawerButton').classList.remove('hide');
}
if (isLibraryPage) {
document.body.classList.add('libraryDocument');
@ -797,18 +797,28 @@
document.querySelector('.mainDrawerPanel #drawer').classList.remove('darkDrawer');
}
if (AppInfo.enableBackButton) {
updateBackButton(page);
}
updateBackButton(page);
}
function updateBackButton(page) {
var canGoBack = backStack.length > 0 && !page.classList.contains('homePage');
var canGoBack = !page.classList.contains('homePage');
$('.headerBackButton').visible(canGoBack);
var backButton = document.querySelector('.headerBackButton');
Events.off(page, 'swiperight', onPageSwipeLeft);
var showBackButton = AppInfo.enableBackButton;
if (!showBackButton) {
showBackButton = page.getAttribute('data-backbutton') == 'true';
}
if (canGoBack && showBackButton) {
backButton.classList.remove('hide');
} else {
backButton.classList.add('hide');
}
//Events.off(page, 'swiperight', onPageSwipeLeft);
if (canGoBack) {
//Events.on(page, 'swiperight', onPageSwipeLeft);

View file

@ -0,0 +1,169 @@
(function ($, document) {
var view = LibraryBrowser.getDefaultItemsView('Poster', 'Poster');
var data = {};
function getQuery() {
var key = getSavedQueryKey();
var pageData = data[key];
if (!pageData) {
pageData = data[key] = {
query: {
SortBy: "SortName",
SortOrder: "Ascending",
Recursive: true,
Fields: "PrimaryImageAspectRatio,SortName,SyncInfo",
ImageTypeLimit: 1,
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
StartIndex: 0,
Limit: LibraryBrowser.getDefaultPageSize()
}
};
var type = getParameterByName('type');
if (type) {
pageData.query.IncludeItemTypes = type;
}
var filters = getParameterByName('filters');
if (type) {
pageData.query.Filters = filters;
}
pageData.query.ParentId = LibraryMenu.getTopParentId();
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
}
return pageData.query;
}
function getSavedQueryKey() {
return getWindowUrl();
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
var query = getQuery();
ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(function (result) {
// Scroll back up so they can see the results from the beginning
window.scrollTo(0, 0);
var html = '';
var trigger = false;
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
startIndex: query.StartIndex,
limit: query.Limit,
totalRecordCount: result.TotalRecordCount,
showLimit: false
});
page.querySelector('.listTopPaging').innerHTML = pagingHtml;
if (view == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "backdrop",
preferThumb: true,
context: 'tv',
lazy: true,
overlayText: true
});
}
else if (view == "ThumbCard") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "backdrop",
preferThumb: true,
context: 'tv',
lazy: true,
cardLayout: true,
showTitle: true,
showSeriesYear: true
});
}
else if (view == "Banner") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "banner",
preferBanner: true,
context: 'tv',
lazy: true
});
}
else if (view == "List") {
html = LibraryBrowser.getListViewHtml({
items: result.Items,
context: 'tv',
sortBy: query.SortBy
});
trigger = true;
}
else if (view == "PosterCard") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "portrait",
context: 'tv',
showTitle: true,
showYear: true,
lazy: true,
cardLayout: true
});
}
else {
// Poster
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "portrait",
context: 'tv',
centerText: true,
lazy: true,
overlayText: true
});
}
var elem = page.querySelector('#items');
elem.innerHTML = html + pagingHtml;
ImageLoader.lazyChildren(elem);
if (trigger) {
Events.trigger(elem, 'create');
}
$('.btnNextPage', page).on('click', function () {
query.StartIndex += query.Limit;
reloadItems(page);
});
$('.btnPreviousPage', page).on('click', function () {
query.StartIndex -= query.Limit;
reloadItems(page);
});
LibraryBrowser.setLastRefreshed(page);
Dashboard.hideLoadingMsg();
});
}
$(document).on('pagebeforeshowready', "#secondaryItemsPage", function () {
var page = this;
if (LibraryBrowser.needsRefresh(page)) {
reloadItems(page);
}
});
})(jQuery, document);

View file

@ -1907,7 +1907,7 @@ var AppInfo = {};
}
if ($.browser.safari) {
require(['cordova/remotecontrols', 'cordova/ios/orientation']);
require(['cordova/ios/orientation']);
}
} else {

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<title>Emby</title>
</head>
<body>
<div id="secondaryItemsPage" data-role="page" class="page libraryPage noSecondaryNavPage" data-require="scripts/secondaryitems" data-backbutton="true" data-menubutton="false">
<div data-role="content">
<div class="viewSettings">
<div class="listTopPaging">
</div>
</div>
<div id="items" class="itemsContainer paddedItemsContainer" style="text-align:center;"></div>
</div>
</div>
</body>
</html>