diff --git a/src/renderer/index.js b/src/renderer/index.js index 93ca869a..1179b4e7 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -453,6 +453,32 @@ const app = new Vue({ self.playlists.listing = res.data }) }, + playlistHeaderContextMenu(event) { + let menu = { + items: [ + { + name: "New Playlist", + action: () => { + this.newPlaylist() + } + } + ] + } + CiderContextMenu.Create(event, menu) + }, + playlistContextMenu(event, playlist_id) { + let menu = { + items: [ + { + name: "Delete from library", + action: () => { + this.deletePlaylist(playlist_id) + } + } + ] + } + CiderContextMenu.Create(event, menu) + }, async editPlaylist(id, name = "New Playlist") { let self = this await app.mk.api.library.editPlaylist(id, {name: name}).then(res => { @@ -461,14 +487,21 @@ const app = new Vue({ }, async newPlaylist(name = "New Playlist", tracks = []) { let self = this - await app.mk.api.library.createPlaylist({name: name, tracks: tracks}).then(res => { + let request = { + name: name + } + if(tracks.length > 0) { + request.tracks = tracks + } + await app.mk.api.library.createPlaylist(request).then(res => { + console.log(res) self.refreshPlaylists() - appRoute(`playlist_` + res.id); + self.appRoute(`playlist_` + res.id); }) }, async deletePlaylist(id) { let self = this - if(confirm(`Are you sure you want to delete "${this.playlists.listing[id].attributes.name}"?`)) { + if(confirm(`Are you sure you want to delete this playlist?`)) { await app.mk.api.library.deletePlaylist(id).then(res=>{ self.refreshPlaylists() }) diff --git a/src/renderer/views/main.ejs b/src/renderer/views/main.ejs index 462fa00c..991a9210 100644 --- a/src/renderer/views/main.ejs +++ b/src/renderer/views/main.ejs @@ -169,10 +169,11 @@ -
+
Playlists