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:
parent
d8c25b4594
commit
1825b821af
15 changed files with 147 additions and 196 deletions
|
@ -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);
|
||||||
|
|
|
@ -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();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
});
|
});
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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());
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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 }) => {
|
||||||
|
|
|
@ -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
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -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);
|
||||||
});
|
});
|
||||||
|
|
|
@ -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();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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());
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue