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