diff --git a/dashboard-ui/photos.html b/dashboard-ui/photos.html
index 7a03a2f1cc..f93be3238b 100644
--- a/dashboard-ui/photos.html
+++ b/dashboard-ui/photos.html
@@ -1,42 +1,10 @@
-
-
-
-
- ${TabAlbums}
- ${TabPhotos}
- ${TabVideos}
-
-
-
-
-
+
\ No newline at end of file
diff --git a/dashboard-ui/scripts/itemlistpage.js b/dashboard-ui/scripts/itemlistpage.js
index 7275ac1108..73f35bfae5 100644
--- a/dashboard-ui/scripts/itemlistpage.js
+++ b/dashboard-ui/scripts/itemlistpage.js
@@ -12,7 +12,7 @@
if (!pageData) {
pageData = data = {
query: {
- SortBy: "SortName",
+ SortBy: "IsFolder,SortName",
SortOrder: "Ascending",
Fields: "DateCreated,PrimaryImageAspectRatio,MediaSourceCount,SyncInfo",
ImageTypeLimit: 1,
@@ -40,7 +40,7 @@
function getSavedQueryKey() {
if (!view.savedQueryKey) {
- view.savedQueryKey = libraryBrowser.getSavedQueryKey('items');
+ view.savedQueryKey = libraryBrowser.getSavedQueryKey('itemsv1');
}
return view.savedQueryKey;
}
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index 9fc341cd6a..23dd2d2e41 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -1877,418 +1877,6 @@
options.squareSize = squareSize;
},
- setPosterViewDataOnItems: function (options, items) {
-
- LibraryBrowser.setPosterViewData(options);
-
- options.shape = options.shape || "portrait";
-
- var html = "";
-
- var primaryImageAspectRatio;
- var thumbWidth = options.thumbWidth;
- var posterWidth = options.posterWidth;
- var squareSize = options.squareSize;
- var bannerWidth = options.bannerWidth;
-
- var uiAspect = options.uiAspect;
-
- for (var i = 0, length = items.length; i < length; i++) {
-
- var item = items[i];
-
- primaryImageAspectRatio = LibraryBrowser.getAveragePrimaryImageAspectRatio([item]);
-
- LibraryBrowser.setPosterViewDataOnItem(item, i, options, primaryImageAspectRatio, thumbWidth, posterWidth, squareSize, bannerWidth, uiAspect);
- }
-
- return html;
- },
-
- setPosterViewDataOnItem: function (item, index, options, primaryImageAspectRatio, thumbWidth, posterWidth, squareSize, bannerWidth, uiAspect) {
-
- var imgUrl = null;
- var icon;
- var width = null;
- var height = null;
-
- var forceName = false;
-
- var enableImageEnhancers = options.enableImageEnhancers !== false;
-
- var cssClass = "card";
-
- if (options.fullWidthOnMobile) {
- cssClass += " fullWidthCardOnMobile";
- }
-
- var showTitle = options.showTitle == 'auto' ? true : options.showTitle;
- var coverImage = options.coverImage;
-
- if (options.autoThumb && item.ImageTags && item.ImageTags.Primary && item.PrimaryImageAspectRatio && item.PrimaryImageAspectRatio >= 1.34) {
-
- width = posterWidth;
- height = primaryImageAspectRatio ? Math.round(posterWidth / primaryImageAspectRatio) : null;
-
- imgUrl = ApiClient.getImageUrl(item.Id, {
- type: "Primary",
- maxHeight: height,
- maxWidth: width,
- tag: item.ImageTags.Primary,
- enableImageEnhancers: enableImageEnhancers
- });
-
- if (primaryImageAspectRatio) {
- if (uiAspect) {
- if (Math.abs(primaryImageAspectRatio - uiAspect) <= .2) {
- coverImage = true;
- }
- }
- }
-
- } else if (options.autoThumb && item.ImageTags && item.ImageTags.Thumb) {
-
- imgUrl = ApiClient.getScaledImageUrl(item.Id, {
- type: "Thumb",
- maxWidth: thumbWidth,
- tag: item.ImageTags.Thumb,
- enableImageEnhancers: enableImageEnhancers
- });
-
- } else if (options.preferBackdrop && item.BackdropImageTags && item.BackdropImageTags.length) {
-
- imgUrl = ApiClient.getScaledImageUrl(item.Id, {
- type: "Backdrop",
- maxWidth: thumbWidth,
- tag: item.BackdropImageTags[0],
- enableImageEnhancers: enableImageEnhancers
- });
-
- } else if (options.preferThumb && item.ImageTags && item.ImageTags.Thumb) {
-
- imgUrl = ApiClient.getScaledImageUrl(item.Id, {
- type: "Thumb",
- maxWidth: thumbWidth,
- tag: item.ImageTags.Thumb,
- enableImageEnhancers: enableImageEnhancers
- });
-
- } else if (options.preferBanner && item.ImageTags && item.ImageTags.Banner) {
-
- imgUrl = ApiClient.getScaledImageUrl(item.Id, {
- type: "Banner",
- maxWidth: bannerWidth,
- tag: item.ImageTags.Banner,
- enableImageEnhancers: enableImageEnhancers
- });
-
- } else if (options.preferThumb && item.SeriesThumbImageTag && options.inheritThumb !== false) {
-
- imgUrl = ApiClient.getScaledImageUrl(item.SeriesId, {
- type: "Thumb",
- maxWidth: thumbWidth,
- tag: item.SeriesThumbImageTag,
- enableImageEnhancers: enableImageEnhancers
- });
-
- } else if (options.preferThumb && item.ParentThumbItemId && options.inheritThumb !== false) {
-
- imgUrl = ApiClient.getThumbImageUrl(item.ParentThumbItemId, {
- type: "Thumb",
- maxWidth: thumbWidth,
- enableImageEnhancers: enableImageEnhancers
- });
-
- } else if (options.preferThumb && item.BackdropImageTags && item.BackdropImageTags.length) {
-
- imgUrl = ApiClient.getScaledImageUrl(item.Id, {
- type: "Backdrop",
- maxWidth: thumbWidth,
- tag: item.BackdropImageTags[0],
- enableImageEnhancers: enableImageEnhancers
- });
-
- forceName = true;
-
- } else if (item.ImageTags && item.ImageTags.Primary) {
-
- width = posterWidth;
- height = primaryImageAspectRatio ? Math.round(posterWidth / primaryImageAspectRatio) : null;
-
- imgUrl = ApiClient.getImageUrl(item.Id, {
- type: "Primary",
- maxHeight: height,
- maxWidth: width,
- tag: item.ImageTags.Primary,
- enableImageEnhancers: enableImageEnhancers
- });
-
- if (primaryImageAspectRatio) {
- if (uiAspect) {
- if (Math.abs(primaryImageAspectRatio - uiAspect) <= .2) {
- coverImage = true;
- }
- }
- }
- }
- else if (item.ParentPrimaryImageTag) {
-
- imgUrl = ApiClient.getImageUrl(item.ParentPrimaryImageItemId, {
- type: "Primary",
- maxWidth: posterWidth,
- tag: item.ParentPrimaryImageTag,
- enableImageEnhancers: enableImageEnhancers
- });
- }
- else if (item.AlbumId && item.AlbumPrimaryImageTag) {
-
- height = squareSize;
- width = primaryImageAspectRatio ? Math.round(height * primaryImageAspectRatio) : null;
-
- imgUrl = ApiClient.getScaledImageUrl(item.AlbumId, {
- type: "Primary",
- maxHeight: height,
- maxWidth: width,
- tag: item.AlbumPrimaryImageTag,
- enableImageEnhancers: enableImageEnhancers
- });
-
- if (primaryImageAspectRatio) {
- if (uiAspect) {
- if (Math.abs(primaryImageAspectRatio - uiAspect) <= .2) {
- coverImage = true;
- }
- }
- }
- }
- else if (item.Type == 'Season' && item.ImageTags && item.ImageTags.Thumb) {
-
- imgUrl = ApiClient.getScaledImageUrl(item.Id, {
- type: "Thumb",
- maxWidth: thumbWidth,
- tag: item.ImageTags.Thumb,
- enableImageEnhancers: enableImageEnhancers
- });
-
- }
- else if (item.BackdropImageTags && item.BackdropImageTags.length) {
-
- imgUrl = ApiClient.getScaledImageUrl(item.Id, {
- type: "Backdrop",
- maxWidth: thumbWidth,
- tag: item.BackdropImageTags[0],
- enableImageEnhancers: enableImageEnhancers
- });
-
- } else if (item.ImageTags && item.ImageTags.Thumb) {
-
- imgUrl = ApiClient.getScaledImageUrl(item.Id, {
- type: "Thumb",
- maxWidth: thumbWidth,
- tag: item.ImageTags.Thumb,
- enableImageEnhancers: enableImageEnhancers
- });
-
- } else if (item.SeriesThumbImageTag) {
-
- imgUrl = ApiClient.getScaledImageUrl(item.SeriesId, {
- type: "Thumb",
- maxWidth: thumbWidth,
- tag: item.SeriesThumbImageTag,
- enableImageEnhancers: enableImageEnhancers
- });
-
- } else if (item.ParentThumbItemId) {
-
- imgUrl = ApiClient.getThumbImageUrl(item, {
- type: "Thumb",
- maxWidth: thumbWidth,
- enableImageEnhancers: enableImageEnhancers
- });
-
- } else if (item.MediaType == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist") {
-
- if (item.Name && showTitle) {
- icon = 'library-music';
- }
- cssClass += " defaultBackground";
-
- } else if (item.Type == "Recording" || item.Type == "Program" || item.Type == "TvChannel") {
-
- if (item.Name && showTitle) {
- icon = 'folder-open';
- }
-
- cssClass += " defaultBackground";
- } else if (item.MediaType == "Video" || item.Type == "Season" || item.Type == "Series") {
-
- if (item.Name && showTitle) {
- icon = 'videocam';
- }
- cssClass += " defaultBackground";
- } else if (item.Type == "Person") {
-
- if (item.Name && showTitle) {
- icon = 'person';
- }
- cssClass += " defaultBackground";
- } else {
- if (item.Name && showTitle) {
- icon = 'folder-open';
- }
- cssClass += " defaultBackground";
- }
-
- icon = item.icon || icon;
- cssClass += ' ' + options.shape + 'Card';
-
- var mediaSourceCount = item.MediaSourceCount || 1;
-
- var href = options.linkItem === false ? '#' : LibraryBrowser.getHref(item, options.context);
-
- if (options.showChildCountIndicator && item.ChildCount && options.showLatestItemsPopup !== false) {
- cssClass += ' groupedCard';
- }
-
- if ((showTitle || options.showItemCounts) && !options.overlayText) {
- cssClass += ' bottomPaddedCard';
- }
-
- var dataAttributes = LibraryBrowser.getItemDataAttributesList(item, options, index);
-
- for (var i = 0, length = dataAttributes.length; i < length; i++) {
- var att = dataAttributes[i];
- if (att.value) {
- item['data-' + att.name] = att.value;
- }
- }
-
- var defaultAction = options.defaultAction;
- if (defaultAction == 'play' || defaultAction == 'playallfromhere') {
- if (item.PlayAccess != 'Full') {
- defaultAction = null;
- }
- }
-
- // card
- //html += '
';
- item.elemClass = cssClass;
- item.defaultAction = defaultAction;
-
- var style = "";
-
- if (imgUrl && !options.lazy) {
- style += 'background-image:url(\'' + imgUrl + '\');';
- }
-
- var imageCssClass = 'cardImage';
-
- if (icon) {
- imageCssClass += " iconCardImage";
- }
-
- if (coverImage) {
- imageCssClass += " coveredCardImage";
- if (item.MediaType == 'Photo' || item.Type == 'PhotoAlbum' || item.Type == 'Folder' || item.Type == 'Program' || item.Type == 'Recording') {
- imageCssClass += " noScale";
- }
- }
- if (options.centerImage) {
- imageCssClass += " centeredCardImage";
- }
-
- var dataSrc = "";
-
- if (options.lazy && imgUrl) {
- imageCssClass += " lazy";
- dataSrc = ' data-src="' + imgUrl + '"';
- }
-
- var cardboxCssClass = 'cardBox';
-
- if (options.cardLayout) {
- cardboxCssClass += ' visualCardBox';
- }
-
- item.cardBoxClass = cardboxCssClass;
-
- var anchorCssClass = "cardContent";
-
- anchorCssClass += ' mediaItem';
-
- if (defaultAction) {
- anchorCssClass += ' itemWithAction';
- }
-
- item.anchorClass = anchorCssClass;
- item.href = href;
- item.imgUrl = imgUrl;
- item.imageClass = imageCssClass;
-
- if (imgUrl) {
- item.imageStyle = 'background-image:url("' + imgUrl + '");';
- } else {
- item.imageStyle = null;
- }
-
- var overlayHtml = '';
-
- if (item.LocationType == "Virtual" || item.LocationType == "Offline") {
- if (options.showLocationTypeIndicator !== false) {
- overlayHtml += LibraryBrowser.getOfflineIndicatorHtml(item);
- }
- } else if (options.showUnplayedIndicator !== false) {
- overlayHtml += LibraryBrowser.getPlayedIndicatorHtml(item);
- } else if (options.showChildCountIndicator) {
- overlayHtml += LibraryBrowser.getGroupCountIndicator(item);
- }
-
- overlayHtml += LibraryBrowser.getSyncIndicator(item);
-
- if (mediaSourceCount > 1) {
- overlayHtml += '
' + mediaSourceCount + '
';
- }
-
- var progressHtml = options.showProgress === false || item.IsFolder ? '' : LibraryBrowser.getItemProgressBarHtml((item.Type == 'Recording' ? item : item.UserData));
-
- var footerOverlayed = false;
-
- if (options.overlayText || (forceName && !showTitle)) {
-
- var footerCssClass = progressHtml ? 'cardFooter fullCardFooter' : 'cardFooter';
-
- overlayHtml += LibraryBrowser.getCardFooterText(item, options, showTitle, imgUrl, forceName, footerCssClass, progressHtml);
- footerOverlayed = true;
- }
- else if (progressHtml) {
- overlayHtml += '";
-
- progressHtml = '';
- }
-
- if (options.overlayPlayButton && !item.IsPlaceHolder && (item.LocationType != 'Virtual' || !item.MediaType || item.Type == 'Program') && item.Type != 'Person') {
- overlayHtml += '
';
- }
- if (options.overlayMoreButton) {
- overlayHtml += '
';
- }
-
- //// cardScalable
-
- if (!options.overlayText && !footerOverlayed) {
- item.footerHtml = LibraryBrowser.getCardFooterText(item, options, showTitle, imgUrl, forceName, 'cardFooter outerCardFooter', progressHtml);
- } else {
- item.footerHtml = '';
- }
-
- item.overlayHtml = overlayHtml;
- },
-
getPosterViewHtml: function (options) {
LibraryBrowser.setPosterViewData(options);
@@ -2370,6 +1958,10 @@
}
var showTitle = options.showTitle == 'auto' ? true : options.showTitle;
+
+ if (item.Type == 'PhotoAlbum') {
+ showTitle = true;
+ }
var coverImage = options.coverImage;
if (options.autoThumb && item.ImageTags && item.ImageTags.Primary && item.PrimaryImageAspectRatio && item.PrimaryImageAspectRatio >= 1.34) {
diff --git a/dashboard-ui/scripts/photos.js b/dashboard-ui/scripts/photos.js
index 30f3596fa0..34ad242c9f 100644
--- a/dashboard-ui/scripts/photos.js
+++ b/dashboard-ui/scripts/photos.js
@@ -3,15 +3,15 @@
var view = 'Poster';
var data = {};
- function getQuery(tab) {
+ function getQuery() {
- var key = getSavedQueryKey(tab);
+ var key = getSavedQueryKey();
var pageData = data[key];
if (!pageData) {
pageData = data[key] = {
query: {
- SortBy: "SortName",
+ SortBy: "IsFolder,SortName",
SortOrder: "Ascending",
Fields: "PrimaryImageAspectRatio,SortName,SyncInfo",
ImageTypeLimit: 1,
@@ -20,24 +20,26 @@
Limit: LibraryBrowser.getDefaultPageSize()
}
};
- setQueryPerTab(tab, pageData.query);
- pageData.query.ParentId = LibraryMenu.getTopParentId();
+
+ pageData.query.Recursive = false;
+ pageData.query.MediaTypes = null;
+ pageData.query.ParentId = getParameterByName('parentId') || LibraryMenu.getTopParentId();
+
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
}
return pageData.query;
}
- function getSavedQueryKey(tab) {
+ function getSavedQueryKey() {
- return LibraryBrowser.getSavedQueryKey('tab=' + tab);
+ return LibraryBrowser.getSavedQueryKey('v1');
}
- function reloadItems(page, tabIndex) {
+ function reloadItems(page) {
Dashboard.showLoadingMsg();
- var query = getQuery(tabIndex);
-
+ var query = getQuery();
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) {
// Scroll back up so they can see the results from the beginning
@@ -63,7 +65,7 @@
overlayText: true,
lazy: true,
coverImage: true,
- showTitle: tabIndex == 0,
+ showTitle: false,
centerText: true
});
}
@@ -74,38 +76,20 @@
$('.btnNextPage', page).on('click', function () {
query.StartIndex += query.Limit;
- reloadItems(page, tabIndex);
+ reloadItems(page);
});
$('.btnPreviousPage', page).on('click', function () {
query.StartIndex -= query.Limit;
- reloadItems(page, tabIndex);
+ reloadItems(page);
});
- LibraryBrowser.saveQueryValues(getSavedQueryKey(tabIndex), query);
+ LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.hideLoadingMsg();
});
}
- function setQueryPerTab(tab, query) {
-
- if (tab == 1) {
- query.Recursive = true;
- query.MediaTypes = 'Photo';
- }
- else if (tab == 2) {
- query.Recursive = true;
- query.MediaTypes = 'Video';
- }
- else if (tab == 0) {
- query.Recursive = false;
- query.MediaTypes = null;
- }
-
- query.ParentId = getParameterByName('parentId') || LibraryMenu.getTopParentId();
- }
-
function startSlideshow(page, itemQuery, startItemId) {
var userId = Dashboard.getCurrentUserId();
@@ -155,54 +139,18 @@
var info = LibraryBrowser.getListItemInfo(this);
if (info.mediaType == 'Photo') {
- var query = getQuery(LibraryBrowser.selectedTab(page.querySelector('.pageTabsContainer')));
+ var query = getQuery();
Photos.startSlideshow(page, query, info.id);
return false;
}
}
- function loadTab(page, index) {
-
- switch (index) {
-
- case 0:
- {
- reloadItems(page.querySelector('.albumTabContent'), 0);
- }
- break;
- case 1:
- {
- reloadItems(page.querySelector('.photoTabContent'), 1);
- }
- break;
- case 2:
- {
- reloadItems(page.querySelector('.videoTabContent'), 2);
- }
- break;
- default:
- break;
- }
- }
-
pageIdOn('pageinit', "photosPage", function () {
var page = this;
- var tabs = page.querySelector('paper-tabs');
-
- var baseUrl = 'photos.html';
- var topParentId = LibraryMenu.getTopParentId();
- if (topParentId) {
- baseUrl += '?topParentId=' + topParentId;
- }
-
- LibraryBrowser.configurePaperLibraryTabs(page, tabs, page.querySelector('.pageTabsContainer'), baseUrl);
-
- page.querySelector('.pageTabsContainer').addEventListener('tabchange', function (e) {
- loadTab(page, parseInt(e.detail.selectedTabIndex));
- });
+ reloadItems(page, 0);
$(page).on('click', '.mediaItem', onListItemClick);