1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

cleanup duplicate userSettings from libraryBrowser

This commit is contained in:
grafixeyehero 2023-07-14 21:32:34 +03:00
parent d8c25b4594
commit 1825b821af
15 changed files with 147 additions and 196 deletions

View file

@ -24,7 +24,7 @@ export default function (view, params, tabContent) {
EnableImageTypes: 'Primary,Backdrop,Banner,Thumb', EnableImageTypes: 'Primary,Backdrop,Banner,Thumb',
StartIndex: 0 StartIndex: 0
}, },
view: libraryBrowser.getSavedView(key) || 'Poster' view: userSettings.getSavedView(key) || 'Poster'
}; };
if (userSettings.libraryPageSize() > 0) { if (userSettings.libraryPageSize() > 0) {
@ -32,7 +32,7 @@ export default function (view, params, tabContent) {
} }
pageData.query.ParentId = params.topParentId; pageData.query.ParentId = params.topParentId;
libraryBrowser.loadSavedQueryValues(key, pageData.query); userSettings.loadQuerySettings(key, pageData.query);
} }
return pageData; return pageData;
@ -183,7 +183,7 @@ export default function (view, params, tabContent) {
const itemsContainer = tabContent.querySelector('.itemsContainer'); const itemsContainer = tabContent.querySelector('.itemsContainer');
itemsContainer.innerHTML = html; itemsContainer.innerHTML = html;
imageLoader.lazyChildren(itemsContainer); imageLoader.lazyChildren(itemsContainer);
libraryBrowser.saveQueryValues(getSavedQueryKey(), query); userSettings.saveQuerySettings(getSavedQueryKey(), query);
loading.hide(); loading.hide();
isLoading = false; isLoading = false;
@ -234,7 +234,7 @@ export default function (view, params, tabContent) {
btnSelectView.addEventListener('layoutchange', function (e) { btnSelectView.addEventListener('layoutchange', function (e) {
const viewStyle = e.detail.viewStyle; const viewStyle = e.detail.viewStyle;
getPageData().view = viewStyle; getPageData().view = viewStyle;
libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle); userSettings.saveViewSetting(getSavedQueryKey(), viewStyle);
getQuery().StartIndex = 0; getQuery().StartIndex = 0;
onViewStyleChange(); onViewStyleChange();
reloadItems(tabElement); reloadItems(tabElement);

View file

@ -1,7 +1,7 @@
import escapeHtml from 'escape-html'; import escapeHtml from 'escape-html';
import layoutManager from '../../components/layoutManager'; import layoutManager from '../../components/layoutManager';
import loading from '../../components/loading/loading'; import loading from '../../components/loading/loading';
import libraryBrowser from '../../scripts/libraryBrowser'; import * as userSettings from '../../scripts/settings/userSettings';
import cardBuilder from '../../components/cardbuilder/cardBuilder'; import cardBuilder from '../../components/cardbuilder/cardBuilder';
import lazyLoader from '../../components/lazyLoader/lazyLoaderIntersectionObserver'; import lazyLoader from '../../components/lazyLoader/lazyLoaderIntersectionObserver';
import globalize from '../../scripts/globalize'; import globalize from '../../scripts/globalize';
@ -22,10 +22,10 @@ export default function (view, params, tabContent) {
Recursive: true, Recursive: true,
EnableTotalRecordCount: false EnableTotalRecordCount: false
}, },
view: 'Poster' view: userSettings.getSavedView(key) || 'Poster'
}; };
pageData.query.ParentId = params.topParentId; pageData.query.ParentId = params.topParentId;
libraryBrowser.loadSavedQueryValues(key, pageData.query); userSettings.loadQuerySettings(key, pageData.query);
} }
return pageData; return pageData;
@ -181,7 +181,7 @@ export default function (view, params, tabContent) {
elem.innerHTML = html; elem.innerHTML = html;
lazyLoader.lazyChildren(elem, fillItemsContainer); lazyLoader.lazyChildren(elem, fillItemsContainer);
libraryBrowser.saveQueryValues(getSavedQueryKey(), query); userSettings.saveQuerySettings(getSavedQueryKey(), query);
loading.hide(); loading.hide();
}); });
} }
@ -203,7 +203,7 @@ export default function (view, params, tabContent) {
this.setCurrentViewStyle = function (viewStyle) { this.setCurrentViewStyle = function (viewStyle) {
getPageData().view = viewStyle; getPageData().view = viewStyle;
libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle); userSettings.saveViewSetting(getSavedQueryKey(), viewStyle);
fullyReload(); fullyReload();
}; };

View file

@ -27,14 +27,14 @@ export default function (view, params, tabContent) {
EnableImageTypes: 'Primary,Backdrop,Banner,Thumb', EnableImageTypes: 'Primary,Backdrop,Banner,Thumb',
StartIndex: 0 StartIndex: 0
}, },
view: libraryBrowser.getSavedView(key) || 'Poster' view: userSettings.getSavedView(key) || 'Poster'
}; };
if (userSettings.libraryPageSize() > 0) { if (userSettings.libraryPageSize() > 0) {
pageData.query['Limit'] = userSettings.libraryPageSize(); pageData.query['Limit'] = userSettings.libraryPageSize();
} }
libraryBrowser.loadSavedQueryValues(key, pageData.query); userSettings.loadQuerySettings(key, pageData.query);
} }
return pageData; return pageData;
@ -172,7 +172,7 @@ export default function (view, params, tabContent) {
const itemsContainer = tabContent.querySelector('.itemsContainer'); const itemsContainer = tabContent.querySelector('.itemsContainer');
itemsContainer.innerHTML = html; itemsContainer.innerHTML = html;
imageLoader.lazyChildren(itemsContainer); imageLoader.lazyChildren(itemsContainer);
libraryBrowser.saveQueryValues(getSavedQueryKey(), query); userSettings.saveQuerySettings(getSavedQueryKey(), query);
loading.hide(); loading.hide();
isLoading = false; isLoading = false;
}); });

View file

@ -42,7 +42,7 @@ export default function (view, params, tabContent) {
EnableImageTypes: 'Primary,Backdrop,Banner,Thumb', EnableImageTypes: 'Primary,Backdrop,Banner,Thumb',
StartIndex: 0 StartIndex: 0
}, },
view: libraryBrowser.getSavedView(key) || 'Poster' view: userSettings.getSavedView(key) || 'Poster'
}; };
if (userSettings.libraryPageSize() > 0) { if (userSettings.libraryPageSize() > 0) {
@ -50,7 +50,7 @@ export default function (view, params, tabContent) {
} }
pageData.query.ParentId = params.topParentId; pageData.query.ParentId = params.topParentId;
libraryBrowser.loadSavedQueryValues(key, pageData.query); userSettings.loadQuerySettings(key, pageData.query);
} }
return pageData; return pageData;
@ -61,11 +61,7 @@ export default function (view, params, tabContent) {
} }
function getSavedQueryKey() { function getSavedQueryKey() {
if (!savedQueryKey) { return `${params.topParentId}-musicalbums`;
savedQueryKey = libraryBrowser.getSavedQueryKey('musicalbums');
}
return savedQueryKey;
} }
const onViewStyleChange = () => { const onViewStyleChange = () => {
@ -174,7 +170,7 @@ export default function (view, params, tabContent) {
const itemsContainer = tabContent.querySelector('.itemsContainer'); const itemsContainer = tabContent.querySelector('.itemsContainer');
itemsContainer.innerHTML = html; itemsContainer.innerHTML = html;
imageLoader.lazyChildren(itemsContainer); imageLoader.lazyChildren(itemsContainer);
libraryBrowser.saveQueryValues(getSavedQueryKey(), query); userSettings.saveQuerySettings(getSavedQueryKey(), query);
loading.hide(); loading.hide();
isLoading = false; isLoading = false;
@ -184,7 +180,6 @@ export default function (view, params, tabContent) {
}); });
}; };
let savedQueryKey;
let pageData; let pageData;
let isLoading = false; let isLoading = false;
@ -280,7 +275,7 @@ export default function (view, params, tabContent) {
btnSelectView.addEventListener('layoutchange', function (e) { btnSelectView.addEventListener('layoutchange', function (e) {
const viewStyle = e.detail.viewStyle; const viewStyle = e.detail.viewStyle;
getPageData().view = viewStyle; getPageData().view = viewStyle;
libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle); userSettings.saveViewSetting(getSavedQueryKey(), viewStyle);
getQuery().StartIndex = 0; getQuery().StartIndex = 0;
onViewStyleChange(); onViewStyleChange();
reloadItems(); reloadItems();

View file

@ -10,8 +10,8 @@ import Events from '../../utils/events.ts';
import '../../elements/emby-itemscontainer/emby-itemscontainer'; import '../../elements/emby-itemscontainer/emby-itemscontainer';
export default function (view, params, tabContent) { export default function (view, params, tabContent) {
function getPageData(context) { function getPageData() {
const key = getSavedQueryKey(context); const key = getSavedQueryKey();
let pageData = data[key]; let pageData = data[key];
if (!pageData) { if (!pageData) {
@ -31,27 +31,23 @@ export default function (view, params, tabContent) {
pageData = data[key] = { pageData = data[key] = {
query: queryValues, query: queryValues,
view: libraryBrowser.getSavedView(key) || 'Poster' view: userSettings.getSavedView(key) || 'Poster'
}; };
pageData.query.ParentId = params.topParentId; pageData.query.ParentId = params.topParentId;
libraryBrowser.loadSavedQueryValues(key, pageData.query); userSettings.loadQuerySettings(key, pageData.query);
} }
return pageData; return pageData;
} }
function getQuery(context) { function getQuery() {
return getPageData(context).query; return getPageData().query;
} }
const getSavedQueryKey = (context) => { function getSavedQueryKey() {
if (!context.savedQueryKey) { return `${params.topParentId}-${this.mode}`;
context.savedQueryKey = libraryBrowser.getSavedQueryKey(this.mode);
} }
return context.savedQueryKey;
};
const onViewStyleChange = () => { const onViewStyleChange = () => {
const viewStyle = this.getCurrentViewStyle(); const viewStyle = this.getCurrentViewStyle();
const itemsContainer = tabContent.querySelector('.itemsContainer'); const itemsContainer = tabContent.querySelector('.itemsContainer');
@ -67,10 +63,10 @@ export default function (view, params, tabContent) {
itemsContainer.innerHTML = ''; itemsContainer.innerHTML = '';
}; };
const reloadItems = (page) => { const reloadItems = () => {
loading.show(); loading.show();
isLoading = true; isLoading = true;
const query = getQuery(page); const query = getQuery();
const promise = this.mode == 'albumartists' ? const promise = this.mode == 'albumartists' ?
ApiClient.getAlbumArtists(ApiClient.getCurrentUserId(), query) : ApiClient.getAlbumArtists(ApiClient.getCurrentUserId(), query) :
ApiClient.getArtists(ApiClient.getCurrentUserId(), query); ApiClient.getArtists(ApiClient.getCurrentUserId(), query);
@ -83,7 +79,7 @@ export default function (view, params, tabContent) {
if (userSettings.libraryPageSize() > 0) { if (userSettings.libraryPageSize() > 0) {
query.StartIndex += query.Limit; query.StartIndex += query.Limit;
} }
reloadItems(tabContent); reloadItems();
} }
function onPreviousPageClick() { function onPreviousPageClick() {
@ -94,7 +90,7 @@ export default function (view, params, tabContent) {
if (userSettings.libraryPageSize() > 0) { if (userSettings.libraryPageSize() > 0) {
query.StartIndex = Math.max(0, query.StartIndex - query.Limit); query.StartIndex = Math.max(0, query.StartIndex - query.Limit);
} }
reloadItems(tabContent); reloadItems();
} }
window.scrollTo(0, 0); window.scrollTo(0, 0);
@ -156,7 +152,7 @@ export default function (view, params, tabContent) {
const itemsContainer = tabContent.querySelector('.itemsContainer'); const itemsContainer = tabContent.querySelector('.itemsContainer');
itemsContainer.innerHTML = html; itemsContainer.innerHTML = html;
imageLoader.lazyChildren(itemsContainer); imageLoader.lazyChildren(itemsContainer);
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query); userSettings.saveQuerySettings(getSavedQueryKey(), query);
loading.hide(); loading.hide();
isLoading = false; isLoading = false;
@ -172,20 +168,20 @@ export default function (view, params, tabContent) {
this.showFilterMenu = function () { this.showFilterMenu = function () {
import('../../components/filterdialog/filterdialog').then(({ default: FilterDialog }) => { import('../../components/filterdialog/filterdialog').then(({ default: FilterDialog }) => {
const filterDialog = new FilterDialog({ const filterDialog = new FilterDialog({
query: getQuery(tabContent), query: getQuery(),
mode: this.mode, mode: this.mode,
serverId: ApiClient.serverId() serverId: ApiClient.serverId()
}); });
Events.on(filterDialog, 'filterchange', function () { Events.on(filterDialog, 'filterchange', function () {
getQuery(tabContent).StartIndex = 0; getQuery().StartIndex = 0;
reloadItems(tabContent); reloadItems();
}); });
filterDialog.show(); filterDialog.show();
}); });
}; };
this.getCurrentViewStyle = function () { this.getCurrentViewStyle = function () {
return getPageData(tabContent).view; return getPageData().view;
}; };
const initPage = (tabElement) => { const initPage = (tabElement) => {
@ -194,7 +190,7 @@ export default function (view, params, tabContent) {
alphaPickerElement.addEventListener('alphavaluechanged', function (e) { alphaPickerElement.addEventListener('alphavaluechanged', function (e) {
const newValue = e.detail.value; const newValue = e.detail.value;
const query = getQuery(tabElement); const query = getQuery();
if (newValue === '#') { if (newValue === '#') {
query.NameLessThan = 'A'; query.NameLessThan = 'A';
delete query.NameStartsWith; delete query.NameStartsWith;
@ -203,7 +199,7 @@ export default function (view, params, tabContent) {
delete query.NameLessThan; delete query.NameLessThan;
} }
query.StartIndex = 0; query.StartIndex = 0;
reloadItems(tabElement); reloadItems();
}); });
this.alphaPicker = new AlphaPicker({ this.alphaPicker = new AlphaPicker({
element: alphaPickerElement, element: alphaPickerElement,
@ -223,11 +219,11 @@ export default function (view, params, tabContent) {
}); });
btnSelectView.addEventListener('layoutchange', function (e) { btnSelectView.addEventListener('layoutchange', function (e) {
const viewStyle = e.detail.viewStyle; const viewStyle = e.detail.viewStyle;
getPageData(tabElement).view = viewStyle; getPageData().view = viewStyle;
libraryBrowser.saveViewSetting(getSavedQueryKey(tabElement), viewStyle); userSettings.saveViewSetting(getSavedQueryKey(), viewStyle);
getQuery(tabElement).StartIndex = 0; getQuery().StartIndex = 0;
onViewStyleChange(); onViewStyleChange();
reloadItems(tabElement); reloadItems();
}); });
}; };
@ -235,8 +231,8 @@ export default function (view, params, tabContent) {
onViewStyleChange(); onViewStyleChange();
this.renderTab = () => { this.renderTab = () => {
reloadItems(tabContent); reloadItems();
this.alphaPicker?.updateControls(getQuery(tabContent)); this.alphaPicker?.updateControls(getQuery());
}; };
} }

View file

@ -1,4 +1,4 @@
import libraryBrowser from '../../scripts/libraryBrowser'; import * as userSettings from '../../scripts/settings/userSettings';
import cardBuilder from '../../components/cardbuilder/cardBuilder'; import cardBuilder from '../../components/cardbuilder/cardBuilder';
import imageLoader from '../../components/images/imageLoader'; import imageLoader from '../../components/images/imageLoader';
import loading from '../../components/loading/loading'; import loading from '../../components/loading/loading';
@ -17,10 +17,10 @@ export default function (view, params, tabContent) {
Fields: 'PrimaryImageAspectRatio,ItemCounts', Fields: 'PrimaryImageAspectRatio,ItemCounts',
StartIndex: 0 StartIndex: 0
}, },
view: libraryBrowser.getSavedView(key) || 'Poster' view: userSettings.getSavedView(key) || 'Poster'
}; };
pageData.query.ParentId = params.topParentId; pageData.query.ParentId = params.topParentId;
libraryBrowser.loadSavedQueryValues(key, pageData.query); userSettings.loadQuerySettings(key, pageData.query);
} }
return pageData; return pageData;
@ -31,7 +31,7 @@ export default function (view, params, tabContent) {
} }
function getSavedQueryKey() { function getSavedQueryKey() {
return libraryBrowser.getSavedQueryKey('genres'); return `${params.topParentId}-genres`;
} }
function getPromise() { function getPromise() {
@ -87,7 +87,7 @@ export default function (view, params, tabContent) {
const elem = context.querySelector('#items'); const elem = context.querySelector('#items');
elem.innerHTML = html; elem.innerHTML = html;
imageLoader.lazyChildren(elem); imageLoader.lazyChildren(elem);
libraryBrowser.saveQueryValues(getSavedQueryKey(), query); userSettings.saveQuerySettings(getSavedQueryKey(), query);
loading.hide(); loading.hide();
import('../../components/autoFocuser').then(({ default: autoFocuser }) => { import('../../components/autoFocuser').then(({ default: autoFocuser }) => {
@ -113,7 +113,7 @@ export default function (view, params, tabContent) {
this.setCurrentViewStyle = function (viewStyle) { this.setCurrentViewStyle = function (viewStyle) {
getPageData().view = viewStyle; getPageData().view = viewStyle;
libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle); userSettings.saveViewSetting(getSavedQueryKey(), viewStyle);
fullyReload(); fullyReload();
}; };

View file

@ -1,4 +1,4 @@
import libraryBrowser from '../../scripts/libraryBrowser'; import * as userSettings from '../../scripts/settings/userSettings';
import cardBuilder from '../../components/cardbuilder/cardBuilder'; import cardBuilder from '../../components/cardbuilder/cardBuilder';
import imageLoader from '../../components/images/imageLoader'; import imageLoader from '../../components/images/imageLoader';
import loading from '../../components/loading/loading'; import loading from '../../components/loading/loading';
@ -18,10 +18,10 @@ export default function (view, params, tabContent) {
Fields: 'PrimaryImageAspectRatio,SortName,CanDelete', Fields: 'PrimaryImageAspectRatio,SortName,CanDelete',
StartIndex: 0 StartIndex: 0
}, },
view: libraryBrowser.getSavedView(key) || 'Poster' view: userSettings.getSavedView(key) || 'Poster'
}; };
pageData.query.ParentId = params.topParentId; pageData.query.ParentId = params.topParentId;
libraryBrowser.loadSavedQueryValues(key, pageData.query); userSettings.loadQuerySettings(key, pageData.query);
} }
return pageData; return pageData;
@ -32,7 +32,7 @@ export default function (view, params, tabContent) {
} }
function getSavedQueryKey() { function getSavedQueryKey() {
return libraryBrowser.getSavedQueryKey('genres'); return `${params.topParentId}-musicplaylists`;
} }
function getPromise() { function getPromise() {
@ -58,7 +58,7 @@ export default function (view, params, tabContent) {
const elem = context.querySelector('#items'); const elem = context.querySelector('#items');
elem.innerHTML = html; elem.innerHTML = html;
imageLoader.lazyChildren(elem); imageLoader.lazyChildren(elem);
libraryBrowser.saveQueryValues(getSavedQueryKey(), query); userSettings.saveQuerySettings(getSavedQueryKey(), query);
loading.hide(); loading.hide();
import('../../components/autoFocuser').then(({ default: autoFocuser }) => { import('../../components/autoFocuser').then(({ default: autoFocuser }) => {

View file

@ -12,8 +12,8 @@ import Events from '../../utils/events.ts';
import '../../elements/emby-itemscontainer/emby-itemscontainer'; import '../../elements/emby-itemscontainer/emby-itemscontainer';
export default function (view, params, tabContent) { export default function (view, params, tabContent) {
function getPageData(context) { function getPageData() {
const key = getSavedQueryKey(context); const key = getSavedQueryKey();
let pageData = data[key]; let pageData = data[key];
if (!pageData) { if (!pageData) {
@ -35,28 +35,24 @@ export default function (view, params, tabContent) {
} }
pageData.query.ParentId = params.topParentId; pageData.query.ParentId = params.topParentId;
libraryBrowser.loadSavedQueryValues(key, pageData.query); userSettings.loadQuerySettings(key, pageData.query);
} }
return pageData; return pageData;
} }
function getQuery(context) { function getQuery() {
return getPageData(context).query; return getPageData().query;
} }
function getSavedQueryKey(context) { function getSavedQueryKey() {
if (!context.savedQueryKey) { return `${params.topParentId}-songs`;
context.savedQueryKey = libraryBrowser.getSavedQueryKey('songs');
}
return context.savedQueryKey;
} }
function reloadItems(page) { function reloadItems(page) {
loading.show(); loading.show();
isLoading = true; isLoading = true;
const query = getQuery(page); const query = getQuery();
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) { ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) {
function onNextPageClick() { function onNextPageClick() {
if (isLoading) { if (isLoading) {
@ -117,7 +113,7 @@ export default function (view, params, tabContent) {
const itemsContainer = tabContent.querySelector('.itemsContainer'); const itemsContainer = tabContent.querySelector('.itemsContainer');
itemsContainer.innerHTML = html; itemsContainer.innerHTML = html;
imageLoader.lazyChildren(itemsContainer); imageLoader.lazyChildren(itemsContainer);
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query); userSettings.saveQuerySettings(getSavedQueryKey(), query);
tabContent.querySelector('.btnShuffle').classList.toggle('hide', result.TotalRecordCount < 1); tabContent.querySelector('.btnShuffle').classList.toggle('hide', result.TotalRecordCount < 1);
@ -137,13 +133,13 @@ export default function (view, params, tabContent) {
self.showFilterMenu = function () { self.showFilterMenu = function () {
import('../../components/filterdialog/filterdialog').then(({ default: FilterDialog }) => { import('../../components/filterdialog/filterdialog').then(({ default: FilterDialog }) => {
const filterDialog = new FilterDialog({ const filterDialog = new FilterDialog({
query: getQuery(tabContent), query: getQuery(),
mode: 'songs', mode: 'songs',
serverId: ApiClient.serverId() serverId: ApiClient.serverId()
}); });
Events.on(filterDialog, 'filterchange', function () { Events.on(filterDialog, 'filterchange', function () {
getQuery(tabContent).StartIndex = 0; getQuery().StartIndex = 0;
reloadItems(tabContent); reloadItems();
}); });
filterDialog.show(); filterDialog.show();
}); });
@ -156,7 +152,7 @@ export default function (view, params, tabContent) {
} }
self.getCurrentViewStyle = function () { self.getCurrentViewStyle = function () {
return getPageData(tabContent).view; return getPageData().view;
}; };
function initPage(tabElement) { function initPage(tabElement) {
@ -197,10 +193,10 @@ export default function (view, params, tabContent) {
id: 'Random,SortName' id: 'Random,SortName'
}], }],
callback: function () { callback: function () {
getQuery(tabElement).StartIndex = 0; getQuery().StartIndex = 0;
reloadItems(tabElement); reloadItems();
}, },
query: getQuery(tabElement), query: getQuery(),
button: e.target button: e.target
}); });
}); });

View file

@ -11,8 +11,8 @@ import Events from '../../utils/events.ts';
import '../../elements/emby-itemscontainer/emby-itemscontainer'; import '../../elements/emby-itemscontainer/emby-itemscontainer';
export default function (view, params, tabContent) { export default function (view, params, tabContent) {
function getPageData(context) { function getPageData() {
const key = getSavedQueryKey(context); const key = getSavedQueryKey();
let pageData = data[key]; let pageData = data[key];
if (!pageData) { if (!pageData) {
@ -28,7 +28,7 @@ export default function (view, params, tabContent) {
EnableImageTypes: 'Primary,Backdrop,Thumb', EnableImageTypes: 'Primary,Backdrop,Thumb',
StartIndex: 0 StartIndex: 0
}, },
view: libraryBrowser.getSavedView(key) || 'Poster' view: userSettings.getSavedView(key) || 'Poster'
}; };
if (userSettings.libraryPageSize() > 0) { if (userSettings.libraryPageSize() > 0) {
@ -36,22 +36,18 @@ export default function (view, params, tabContent) {
} }
pageData.query.ParentId = params.topParentId; pageData.query.ParentId = params.topParentId;
libraryBrowser.loadSavedQueryValues(key, pageData.query); userSettings.loadQuerySettings(key, pageData.query);
} }
return pageData; return pageData;
} }
function getQuery(context) { function getQuery() {
return getPageData(context).query; return getPageData().query;
} }
function getSavedQueryKey(context) { function getSavedQueryKey() {
if (!context.savedQueryKey) { return `${params.topParentId}-episodes`;
context.savedQueryKey = libraryBrowser.getSavedQueryKey('episodes');
}
return context.savedQueryKey;
} }
function onViewStyleChange() { function onViewStyleChange() {
@ -72,7 +68,7 @@ export default function (view, params, tabContent) {
function reloadItems(page) { function reloadItems(page) {
loading.show(); loading.show();
isLoading = true; isLoading = true;
const query = getQuery(page); const query = getQuery();
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) { ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) {
function onNextPageClick() { function onNextPageClick() {
if (isLoading) { if (isLoading) {
@ -156,7 +152,7 @@ export default function (view, params, tabContent) {
itemsContainer.innerHTML = html; itemsContainer.innerHTML = html;
imageLoader.lazyChildren(itemsContainer); imageLoader.lazyChildren(itemsContainer);
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query); userSettings.saveQuerySettings(getSavedQueryKey(), query);
loading.hide(); loading.hide();
isLoading = false; isLoading = false;
@ -173,7 +169,7 @@ export default function (view, params, tabContent) {
self.showFilterMenu = function () { self.showFilterMenu = function () {
import('../../components/filterdialog/filterdialog').then(({ default: FilterDialog }) => { import('../../components/filterdialog/filterdialog').then(({ default: FilterDialog }) => {
const filterDialog = new FilterDialog({ const filterDialog = new FilterDialog({
query: getQuery(tabContent), query: getQuery(),
mode: 'episodes', mode: 'episodes',
serverId: ApiClient.serverId() serverId: ApiClient.serverId()
}); });
@ -185,7 +181,7 @@ export default function (view, params, tabContent) {
}; };
self.getCurrentViewStyle = function () { self.getCurrentViewStyle = function () {
return getPageData(tabContent).view; return getPageData().view;
}; };
function initPage(tabElement) { function initPage(tabElement) {
@ -222,7 +218,7 @@ export default function (view, params, tabContent) {
callback: function () { callback: function () {
reloadItems(tabElement); reloadItems(tabElement);
}, },
query: getQuery(tabElement), query: getQuery(),
button: e.target button: e.target
}); });
}); });
@ -232,8 +228,8 @@ export default function (view, params, tabContent) {
}); });
btnSelectView.addEventListener('layoutchange', function (e) { btnSelectView.addEventListener('layoutchange', function (e) {
const viewStyle = e.detail.viewStyle; const viewStyle = e.detail.viewStyle;
getPageData(tabElement).view = viewStyle; getPageData().view = viewStyle;
libraryBrowser.saveViewSetting(getSavedQueryKey(tabElement), viewStyle); userSettings.saveViewSetting(getSavedQueryKey(), viewStyle);
onViewStyleChange(); onViewStyleChange();
reloadItems(tabElement); reloadItems(tabElement);
}); });

View file

@ -1,7 +1,7 @@
import escapeHtml from 'escape-html'; import escapeHtml from 'escape-html';
import layoutManager from '../../components/layoutManager'; import layoutManager from '../../components/layoutManager';
import loading from '../../components/loading/loading'; import loading from '../../components/loading/loading';
import libraryBrowser from '../../scripts/libraryBrowser'; import * as userSettings from '../../scripts/settings/userSettings';
import cardBuilder from '../../components/cardbuilder/cardBuilder'; import cardBuilder from '../../components/cardbuilder/cardBuilder';
import lazyLoader from '../../components/lazyLoader/lazyLoaderIntersectionObserver'; import lazyLoader from '../../components/lazyLoader/lazyLoaderIntersectionObserver';
import globalize from '../../scripts/globalize'; import globalize from '../../scripts/globalize';
@ -25,7 +25,7 @@ export default function (view, params, tabContent) {
view: 'Poster' view: 'Poster'
}; };
pageData.query.ParentId = params.topParentId; pageData.query.ParentId = params.topParentId;
libraryBrowser.loadSavedQueryValues(key, pageData.query); userSettings.loadQuerySettings(key, pageData.query);
} }
return pageData; return pageData;
@ -36,7 +36,7 @@ export default function (view, params, tabContent) {
} }
function getSavedQueryKey() { function getSavedQueryKey() {
return libraryBrowser.getSavedQueryKey('seriesgenres'); return `${params.topParentId}-seriesgenres`;
} }
function getPromise() { function getPromise() {
@ -176,7 +176,7 @@ export default function (view, params, tabContent) {
elem.innerHTML = html; elem.innerHTML = html;
lazyLoader.lazyChildren(elem, fillItemsContainer); lazyLoader.lazyChildren(elem, fillItemsContainer);
libraryBrowser.saveQueryValues(getSavedQueryKey(), query); userSettings.saveQuerySettings(getSavedQueryKey(), query);
loading.hide(); loading.hide();
}); });
} }
@ -199,7 +199,7 @@ export default function (view, params, tabContent) {
self.setCurrentViewStyle = function (viewStyle) { self.setCurrentViewStyle = function (viewStyle) {
getPageData().view = viewStyle; getPageData().view = viewStyle;
libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle); userSettings.saveViewSetting(getSavedQueryKey(), viewStyle);
fullyReload(); fullyReload();
}; };

View file

@ -11,8 +11,8 @@ import Events from '../../utils/events.ts';
import '../../elements/emby-itemscontainer/emby-itemscontainer'; import '../../elements/emby-itemscontainer/emby-itemscontainer';
export default function (view, params, tabContent) { export default function (view, params, tabContent) {
function getPageData(context) { function getPageData() {
const key = getSavedQueryKey(context); const key = getSavedQueryKey();
let pageData = data[key]; let pageData = data[key];
if (!pageData) { if (!pageData) {
@ -27,7 +27,7 @@ export default function (view, params, tabContent) {
EnableImageTypes: 'Primary,Backdrop,Banner,Thumb', EnableImageTypes: 'Primary,Backdrop,Banner,Thumb',
StartIndex: 0 StartIndex: 0
}, },
view: libraryBrowser.getSavedView(key) || 'Poster' view: userSettings.getSavedView(key) || 'Poster'
}; };
if (userSettings.libraryPageSize() > 0) { if (userSettings.libraryPageSize() > 0) {
@ -35,22 +35,18 @@ export default function (view, params, tabContent) {
} }
pageData.query.ParentId = params.topParentId; pageData.query.ParentId = params.topParentId;
libraryBrowser.loadSavedQueryValues(key, pageData.query); userSettings.loadQuerySettings(key, pageData.query);
} }
return pageData; return pageData;
} }
function getQuery(context) { function getQuery() {
return getPageData(context).query; return getPageData().query;
} }
function getSavedQueryKey(context) { function getSavedQueryKey() {
if (!context.savedQueryKey) { return `${params.topParentId}-series`;
context.savedQueryKey = libraryBrowser.getSavedQueryKey('series');
}
return context.savedQueryKey;
} }
const onViewStyleChange = () => { const onViewStyleChange = () => {
@ -71,7 +67,7 @@ export default function (view, params, tabContent) {
const reloadItems = (page) => { const reloadItems = (page) => {
loading.show(); loading.show();
isLoading = true; isLoading = true;
const query = getQuery(page); const query = getQuery();
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then((result) => { ApiClient.getItems(ApiClient.getCurrentUserId(), query).then((result) => {
function onNextPageClick() { function onNextPageClick() {
if (isLoading) { if (isLoading) {
@ -185,7 +181,7 @@ export default function (view, params, tabContent) {
const itemsContainer = tabContent.querySelector('.itemsContainer'); const itemsContainer = tabContent.querySelector('.itemsContainer');
itemsContainer.innerHTML = html; itemsContainer.innerHTML = html;
imageLoader.lazyChildren(itemsContainer); imageLoader.lazyChildren(itemsContainer);
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query); userSettings.saveQuerySettings(getSavedQueryKey(), query);
loading.hide(); loading.hide();
isLoading = false; isLoading = false;
@ -201,12 +197,12 @@ export default function (view, params, tabContent) {
this.showFilterMenu = function () { this.showFilterMenu = function () {
import('../../components/filterdialog/filterdialog').then(({ default: FilterDialog }) => { import('../../components/filterdialog/filterdialog').then(({ default: FilterDialog }) => {
const filterDialog = new FilterDialog({ const filterDialog = new FilterDialog({
query: getQuery(tabContent), query: getQuery(),
mode: 'series', mode: 'series',
serverId: ApiClient.serverId() serverId: ApiClient.serverId()
}); });
Events.on(filterDialog, 'filterchange', function () { Events.on(filterDialog, 'filterchange', function () {
getQuery(tabContent).StartIndex = 0; getQuery().StartIndex = 0;
reloadItems(tabContent); reloadItems(tabContent);
}); });
filterDialog.show(); filterDialog.show();
@ -214,7 +210,7 @@ export default function (view, params, tabContent) {
}; };
this.getCurrentViewStyle = function () { this.getCurrentViewStyle = function () {
return getPageData(tabContent).view; return getPageData().view;
}; };
const initPage = (tabElement) => { const initPage = (tabElement) => {
@ -223,7 +219,7 @@ export default function (view, params, tabContent) {
alphaPickerElement.addEventListener('alphavaluechanged', function (e) { alphaPickerElement.addEventListener('alphavaluechanged', function (e) {
const newValue = e.detail.value; const newValue = e.detail.value;
const query = getQuery(tabElement); const query = getQuery();
if (newValue === '#') { if (newValue === '#') {
query.NameLessThan = 'A'; query.NameLessThan = 'A';
delete query.NameStartsWith; delete query.NameStartsWith;
@ -274,10 +270,10 @@ export default function (view, params, tabContent) {
id: 'PremiereDate,SortName' id: 'PremiereDate,SortName'
}], }],
callback: function () { callback: function () {
getQuery(tabElement).StartIndex = 0; getQuery().StartIndex = 0;
reloadItems(tabElement); reloadItems(tabElement);
}, },
query: getQuery(tabElement), query: getQuery(),
button: e.target button: e.target
}); });
}); });
@ -287,9 +283,9 @@ export default function (view, params, tabContent) {
}); });
btnSelectView.addEventListener('layoutchange', function (e) { btnSelectView.addEventListener('layoutchange', function (e) {
const viewStyle = e.detail.viewStyle; const viewStyle = e.detail.viewStyle;
getPageData(tabElement).view = viewStyle; getPageData().view = viewStyle;
libraryBrowser.saveViewSetting(getSavedQueryKey(tabElement), viewStyle); userSettings.saveViewSetting(getSavedQueryKey(), viewStyle);
getQuery(tabElement).StartIndex = 0; getQuery().StartIndex = 0;
onViewStyleChange(); onViewStyleChange();
reloadItems(tabElement); reloadItems(tabElement);
}); });
@ -300,7 +296,7 @@ export default function (view, params, tabContent) {
this.renderTab = () => { this.renderTab = () => {
reloadItems(tabContent); reloadItems(tabContent);
this.alphaPicker?.updateControls(getQuery(tabContent)); this.alphaPicker?.updateControls(getQuery());
}; };
} }

View file

@ -1,9 +1,8 @@
import loading from '../../components/loading/loading'; import loading from '../../components/loading/loading';
import libraryBrowser from '../../scripts/libraryBrowser';
import cardBuilder from '../../components/cardbuilder/cardBuilder'; import cardBuilder from '../../components/cardbuilder/cardBuilder';
function getQuery(params) { function getQuery(params) {
const key = getSavedQueryKey(); const key = getSavedQueryKey(params);
let pageData = data[key]; let pageData = data[key];
if (!pageData) { if (!pageData) {
@ -23,8 +22,8 @@ function getQuery(params) {
return pageData.query; return pageData.query;
} }
function getSavedQueryKey() { function getSavedQueryKey(params) {
return libraryBrowser.getSavedQueryKey('studios'); return `${params.topParentId}-studios`;
} }
function getPromise(context, params) { function getPromise(context, params) {

View file

@ -1,43 +1,5 @@
import * as userSettings from './settings/userSettings';
import globalize from './globalize'; import globalize from './globalize';
export function getSavedQueryKey(modifier) {
return window.location.href.split('#')[0] + (modifier || '');
}
export function loadSavedQueryValues(key, query) {
let values = userSettings.get(key);
if (values) {
values = JSON.parse(values);
return Object.assign(query, values);
}
return query;
}
export function saveQueryValues(key, query) {
const values = {};
if (query.SortBy) {
values.SortBy = query.SortBy;
}
if (query.SortOrder) {
values.SortOrder = query.SortOrder;
}
userSettings.set(key, JSON.stringify(values));
}
export function saveViewSetting (key, value) {
userSettings.set(key + '-_view', value);
}
export function getSavedView (key) {
return userSettings.get(key + '-_view');
}
export function showLayoutMenu (button, currentLayout, views) { export function showLayoutMenu (button, currentLayout, views) {
let dispatchEvent = true; let dispatchEvent = true;
@ -204,11 +166,6 @@ export function showSortMenu (options) {
} }
const libraryBrowser = { const libraryBrowser = {
getSavedQueryKey,
loadSavedQueryValues,
saveQueryValues,
saveViewSetting,
getSavedView,
showLayoutMenu, showLayoutMenu,
getQueryPagingHtml, getQueryPagingHtml,
showSortMenu showSortMenu

View file

@ -9,8 +9,8 @@ import '../elements/emby-itemscontainer/emby-itemscontainer';
import Dashboard from '../utils/dashboard'; import Dashboard from '../utils/dashboard';
export default function (view) { export default function (view) {
function getPageData(context) { function getPageData() {
const key = getSavedQueryKey(context); const key = getSavedQueryKey();
let pageData = data[key]; let pageData = data[key];
if (!pageData) { if (!pageData) {
@ -23,7 +23,7 @@ export default function (view) {
Fields: 'PrimaryImageAspectRatio,SortName,CumulativeRunTimeTicks,CanDelete', Fields: 'PrimaryImageAspectRatio,SortName,CumulativeRunTimeTicks,CanDelete',
StartIndex: 0 StartIndex: 0
}, },
view: libraryBrowser.getSavedView(key) || 'Poster' view: userSettings.getSavedView(key) || 'Poster'
}; };
if (userSettings.libraryPageSize() > 0) { if (userSettings.libraryPageSize() > 0) {
@ -31,22 +31,18 @@ export default function (view) {
} }
pageData.query.ParentId = libraryMenu.getTopParentId(); pageData.query.ParentId = libraryMenu.getTopParentId();
libraryBrowser.loadSavedQueryValues(key, pageData.query); userSettings.loadQuerySettings(key, pageData.query);
} }
return pageData; return pageData;
} }
function getQuery(context) { function getQuery() {
return getPageData(context).query; return getPageData().query;
} }
function getSavedQueryKey(context) { function getSavedQueryKey() {
if (!context.savedQueryKey) { return `${libraryMenu.getTopParentId()}-playlists`;
context.savedQueryKey = libraryBrowser.getSavedQueryKey();
}
return context.savedQueryKey;
} }
function showLoadingMessage() { function showLoadingMessage() {
@ -58,7 +54,7 @@ export default function (view) {
} }
function onViewStyleChange() { function onViewStyleChange() {
const viewStyle = getPageData(view).view; const viewStyle = getPageData().view;
const itemsContainer = view.querySelector('.itemsContainer'); const itemsContainer = view.querySelector('.itemsContainer');
if (viewStyle == 'List') { if (viewStyle == 'List') {
@ -74,7 +70,7 @@ export default function (view) {
function reloadItems() { function reloadItems() {
showLoadingMessage(); showLoadingMessage();
const query = getQuery(view); const query = getQuery();
const promise1 = ApiClient.getItems(Dashboard.getCurrentUserId(), query); const promise1 = ApiClient.getItems(Dashboard.getCurrentUserId(), query);
// TODO: promise2 is unused, check if necessary. // TODO: promise2 is unused, check if necessary.
const promise2 = Dashboard.getCurrentUser(); const promise2 = Dashboard.getCurrentUser();
@ -83,7 +79,7 @@ export default function (view) {
// TODO: Is the scroll necessary? // TODO: Is the scroll necessary?
window.scrollTo(0, 0); window.scrollTo(0, 0);
let html = ''; let html = '';
const viewStyle = getPageData(view).view; const viewStyle = getPageData().view;
view.querySelector('.listTopPaging').innerHTML = libraryBrowser.getQueryPagingHtml({ view.querySelector('.listTopPaging').innerHTML = libraryBrowser.getQueryPagingHtml({
startIndex: query.StartIndex, startIndex: query.StartIndex,
limit: query.Limit, limit: query.Limit,
@ -172,14 +168,14 @@ export default function (view) {
if (btnChangeLayout) { if (btnChangeLayout) {
btnChangeLayout.addEventListener('layoutchange', function (e) { btnChangeLayout.addEventListener('layoutchange', function (e) {
const layout = e.detail.viewStyle; const layout = e.detail.viewStyle;
getPageData(view).view = layout; getPageData().view = layout;
libraryBrowser.saveViewSetting(getSavedQueryKey(view), layout); userSettings.saveViewSetting(getSavedQueryKey(), layout);
onViewStyleChange(); onViewStyleChange();
reloadItems(); reloadItems();
}); });
} }
libraryBrowser.saveQueryValues(getSavedQueryKey(view), query); userSettings.saveQuerySettings(getSavedQueryKey(), query);
hideLoadingMessage(); hideLoadingMessage();
}); });
} }

View file

@ -533,6 +533,24 @@ export class UserSettings {
return this.set(key, JSON.stringify(values)); return this.set(key, JSON.stringify(values));
} }
/**
* Get view layout setting.
* @param {string} key - View Setting key.
* @return {string} View Setting value.
*/
getSavedView(key) {
return this.get(key + '-_view');
}
/**
* Set view layout setting.
* @param {string} key - View Setting key.
* @param {string} value - View Setting value.
*/
saveViewSetting(key, value) {
return this.set(key + '-_view', value);
}
/** /**
* Get subtitle appearance settings. * Get subtitle appearance settings.
* @param {string|undefined} key - Settings key. * @param {string|undefined} key - Settings key.
@ -638,3 +656,5 @@ export const setFilter = currentSettings.setFilter.bind(currentSettings);
export const getFilter = currentSettings.getFilter.bind(currentSettings); export const getFilter = currentSettings.getFilter.bind(currentSettings);
export const customCss = currentSettings.customCss.bind(currentSettings); export const customCss = currentSettings.customCss.bind(currentSettings);
export const disableCustomCss = currentSettings.disableCustomCss.bind(currentSettings); export const disableCustomCss = currentSettings.disableCustomCss.bind(currentSettings);
export const getSavedView = currentSettings.getSavedView.bind(currentSettings);
export const saveViewSetting = currentSettings.saveViewSetting.bind(currentSettings);