diff --git a/src/components/alphaPicker/alphaPicker.js b/src/components/alphaPicker/alphaPicker.js index 3033d38f3c..82fa55ff9b 100644 --- a/src/components/alphaPicker/alphaPicker.js +++ b/src/components/alphaPicker/alphaPicker.js @@ -280,6 +280,16 @@ import 'material-design-icons-iconfont'; element.removeEventListener(name, fn); } + updateControls(query) { + if (query.NameLessThan) { + this.value('#'); + } else { + this.value(query.NameStartsWith); + } + + this.visible(query.SortBy.indexOf('SortName') === 0); + } + visible(visible) { const element = this.options.element; element.style.visibility = visible ? 'visible' : 'hidden'; diff --git a/src/controllers/movies/movies.js b/src/controllers/movies/movies.js index 61fc099e03..e8137fd764 100644 --- a/src/controllers/movies/movies.js +++ b/src/controllers/movies/movies.js @@ -23,24 +23,13 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; itemsContainer.innerHTML = ''; }; - const updateFilterControls = () => { - if (this.alphaPicker) { - this.alphaPicker.value(query.NameStartsWith); - if (query.SortBy.indexOf('SortName') === 0) { - this.alphaPicker.visible(true); - } else { - this.alphaPicker.visible(false); - } - } - }; - function fetchData() { isLoading = true; loading.show(); return ApiClient.getItems(ApiClient.getCurrentUserId(), query); } - function afterRefresh(result) { + const afterRefresh = (result) => { function onNextPageClick() { if (isLoading) { return; @@ -64,7 +53,7 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; } window.scrollTo(0, 0); - updateFilterControls(); + this.alphaPicker?.updateControls(query); const pagingHtml = libraryBrowser.getQueryPagingHtml({ startIndex: query.StartIndex, limit: query.Limit, @@ -94,7 +83,7 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; import('../../components/autoFocuser').then(({default: autoFocuser}) => { autoFocuser.autoFocus(tabContent); }); - } + }; const getItemsHtml = (items) => { let html; @@ -173,7 +162,13 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; if (alphaPickerElement) { alphaPickerElement.addEventListener('alphavaluechanged', function (e) { const newValue = e.detail.value; - query.NameStartsWith = newValue; + if (newValue === '#') { + query.NameLessThan = 'A'; + delete query.NameStartsWith; + } else { + query.NameStartsWith = newValue; + delete query.NameLessThan; + } query.StartIndex = 0; itemsContainer.refreshItems(); }); @@ -301,9 +296,9 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; onViewStyleChange(); }; - this.renderTab = function () { + this.renderTab = () => { itemsContainer.refreshItems(); - updateFilterControls(); + this.alphaPicker?.updateControls(query); }; this.destroy = function () { diff --git a/src/controllers/movies/movietrailers.js b/src/controllers/movies/movietrailers.js index 572d8d2dc6..d936a95e5d 100644 --- a/src/controllers/movies/movietrailers.js +++ b/src/controllers/movies/movietrailers.js @@ -81,7 +81,7 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; } window.scrollTo(0, 0); - updateFilterControls(tabContent); + this.alphaPicker?.updateControls(query); const pagingHtml = libraryBrowser.getQueryPagingHtml({ startIndex: query.StartIndex, limit: query.Limit, @@ -183,11 +183,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; }); }; - const updateFilterControls = (tabContent) => { - const query = getQuery(tabContent); - this.alphaPicker.value(query.NameStartsWith); - }; - const data = {}; let isLoading = false; @@ -216,7 +211,13 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; alphaPickerElement.addEventListener('alphavaluechanged', function (e) { const newValue = e.detail.value; const query = getQuery(tabContent); - query.NameStartsWith = newValue; + if (newValue === '#') { + query.NameLessThan = 'A'; + delete query.NameStartsWith; + } else { + query.NameStartsWith = newValue; + delete query.NameLessThan; + } query.StartIndex = 0; reloadItems(); }); @@ -268,9 +269,9 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; initPage(tabContent); - this.renderTab = function () { + this.renderTab = () => { reloadItems(); - updateFilterControls(tabContent); + this.alphaPicker?.updateControls(getQuery(tabContent)); }; this.destroy = function () {}; diff --git a/src/controllers/music/musicalbums.js b/src/controllers/music/musicalbums.js index d1ac2804df..8702aa38fa 100644 --- a/src/controllers/music/musicalbums.js +++ b/src/controllers/music/musicalbums.js @@ -112,7 +112,7 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; } window.scrollTo(0, 0); - updateFilterControls(); + this.alphaPicker?.updateControls(query); let html; const pagingHtml = libraryBrowser.getQueryPagingHtml({ startIndex: query.StartIndex, @@ -185,20 +185,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; }); }; - const updateFilterControls = () => { - const query = getQuery(); - - if (this.alphaPicker) { - this.alphaPicker.value(query.NameStartsWith); - - if (query.SortBy.indexOf('SortName') === 0) { - this.alphaPicker.visible(true); - } else { - this.alphaPicker.visible(false); - } - } - }; - let savedQueryKey; let pageData; let isLoading = false; @@ -230,7 +216,13 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; alphaPickerElement.addEventListener('alphavaluechanged', function (e) { const newValue = e.detail.value; const query = getQuery(); - query.NameStartsWith = newValue; + if (newValue === '#') { + query.NameLessThan = 'A'; + delete query.NameStartsWith; + } else { + query.NameStartsWith = newValue; + delete query.NameLessThan; + } query.StartIndex = 0; reloadItems(); }); @@ -302,9 +294,9 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; initPage(tabContent); onViewStyleChange(); - this.renderTab = function () { + this.renderTab = () => { reloadItems(); - updateFilterControls(); + this.alphaPicker?.updateControls(getQuery()); }; this.destroy = function () {}; diff --git a/src/controllers/music/musicartists.js b/src/controllers/music/musicartists.js index 295378a223..61cc6b7272 100644 --- a/src/controllers/music/musicartists.js +++ b/src/controllers/music/musicartists.js @@ -99,7 +99,7 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; } window.scrollTo(0, 0); - updateFilterControls(page); + this.alphaPicker?.updateControls(query); let html; const pagingHtml = libraryBrowser.getQueryPagingHtml({ startIndex: query.StartIndex, @@ -167,11 +167,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; }); }; - const updateFilterControls = (tabContent) => { - const query = getQuery(tabContent); - this.alphaPicker.value(query.NameStartsWith); - }; - const data = {}; let isLoading = false; @@ -201,7 +196,13 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; alphaPickerElement.addEventListener('alphavaluechanged', function (e) { const newValue = e.detail.value; const query = getQuery(tabContent); - query.NameStartsWith = newValue; + if (newValue === '#') { + query.NameLessThan = 'A'; + delete query.NameStartsWith; + } else { + query.NameStartsWith = newValue; + delete query.NameLessThan; + } query.StartIndex = 0; reloadItems(tabContent); }); @@ -234,9 +235,9 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; initPage(tabContent); onViewStyleChange(); - this.renderTab = function () { + this.renderTab = () => { reloadItems(tabContent); - updateFilterControls(tabContent); + this.alphaPicker?.updateControls(getQuery(tabContent)); }; this.destroy = function () {}; diff --git a/src/controllers/shows/tvshows.js b/src/controllers/shows/tvshows.js index 7ef60e21db..895d3ba6fc 100644 --- a/src/controllers/shows/tvshows.js +++ b/src/controllers/shows/tvshows.js @@ -97,7 +97,7 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; } window.scrollTo(0, 0); - updateFilterControls(page); + this.alphaPicker?.updateControls(query); let html; const pagingHtml = libraryBrowser.getQueryPagingHtml({ startIndex: query.StartIndex, @@ -196,20 +196,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; }); }; - const updateFilterControls = (tabContent) => { - const query = getQuery(tabContent); - - if (this.alphaPicker) { - this.alphaPicker.value(query.NameStartsWith); - - if (query.SortBy.indexOf('SortName') === 0) { - this.alphaPicker.visible(true); - } else { - this.alphaPicker.visible(false); - } - } - }; - const data = {}; let isLoading = false; @@ -239,7 +225,13 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; alphaPickerElement.addEventListener('alphavaluechanged', function (e) { const newValue = e.detail.value; const query = getQuery(tabContent); - query.NameStartsWith = newValue; + if (newValue === '#') { + query.NameLessThan = 'A'; + delete query.NameStartsWith; + } else { + query.NameStartsWith = newValue; + delete query.NameLessThan; + } query.StartIndex = 0; reloadItems(tabContent); }); @@ -301,9 +293,9 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; initPage(tabContent); onViewStyleChange(); - this.renderTab = function () { + this.renderTab = () => { reloadItems(tabContent); - updateFilterControls(tabContent); + this.alphaPicker?.updateControls(getQuery(tabContent)); }; this.destroy = function () {};