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

Reverting itemContextMenu changes to support folder/playlist ordering with the "Play" action

Code cleanup
This commit is contained in:
MrK 2023-09-23 22:50:57 +01:00
parent c935ba9a20
commit 5d20523616
3 changed files with 35 additions and 2 deletions

View file

@ -9,6 +9,8 @@ import itemHelper from './itemHelper';
import { playbackManager } from './playback/playbackmanager'; import { playbackManager } from './playback/playbackmanager';
import ServerConnections from './ServerConnections'; import ServerConnections from './ServerConnections';
import toast from './toast/toast'; import toast from './toast/toast';
import * as userSettings from '../scripts/settings/userSettings';
import libraryMenu from '../scripts/libraryMenu';
export function getCommands(options) { export function getCommands(options) {
const item = options.item; const item = options.item;
@ -567,6 +569,29 @@ function deleteSeriesTimer(apiClient, item, resolve, command) {
}); });
} }
function getSettingsKey(item) {
if (item.IsFolder) {
return 'Folder';
}
const itemType = item.MediaType;
switch (itemType) {
case 'Movie':
case 'BoxSet':
case 'Video':
return 'movies';
case 'Audio':
return 'songs';
case 'MusicAlbum':
return 'musicalbums';
case 'MusicArtist':
return 'musicartists';
case 'MusicGenre':
return 'genres';
case 'MusicPlaylist':
return 'musicplaylists';
}
}
function play(item, resume, queue, queueNext) { function play(item, resume, queue, queueNext) {
let method = 'play'; let method = 'play';
if (queue) { if (queue) {
@ -589,9 +614,16 @@ function play(item, resume, queue, queueNext) {
serverId: item.ServerId serverId: item.ServerId
}); });
} else { } else {
const sortParentId = item.IsFolder ? ('items-' + item.Id) : libraryMenu.getTopParentId() + '-' + getSettingsKey(item);
const sortValues = userSettings.getSortValues(sortParentId);
playbackManager[method]({ playbackManager[method]({
items: [item], items: [item],
startPositionTicks: startPosition startPositionTicks: startPosition,
queryOptions: {
SortBy: sortValues.sortBy,
SortOrder: sortValues.sortOrder
}
}); });
} }
} }

View file

@ -1815,7 +1815,7 @@ class PlaybackManager {
// Setting this to true may cause some incorrect sorting // Setting this to true may cause some incorrect sorting
Recursive: false, Recursive: false,
MediaTypes: 'Photo,Video', MediaTypes: 'Photo,Video',
sortBy: options.shuffle ? 'Random' : 'SortName', SortBy: options.shuffle ? 'Random' : 'SortName',
Limit: UNLIMITED_ITEMS Limit: UNLIMITED_ITEMS
}, queryOptions)).then(function (result) { }, queryOptions)).then(function (result) {
const playbackItems = result.Items; const playbackItems = result.Items;

View file

@ -206,6 +206,7 @@ function executeAction(card, target, action) {
} else if (action === 'play' || action === 'resume') { } else if (action === 'play' || action === 'resume') {
const startPositionTicks = parseInt(card.getAttribute('data-positionticks') || '0', 10); const startPositionTicks = parseInt(card.getAttribute('data-positionticks') || '0', 10);
const sortValues = userSettings.getSortValuesLegacy(sortParentId, 'SortName'); const sortValues = userSettings.getSortValuesLegacy(sortParentId, 'SortName');
if (playbackManager.canPlay(item)) { if (playbackManager.canPlay(item)) {
playbackManager.play({ playbackManager.play({
ids: [playableItemId], ids: [playableItemId],