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

Merge pull request #5151 from kevgrig/movetotopbottom

Add move to top and bottom context menu options
This commit is contained in:
Bill Thornton 2024-08-23 13:24:13 -04:00 committed by GitHub
commit a649b1233e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 47 additions and 0 deletions

View file

@ -291,6 +291,22 @@ export function getCommands(options) {
}); });
} }
if (item.PlaylistItemId && options.playlistId && item.PlaylistIndex > 0) {
commands.push({
name: globalize.translate('MoveToTop'),
id: 'movetotop',
icon: 'vertical_align_top'
});
}
if (item.PlaylistItemId && options.playlistId && item.PlaylistIndex < (item.PlaylistItemCount - 1)) {
commands.push({
name: globalize.translate('MoveToBottom'),
id: 'movetobottom',
icon: 'vertical_align_bottom'
});
}
if (options.collectionId) { if (options.collectionId) {
commands.push({ commands.push({
name: globalize.translate('RemoveFromCollection'), name: globalize.translate('RemoveFromCollection'),
@ -559,6 +575,22 @@ function executeCommand(item, id, options) {
getResolveFunction(resolve, id, true)(); getResolveFunction(resolve, id, true)();
}); });
break; break;
case 'movetotop':
apiClient.ajax({
url: apiClient.getUrl('Playlists/' + options.playlistId + '/Items/' + item.PlaylistItemId + '/Move/0'),
type: 'POST'
}).then(function () {
getResolveFunction(resolve, id, true)();
});
break;
case 'movetobottom':
apiClient.ajax({
url: apiClient.getUrl('Playlists/' + options.playlistId + '/Items/' + item.PlaylistItemId + '/Move/' + (item.PlaylistItemCount - 1)),
type: 'POST'
}).then(function () {
getResolveFunction(resolve, id, true)();
});
break;
case 'removefromcollection': case 'removefromcollection':
apiClient.ajax({ apiClient.ajax({
type: 'DELETE', type: 'DELETE',

View file

@ -110,6 +110,19 @@ function showContextMenu(card, options = {}) {
if (playlistId) { if (playlistId) {
const elem = dom.parentWithAttribute(card, 'data-playlistitemid'); const elem = dom.parentWithAttribute(card, 'data-playlistitemid');
item.PlaylistItemId = elem ? elem.getAttribute('data-playlistitemid') : null; item.PlaylistItemId = elem ? elem.getAttribute('data-playlistitemid') : null;
const itemsContainer = dom.parentWithAttribute(card, 'is', 'emby-itemscontainer');
if (itemsContainer) {
let index = 0;
for (const listItem of itemsContainer.querySelectorAll('.listItem')) {
const playlistItemId = listItem.getAttribute('data-playlistitemid');
if (playlistItemId == item.PlaylistItemId) {
item.PlaylistIndex = index;
}
index++;
}
item.PlaylistItemCount = index;
}
} }
const apiClient = ServerConnections.getApiClient(item.ServerId); const apiClient = ServerConnections.getApiClient(item.ServerId);

View file

@ -1127,6 +1127,8 @@
"MoreUsersCanBeAddedLater": "More users can be added later from within the Dashboard.", "MoreUsersCanBeAddedLater": "More users can be added later from within the Dashboard.",
"MoveLeft": "Move left", "MoveLeft": "Move left",
"MoveRight": "Move right", "MoveRight": "Move right",
"MoveToBottom": "Move to bottom",
"MoveToTop": "Move to top",
"Movie": "Movie", "Movie": "Movie",
"MovieLibraryHelp": "Review the {0}movie naming guide{1}.", "MovieLibraryHelp": "Review the {0}movie naming guide{1}.",
"Movies": "Movies", "Movies": "Movies",