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

@ -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

View file

@ -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();
});
}

View file

@ -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);