mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
calculate item by name counts on the fly
This commit is contained in:
parent
fce65d5942
commit
8fb161c4f6
25 changed files with 89 additions and 614 deletions
|
@ -61,10 +61,10 @@
|
|||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Album Artist', sortField: 'AlbumArtist,SortName' },
|
||||
{ name: 'Album Artist', sortField: 'AlbumArtist,Album,SortName' },
|
||||
{ name: 'Album', sortField: 'Album,SortName' },
|
||||
{ name: 'Disc', sortField: 'Album,SortName' },
|
||||
{ name: 'Track', sortField: 'Album,SortName' },
|
||||
{ name: 'Disc' },
|
||||
{ name: 'Track' },
|
||||
{ name: 'Name', sortField: 'Name' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
|
@ -85,6 +85,7 @@
|
|||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||
{ name: 'Video' },
|
||||
{ name: 'Resolution' },
|
||||
{ name: 'Audio' },
|
||||
{ name: 'Subtitles' }
|
||||
];
|
||||
|
@ -145,6 +146,7 @@
|
|||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||
{ name: 'Video' },
|
||||
{ name: 'Resolution' },
|
||||
{ name: 'Audio' },
|
||||
{ name: 'Subtitles' },
|
||||
{ name: 'Trailers' },
|
||||
|
@ -154,6 +156,53 @@
|
|||
}
|
||||
}
|
||||
|
||||
function getDefaultSortOrder(reportType) {
|
||||
|
||||
switch (reportType) {
|
||||
|
||||
case 'Season':
|
||||
{
|
||||
return "SeriesSortName,SortName";
|
||||
}
|
||||
case 'Series':
|
||||
{
|
||||
return "SortName";
|
||||
}
|
||||
case 'Game':
|
||||
{
|
||||
return "GameSystem,SortName";
|
||||
}
|
||||
case 'Audio':
|
||||
{
|
||||
return "AlbumArtist,Album,SortName";
|
||||
}
|
||||
case 'Episode':
|
||||
{
|
||||
return "SeriesSortName,SortName";
|
||||
}
|
||||
case 'BoxSet':
|
||||
{
|
||||
return "SortName";
|
||||
}
|
||||
case 'Book':
|
||||
{
|
||||
return "SortName";
|
||||
}
|
||||
case 'MusicArtist':
|
||||
{
|
||||
return "SortName";
|
||||
}
|
||||
case 'MusicAlbum':
|
||||
{
|
||||
return "AlbumArtist,SortName";
|
||||
}
|
||||
default:
|
||||
{
|
||||
return "SortName";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getItemCellsHtml(item, headercells) {
|
||||
|
||||
return headercells.map(function (cell) {
|
||||
|
@ -161,6 +210,8 @@
|
|||
var html = '';
|
||||
html += '<td>';
|
||||
|
||||
var stream;
|
||||
|
||||
switch (cell.type || cell.name) {
|
||||
|
||||
case 'Album Artist':
|
||||
|
@ -205,7 +256,7 @@
|
|||
}
|
||||
case 'Audio':
|
||||
{
|
||||
var stream = (item.MediaStreams || []).filter(function (s) {
|
||||
stream = (item.MediaStreams || []).filter(function (s) {
|
||||
|
||||
return s.Type == 'Audio';
|
||||
|
||||
|
@ -220,7 +271,7 @@
|
|||
}
|
||||
case 'Video':
|
||||
{
|
||||
var stream = (item.MediaStreams || []).filter(function (s) {
|
||||
stream = (item.MediaStreams || []).filter(function (s) {
|
||||
|
||||
return s.Type == 'Video';
|
||||
|
||||
|
@ -231,6 +282,19 @@
|
|||
}
|
||||
break;
|
||||
}
|
||||
case 'Resolution':
|
||||
{
|
||||
stream = (item.MediaStreams || []).filter(function (s) {
|
||||
|
||||
return s.Type == 'Video';
|
||||
|
||||
})[0];
|
||||
|
||||
if (stream && stream.Width) {
|
||||
html += stream.Width + "*" + (stream.Height || "-");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'Embedded Image':
|
||||
{
|
||||
if ((item.MediaStreams || []).filter(function (s) {
|
||||
|
@ -420,7 +484,7 @@
|
|||
cellHtml += (c.name || ' ');
|
||||
|
||||
if (c.sortField) {
|
||||
|
||||
|
||||
cellHtml += '</a>';
|
||||
|
||||
if (c.sortField == currentSortField) {
|
||||
|
@ -608,6 +672,9 @@
|
|||
query.StartIndex = 0;
|
||||
query.IncludeItemTypes = this.value;
|
||||
|
||||
query.SortBy = getDefaultSortOrder(this.value);
|
||||
query.SortOrder = "Ascending";
|
||||
|
||||
reloadItems(page);
|
||||
});
|
||||
|
||||
|
@ -782,6 +849,9 @@
|
|||
query.StartIndex = 0;
|
||||
}
|
||||
|
||||
query.SortBy = getDefaultSortOrder($('#selectView', page).val());
|
||||
query.SortOrder = "Ascending";
|
||||
|
||||
reloadItems(page);
|
||||
|
||||
}).on('pageshow', "#libraryReportPage", function () {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue