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

sort and display uniformly

This commit is contained in:
Luke Pulverenti 2013-03-26 22:48:33 -04:00
parent d7b8e3c583
commit b7b071a02f
2 changed files with 49 additions and 13 deletions

View file

@ -11,7 +11,11 @@
var parentId = getParameterByName('parentId');
var query = {};
var query = {
SortBy: "SortName",
Fields: "PrimaryImageAspectRatio"
};
if (parentId) {
query.parentId = parentId;
@ -22,13 +26,14 @@
ApiClient.getItems(userId, query).done(ItemListPage.renderItems);
},
renderItems: function(result) {
renderItems: function (result) {
var items = result.Items;
var renderOptions = {
items: items
items: items,
useAverageAspectRatio: true
};
var html = Dashboard.getPosterViewHtml(renderOptions);

View file

@ -423,10 +423,14 @@ var Dashboard = {
getPosterViewHtml: function (options) {
var items = options.items;
var primaryImageAspectRatio = options.useAverageAspectRatio ? Dashboard.getAveragePrimaryImageAspectRatio(items) : null;
var html = "";
for (var i = 0, length = options.items.length; i < length; i++) {
var item = options.items[i];
for (var i = 0, length = items.length; i < length; i++) {
var item = items[i];
var hasPrimaryImage = item.ImageTags && item.ImageTags.Primary;
@ -446,11 +450,17 @@ var Dashboard = {
tag: item.BackdropImageTags[0]
}) + "' />";
} else if (hasPrimaryImage) {
var height = 300;
var width = primaryImageAspectRatio ? parseInt(height * primaryImageAspectRatio) : null;
html += "<img src='" + ApiClient.getImageUrl(item.Id, {
type: "Primary",
height: 300,
height: height,
width: width,
tag: item.ImageTags.Primary
}) + "' />";
}
else if (item.BackdropImageTags && item.BackdropImageTags.length) {
html += "<img src='" + ApiClient.getImageUrl(item.Id, {
@ -481,6 +491,27 @@ var Dashboard = {
return html;
},
getAveragePrimaryImageAspectRatio: function(items) {
var total = 0;
var count = 0;
for (var i = 0, length = items.length; i < length; i++) {
var ratio = items[i].PrimaryImageAspectRatio || 0;
if (!ratio)
{
continue;
}
total += ratio;
count++;
}
return count == 0 ? 1 : total / count;
},
showUserFlyout: function () {
Dashboard.getCurrentUser().done(function (user) {