diff --git a/client/components/modals/playlists/AddCreateModal.vue b/client/components/modals/playlists/AddCreateModal.vue
index f8543f1de..2041ee399 100644
--- a/client/components/modals/playlists/AddCreateModal.vue
+++ b/client/components/modals/playlists/AddCreateModal.vue
@@ -15,7 +15,7 @@
-
+
@@ -151,13 +151,13 @@ export default {
this.processing = false
})
},
- addToPlaylist(playlist) {
+ addToPlaylist(playlist, addToTop) {
if (!this.selectedPlaylistItems.length) return
this.processing = true
const itemObjects = this.selectedPlaylistItems.map((pi) => ({ libraryItemId: pi.libraryItem.id, episodeId: pi.episode ? pi.episode.id : null }))
this.$axios
- .$post(`/api/playlists/${playlist.id}/batch/add`, { items: itemObjects })
+ .$post(`/api/playlists/${playlist.id}/batch/add`, { items: itemObjects, addToTop: addToTop })
.then((updatedPlaylist) => {
console.log(`Items added to playlist`, updatedPlaylist)
this.processing = false
diff --git a/client/components/modals/playlists/UserPlaylistItem.vue b/client/components/modals/playlists/UserPlaylistItem.vue
index 99d79385e..058bbcaa4 100644
--- a/client/components/modals/playlists/UserPlaylistItem.vue
+++ b/client/components/modals/playlists/UserPlaylistItem.vue
@@ -7,8 +7,11 @@
{{ playlist.name }}
-
@@ -45,8 +48,11 @@ export default {
mouseleave() {
this.isHovering = false
},
- clickAdd() {
- this.$emit('add', this.playlist)
+ clickAddTop() {
+ this.$emit('add-top', this.playlist, true)
+ },
+ clickAddBottom() {
+ this.$emit('add-bottom', this.playlist, false)
},
clickRem() {
this.$emit('remove', this.playlist)
diff --git a/server/controllers/PlaylistController.js b/server/controllers/PlaylistController.js
index 972c352a4..e1a6b09d5 100644
--- a/server/controllers/PlaylistController.js
+++ b/server/controllers/PlaylistController.js
@@ -397,9 +397,10 @@ class PlaylistController {
const mediaItemsToAdd = []
const jsonExpanded = req.playlist.toOldJSONExpanded()
+ const addToTop = req.body.addToTop === true
// Setup array of playlistMediaItem records to add
- let order = req.playlist.playlistMediaItems.length + 1
+ let order = addToTop ? 0 : (req.playlist.playlistMediaItems.length + 1)
for (const item of req.body.items) {
const libraryItem = libraryItems.find((li) => li.id === item.libraryItemId)