diff --git a/src/components/shortcuts.js b/src/components/shortcuts.js index d4de04dbf0..70bf264fc3 100644 --- a/src/components/shortcuts.js +++ b/src/components/shortcuts.js @@ -166,14 +166,6 @@ function showPlayMenu(card, target) { }); } -function getSortValues(parentId) { - const basekey = 'items-' + parentId + '-Folder'; - return { - sortBy: userSettings.getFilter(basekey + '-sortby'), - sortOrder: userSettings.getFilter(basekey + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending' - }; -} - function executeAction(card, target, action) { target = target || card; @@ -184,11 +176,11 @@ function executeAction(card, target, action) { id = card.getAttribute('data-id'); } + const item = getItemInfoFromCard(card); + const itemsContainer = dom.parentWithClass(card, 'itemsContainer'); - const parentId = itemsContainer.getAttribute('data-parentid'); - - const item = getItemInfoFromCard(card); + const sortParentId = 'items-' + (item.IsFolder ? item.Id : itemsContainer.getAttribute('data-parentid')) + '-Folder'; const serverId = item.ServerId; const type = item.Type; @@ -219,7 +211,7 @@ function executeAction(card, target, action) { ids: [playableItemId], startPositionTicks: startPositionTicks, serverId: serverId, - sortOptions: getSortValues(parentId) + sortOptions: userSettings.getSortValues(sortParentId) }); } else { console.warn('Unable to play item', item); diff --git a/src/controllers/list.js b/src/controllers/list.js index fc2366a3e9..ded9d921ed 100644 --- a/src/controllers/list.js +++ b/src/controllers/list.js @@ -962,10 +962,7 @@ class ItemsView { getSortValues() { const basekey = this.getSettingsKey(); - return { - sortBy: userSettings.getFilter(basekey + '-sortby') || this.getDefaultSortBy(), - sortOrder: userSettings.getFilter(basekey + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending' - }; + return userSettings.getSortValues(basekey); } getDefaultSortBy() { diff --git a/src/scripts/settings/userSettings.js b/src/scripts/settings/userSettings.js index 691b07cb4d..26fc2100e5 100644 --- a/src/scripts/settings/userSettings.js +++ b/src/scripts/settings/userSettings.js @@ -622,6 +622,18 @@ export class UserSettings { getFilter(key) { return this.get(key, true); } + + /** + * Gets the current sort values + * @param {string} key - Filter key. + * @return {Object} sortOptions object + */ + getSortValues(key) { + return { + sortBy: this.getFilter(key + '-sortby'), + sortOrder: this.getFilter(key + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending' + }; + } } export const currentSettings = new UserSettings; @@ -672,3 +684,4 @@ 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); +export const getSortValues = currentSettings.getSortValues.bind(currentSettings);