playlists can now be created and deleted

This commit is contained in:
booploops 2021-12-22 16:16:55 -08:00
parent 153370c32d
commit 215da357a7
2 changed files with 38 additions and 4 deletions

View file

@ -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()
})

View file

@ -169,10 +169,11 @@
<sidebar-library-item name="Albums" page="library-albums"></sidebar-library-item>
<sidebar-library-item name="Artists" page="library-artists"></sidebar-library-item>
<sidebar-library-item name="Made For You" page="library-madeforyou"></sidebar-library-item>
<div class="app-sidebar-header-text">
<div class="app-sidebar-header-text" @contextmenu="playlistHeaderContextMenu">
Playlists
</div>
<button class="app-sidebar-item" v-for="item in playlists.listing" :key="item.id"
@contextmenu="playlistContextMenu($event, item.id)"
@dragover="()=>{}"
:href="item.href"
@click='appRoute(`playlist_` + item.id); showingPlaylist = [];getPlaylistFromID(app.page.substring(9))'>