From 8900da42d8f08b1700e04e3296203c49f2dd7aac Mon Sep 17 00:00:00 2001 From: Cameron Date: Tue, 1 Sep 2020 10:07:06 +0100 Subject: [PATCH 1/7] Hide Alphapicker when not sorting alphabetically (movies --- src/controllers/movies/movies.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/controllers/movies/movies.js b/src/controllers/movies/movies.js index 91b428ec68..d48812cb94 100644 --- a/src/controllers/movies/movies.js +++ b/src/controllers/movies/movies.js @@ -26,6 +26,11 @@ import 'emby-itemscontainer'; const updateFilterControls = () => { if (this.alphaPicker) { this.alphaPicker.value(query.NameStartsWithOrGreater); + if (query.SortBy.indexOf('SortName') === 0) { + this.alphaPicker.visible(true); + } else { + this.alphaPicker.visible(false); + } } }; From 477ecfdc9fd8fe2185a8aab9e7c0b06152f8887e Mon Sep 17 00:00:00 2001 From: Cameron Date: Tue, 1 Sep 2020 10:09:22 +0100 Subject: [PATCH 2/7] Hide Alphapicker when not sorting alphabetically (TV) --- src/controllers/shows/tvshows.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/controllers/shows/tvshows.js b/src/controllers/shows/tvshows.js index 281c921e48..31ef72621d 100644 --- a/src/controllers/shows/tvshows.js +++ b/src/controllers/shows/tvshows.js @@ -198,7 +198,16 @@ import 'emby-itemscontainer'; function updateFilterControls(tabContent) { const query = getQuery(tabContent); - self.alphaPicker.value(query.NameStartsWithOrGreater); + + if (self.alphaPicker) { + self.alphaPicker.value(query.NameStartsWithOrGreater); + + if (query.SortBy.indexOf('SortName') === 0) { + self.alphaPicker.visible(true); + } else { + self.alphaPicker.visible(false); + } + } } const self = this; From d8cb6068940d56034a92314754d2b3fdb0d08cef Mon Sep 17 00:00:00 2001 From: Cameron Date: Tue, 1 Sep 2020 10:09:28 +0100 Subject: [PATCH 3/7] Hide Alphapicker when not sorting alphabetically (Music) --- src/controllers/music/musicalbums.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/controllers/music/musicalbums.js b/src/controllers/music/musicalbums.js index 7ea8fa254a..5bb8546e76 100644 --- a/src/controllers/music/musicalbums.js +++ b/src/controllers/music/musicalbums.js @@ -186,7 +186,16 @@ import 'emby-itemscontainer'; const updateFilterControls = (tabContent) => { const query = getQuery(); - this.alphaPicker.value(query.NameStartsWithOrGreater); + + if (this.alphaPicker) { + this.alphaPicker.value(query.NameStartsWithOrGreater); + + if (query.SortBy.indexOf('SortName') === 0) { + this.alphaPicker.visible(true); + } else { + this.alphaPicker.visible(false); + } + } }; let savedQueryKey; From ab7fafa891b5c26ec758424a91c594fed7e03efb Mon Sep 17 00:00:00 2001 From: Cameron Date: Tue, 1 Sep 2020 10:12:10 +0100 Subject: [PATCH 4/7] Remove ailiasing this --- src/controllers/shows/tvshows.js | 47 ++++++++++++++++---------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/src/controllers/shows/tvshows.js b/src/controllers/shows/tvshows.js index 31ef72621d..17407e4c5d 100644 --- a/src/controllers/shows/tvshows.js +++ b/src/controllers/shows/tvshows.js @@ -54,8 +54,8 @@ import 'emby-itemscontainer'; return context.savedQueryKey; } - function onViewStyleChange() { - const viewStyle = self.getCurrentViewStyle(); + const onViewStyleChange = () => { + const viewStyle = this.getCurrentViewStyle(); const itemsContainer = tabContent.querySelector('.itemsContainer'); if (viewStyle == 'List') { @@ -67,13 +67,13 @@ import 'emby-itemscontainer'; } itemsContainer.innerHTML = ''; - } + }; - function reloadItems(page) { + const reloadItems = (page) => { loading.show(); isLoading = true; const query = getQuery(page); - ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) { + ApiClient.getItems(ApiClient.getCurrentUserId(), query).then((result) => { function onNextPageClick() { if (isLoading) { return; @@ -109,7 +109,7 @@ import 'emby-itemscontainer'; sortButton: false, filterButton: false }); - const viewStyle = self.getCurrentViewStyle(); + const viewStyle = this.getCurrentViewStyle(); if (viewStyle == 'Thumb') { html = cardBuilder.getCardsHtml({ items: result.Items, @@ -196,25 +196,24 @@ import 'emby-itemscontainer'; }); } - function updateFilterControls(tabContent) { + const updateFilterControls = (tabContent) => { const query = getQuery(tabContent); - if (self.alphaPicker) { - self.alphaPicker.value(query.NameStartsWithOrGreater); + if (this.alphaPicker) { + this.alphaPicker.value(query.NameStartsWithOrGreater); if (query.SortBy.indexOf('SortName') === 0) { - self.alphaPicker.visible(true); + this.alphaPicker.visible(true); } else { - self.alphaPicker.visible(false); + this.alphaPicker.visible(false); } } - } + }; - const self = this; const data = {}; let isLoading = false; - self.showFilterMenu = function () { + this.showFilterMenu = function () { import('components/filterdialog/filterdialog').then(({default: filterDialogFactory}) => { const filterDialog = new filterDialogFactory({ query: getQuery(tabContent), @@ -229,11 +228,11 @@ import 'emby-itemscontainer'; }); }; - self.getCurrentViewStyle = function () { + this.getCurrentViewStyle = function () { return getPageData(tabContent).view; }; - function initPage(tabContent) { + const initPage = (tabContent) => { const alphaPickerElement = tabContent.querySelector('.alphaPicker'); const itemsContainer = tabContent.querySelector('.itemsContainer'); @@ -244,7 +243,7 @@ import 'emby-itemscontainer'; query.StartIndex = 0; reloadItems(tabContent); }); - self.alphaPicker = new AlphaPicker({ + this.alphaPicker = new AlphaPicker({ element: alphaPickerElement, valueChangeEvent: 'click' }); @@ -253,8 +252,8 @@ import 'emby-itemscontainer'; alphaPickerElement.classList.add('alphaPicker-fixed-right'); itemsContainer.classList.add('padded-right-withalphapicker'); - tabContent.querySelector('.btnFilter').addEventListener('click', function () { - self.showFilterMenu(); + tabContent.querySelector('.btnFilter').addEventListener('click', () => { + this.showFilterMenu(); }); tabContent.querySelector('.btnSort').addEventListener('click', function (e) { libraryBrowser.showSortMenu({ @@ -286,8 +285,8 @@ import 'emby-itemscontainer'; }); }); const btnSelectView = tabContent.querySelector('.btnSelectView'); - btnSelectView.addEventListener('click', function (e) { - libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), 'Banner,List,Poster,PosterCard,Thumb,ThumbCard'.split(',')); + btnSelectView.addEventListener('click', (e) => { + libraryBrowser.showLayoutMenu(e.target, this.getCurrentViewStyle(), 'Banner,List,Poster,PosterCard,Thumb,ThumbCard'.split(',')); }); btnSelectView.addEventListener('layoutchange', function (e) { const viewStyle = e.detail.viewStyle; @@ -297,17 +296,17 @@ import 'emby-itemscontainer'; onViewStyleChange(); reloadItems(tabContent); }); - } + }; initPage(tabContent); onViewStyleChange(); - self.renderTab = function () { + this.renderTab = function () { reloadItems(tabContent); updateFilterControls(tabContent); }; - self.destroy = function () {}; + this.destroy = function () {}; } /* eslint-enable indent */ From 840ef01a1303582584b914a31c650822fe57c6b5 Mon Sep 17 00:00:00 2001 From: Cameron Date: Tue, 1 Sep 2020 10:13:15 +0100 Subject: [PATCH 5/7] Replace loops for for..of --- src/controllers/shows/tvshows.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/controllers/shows/tvshows.js b/src/controllers/shows/tvshows.js index 17407e4c5d..7d76c78faa 100644 --- a/src/controllers/shows/tvshows.js +++ b/src/controllers/shows/tvshows.js @@ -169,18 +169,18 @@ import 'emby-itemscontainer'; let elems = tabContent.querySelectorAll('.paging'); - for (let i = 0, length = elems.length; i < length; i++) { - elems[i].innerHTML = pagingHtml; + for (const elem of elems) { + elem.innerHTML = pagingHtml; } elems = tabContent.querySelectorAll('.btnNextPage'); - for (let i = 0, length = elems.length; i < length; i++) { - elems[i].addEventListener('click', onNextPageClick); + for (const elem of elems) { + elem.addEventListener('click', onNextPageClick); } elems = tabContent.querySelectorAll('.btnPreviousPage'); - for (let i = 0, length = elems.length; i < length; i++) { - elems[i].addEventListener('click', onPreviousPageClick); + for (const elem of elems) { + elem.addEventListener('click', onPreviousPageClick); } const itemsContainer = tabContent.querySelector('.itemsContainer'); @@ -194,7 +194,7 @@ import 'emby-itemscontainer'; autoFocuser.autoFocus(page); }); }); - } + }; const updateFilterControls = (tabContent) => { const query = getQuery(tabContent); From 4968f71858834e0ad29f9ad446698d0faa2e808d Mon Sep 17 00:00:00 2001 From: Cameron Date: Tue, 1 Sep 2020 10:14:14 +0100 Subject: [PATCH 6/7] Replace loops for for..of --- src/controllers/music/musicalbums.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/controllers/music/musicalbums.js b/src/controllers/music/musicalbums.js index 5bb8546e76..5ecb553024 100644 --- a/src/controllers/music/musicalbums.js +++ b/src/controllers/music/musicalbums.js @@ -155,20 +155,21 @@ import 'emby-itemscontainer'; overlayPlayButton: true }); } + let elems = tabContent.querySelectorAll('.paging'); - for (let i = 0, length = elems.length; i < length; i++) { - elems[i].innerHTML = pagingHtml; + for (const elem of elems) { + elem.innerHTML = pagingHtml; } elems = tabContent.querySelectorAll('.btnNextPage'); - for (let i = 0, length = elems.length; i < length; i++) { - elems[i].addEventListener('click', onNextPageClick); + for (const elem of elems) { + elem.addEventListener('click', onNextPageClick); } elems = tabContent.querySelectorAll('.btnPreviousPage'); - for (let i = 0, length = elems.length; i < length; i++) { - elems[i].addEventListener('click', onPreviousPageClick); + for (const elem of elems) { + elem.addEventListener('click', onPreviousPageClick); } const itemsContainer = tabContent.querySelector('.itemsContainer'); @@ -209,10 +210,12 @@ import 'emby-itemscontainer'; mode: 'albums', serverId: ApiClient.serverId() }); + events.on(filterDialog, 'filterchange', function () { getQuery().StartIndex = 0; reloadItems(tabContent); }); + filterDialog.show(); }); }; @@ -232,6 +235,7 @@ import 'emby-itemscontainer'; query.StartIndex = 0; reloadItems(tabContent); }); + this.alphaPicker = new AlphaPicker({ element: alphaPickerElement, valueChangeEvent: 'click' @@ -244,6 +248,7 @@ import 'emby-itemscontainer'; tabContent.querySelector('.btnFilter').addEventListener('click', () => { this.showFilterMenu(); }); + tabContent.querySelector('.btnSort').addEventListener('click', (e) => { libraryBrowser.showSortMenu({ items: [{ @@ -276,10 +281,12 @@ import 'emby-itemscontainer'; button: e.target }); }); + const btnSelectView = tabContent.querySelector('.btnSelectView'); btnSelectView.addEventListener('click', (e) => { libraryBrowser.showLayoutMenu(e.target, this.getCurrentViewStyle(), 'List,Poster,PosterCard'.split(',')); }); + btnSelectView.addEventListener('layoutchange', function (e) { const viewStyle = e.detail.viewStyle; getPageData().view = viewStyle; @@ -288,6 +295,7 @@ import 'emby-itemscontainer'; onViewStyleChange(); reloadItems(tabContent); }); + tabContent.querySelector('.btnPlayAll').addEventListener('click', playAll); tabContent.querySelector('.btnShuffle').addEventListener('click', shuffle); }; From 6b6841c8c81ab3c24da9b85f008e5601cd3758dd Mon Sep 17 00:00:00 2001 From: Cameron Date: Fri, 11 Sep 2020 22:39:53 +0100 Subject: [PATCH 7/7] Update CONTRIBUTORS.md --- CONTRIBUTORS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 778d899ef7..672795cce1 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -39,6 +39,7 @@ - [Andrei Oanca](https://github.com/OancaAndrei) - [Cromefire_](https://github.com/cromefire) - [Orry Verducci](https://github.com/orryverducci) + - [Camc314](https://github.com/camc314) # Emby Contributors