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

@ -1,5 +1,5 @@
var ItemListPage = { var ItemListPage = {
onPageShow: function () { onPageShow: function () {
ItemListPage.reload(); ItemListPage.reload();
@ -11,33 +11,38 @@
var parentId = getParameterByName('parentId'); var parentId = getParameterByName('parentId');
var query = {}; var query = {
SortBy: "SortName",
Fields: "PrimaryImageAspectRatio"
};
if (parentId) { if (parentId) {
query.parentId = parentId; query.parentId = parentId;
ApiClient.getItem(userId, parentId).done(ItemListPage.renderTitle); ApiClient.getItem(userId, parentId).done(ItemListPage.renderTitle);
} }
ApiClient.getItems(userId, query).done(ItemListPage.renderItems); ApiClient.getItems(userId, query).done(ItemListPage.renderItems);
}, },
renderItems: function(result) { renderItems: function (result) {
var items = result.Items; var items = result.Items;
var renderOptions = { var renderOptions = {
items: items items: items,
useAverageAspectRatio: true
}; };
var html = Dashboard.getPosterViewHtml(renderOptions); var html = Dashboard.getPosterViewHtml(renderOptions);
$('#listItems', $.mobile.activePage).html(html); $('#listItems', $.mobile.activePage).html(html);
}, },
renderTitle: function (item) { renderTitle: function (item) {
$('#itemName', $.mobile.activePage).html(item.Name); $('#itemName', $.mobile.activePage).html(item.Name);
} }

View file

@ -423,10 +423,14 @@ var Dashboard = {
getPosterViewHtml: function (options) { getPosterViewHtml: function (options) {
var items = options.items;
var primaryImageAspectRatio = options.useAverageAspectRatio ? Dashboard.getAveragePrimaryImageAspectRatio(items) : null;
var html = ""; var html = "";
for (var i = 0, length = options.items.length; i < length; i++) { for (var i = 0, length = items.length; i < length; i++) {
var item = options.items[i]; var item = items[i];
var hasPrimaryImage = item.ImageTags && item.ImageTags.Primary; var hasPrimaryImage = item.ImageTags && item.ImageTags.Primary;
@ -446,11 +450,17 @@ var Dashboard = {
tag: item.BackdropImageTags[0] tag: item.BackdropImageTags[0]
}) + "' />"; }) + "' />";
} else if (hasPrimaryImage) { } else if (hasPrimaryImage) {
var height = 300;
var width = primaryImageAspectRatio ? parseInt(height * primaryImageAspectRatio) : null;
html += "<img src='" + ApiClient.getImageUrl(item.Id, { html += "<img src='" + ApiClient.getImageUrl(item.Id, {
type: "Primary", type: "Primary",
height: 300, height: height,
width: width,
tag: item.ImageTags.Primary tag: item.ImageTags.Primary
}) + "' />"; }) + "' />";
} }
else if (item.BackdropImageTags && item.BackdropImageTags.length) { else if (item.BackdropImageTags && item.BackdropImageTags.length) {
html += "<img src='" + ApiClient.getImageUrl(item.Id, { html += "<img src='" + ApiClient.getImageUrl(item.Id, {
@ -480,6 +490,27 @@ var Dashboard = {
return html; 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 () { showUserFlyout: function () {