From f1bc4b200950a507561a4b7a1cfeacf5ce023d5a Mon Sep 17 00:00:00 2001 From: venkat_karasani Date: Mon, 8 Jul 2024 16:50:24 -0500 Subject: [PATCH 1/3] If a collection only contains movies, Jellyfin will display it as 'Movies' instead of 'Videos' --- src/controllers/itemDetails/index.js | 62 +++++++++++++++------------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js index 71aebc57a4..1232f82929 100644 --- a/src/controllers/itemDetails/index.js +++ b/src/controllers/itemDetails/index.js @@ -1458,11 +1458,17 @@ function renderChildren(page, item) { imageLoader.lazyChildren(childrenItemsContainer); if (item.Type == 'BoxSet') { const collectionItemTypes = [{ - name: globalize.translate('HeaderVideos'), - mediaType: 'Video' + name: globalize.translate('Movies'), + type: 'Movie' }, { name: globalize.translate('Series'), type: 'Series' + }, { + name: globalize.translate('Episodes'), + type: 'Episode' + }, { + name: globalize.translate('Videos'), + mediaType: 'Video' }, { name: globalize.translate('Albums'), type: 'MusicAlbum' @@ -1627,13 +1633,16 @@ function inferContext(item) { } function filterItemsByCollectionItemType(items, typeInfo) { - return items.filter(function (item) { - if (typeInfo.mediaType) { - return item.MediaType == typeInfo.mediaType; + let filteredItems = []; + let leftoverItems = []; + items.forEach(function(item){ + if ((typeInfo.mediaType && item.MediaType == typeInfo.mediaType) || (item.Type == typeInfo.type)) { + filteredItems.push(item); + } else { + leftoverItems.push(item); } - - return item.Type == typeInfo.type; }); + return [filteredItems, leftoverItems]; } function canPlaySomeItemInCollection(items) { @@ -1652,31 +1661,28 @@ function renderCollectionItems(page, parentItem, types, items) { page.querySelector('.collectionItems').classList.remove('hide'); page.querySelector('.collectionItems').innerHTML = ''; - for (const type of types) { - const typeItems = filterItemsByCollectionItemType(items, type); - - if (typeItems.length) { - renderCollectionItemType(page, parentItem, type, typeItems); - } - } - - const otherType = { - name: globalize.translate('HeaderOtherItems') - }; - const otherTypeItems = items.filter(function (curr) { - return !types.filter(function (t) { - return filterItemsByCollectionItemType([curr], t).length > 0; - }).length; - }); - - if (otherTypeItems.length) { - renderCollectionItemType(page, parentItem, otherType, otherTypeItems); - } - if (!items.length) { renderCollectionItemType(page, parentItem, { name: globalize.translate('Items') }, items); + } else { + let typeItems = []; + let otherTypeItems = items; + + for (const type of types) { + [typeItems, otherTypeItems] = filterItemsByCollectionItemType(otherTypeItems, type); + + if (typeItems.length) { + renderCollectionItemType(page, parentItem, type, typeItems); + } + } + + if (otherTypeItems.length) { + const otherType = { + name: globalize.translate('HeaderOtherItems') + }; + renderCollectionItemType(page, parentItem, otherType, otherTypeItems); + } } const containers = page.querySelectorAll('.collectionItemsContainer'); From 1ac161c82c03ea8049fbe72a88e67dcfe38fa9b5 Mon Sep 17 00:00:00 2001 From: venkat_karasani Date: Mon, 8 Jul 2024 22:01:51 -0500 Subject: [PATCH 2/3] fixed linting errors. --- src/controllers/itemDetails/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js index 1232f82929..76899d4ee2 100644 --- a/src/controllers/itemDetails/index.js +++ b/src/controllers/itemDetails/index.js @@ -1633,9 +1633,9 @@ function inferContext(item) { } function filterItemsByCollectionItemType(items, typeInfo) { - let filteredItems = []; - let leftoverItems = []; - items.forEach(function(item){ + const filteredItems = []; + const leftoverItems = []; + items.forEach(function(item) { if ((typeInfo.mediaType && item.MediaType == typeInfo.mediaType) || (item.Type == typeInfo.type)) { filteredItems.push(item); } else { From b5708945b7d023e4c43aa754b73768356cb573c1 Mon Sep 17 00:00:00 2001 From: venkata nadha reddy <45334400+venkat-karasani@users.noreply.github.com> Date: Sat, 27 Jul 2024 01:45:20 +0000 Subject: [PATCH 3/3] translate key change Co-authored-by: Bill Thornton --- src/controllers/itemDetails/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js index 76899d4ee2..1f2d0d19f9 100644 --- a/src/controllers/itemDetails/index.js +++ b/src/controllers/itemDetails/index.js @@ -1467,7 +1467,7 @@ function renderChildren(page, item) { name: globalize.translate('Episodes'), type: 'Episode' }, { - name: globalize.translate('Videos'), + name: globalize.translate('HeaderVideos'), mediaType: 'Video' }, { name: globalize.translate('Albums'),