playlists can now be created and deleted
This commit is contained in:
parent
153370c32d
commit
215da357a7
2 changed files with 38 additions and 4 deletions
|
@ -453,6 +453,32 @@ const app = new Vue({
|
||||||
self.playlists.listing = res.data
|
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") {
|
async editPlaylist(id, name = "New Playlist") {
|
||||||
let self = this
|
let self = this
|
||||||
await app.mk.api.library.editPlaylist(id, {name: name}).then(res => {
|
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 = []) {
|
async newPlaylist(name = "New Playlist", tracks = []) {
|
||||||
let self = this
|
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()
|
self.refreshPlaylists()
|
||||||
appRoute(`playlist_` + res.id);
|
self.appRoute(`playlist_` + res.id);
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async deletePlaylist(id) {
|
async deletePlaylist(id) {
|
||||||
let self = this
|
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=>{
|
await app.mk.api.library.deletePlaylist(id).then(res=>{
|
||||||
self.refreshPlaylists()
|
self.refreshPlaylists()
|
||||||
})
|
})
|
||||||
|
|
|
@ -169,10 +169,11 @@
|
||||||
<sidebar-library-item name="Albums" page="library-albums"></sidebar-library-item>
|
<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="Artists" page="library-artists"></sidebar-library-item>
|
||||||
<sidebar-library-item name="Made For You" page="library-madeforyou"></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
|
Playlists
|
||||||
</div>
|
</div>
|
||||||
<button class="app-sidebar-item" v-for="item in playlists.listing" :key="item.id"
|
<button class="app-sidebar-item" v-for="item in playlists.listing" :key="item.id"
|
||||||
|
@contextmenu="playlistContextMenu($event, item.id)"
|
||||||
@dragover="()=>{}"
|
@dragover="()=>{}"
|
||||||
:href="item.href"
|
:href="item.href"
|
||||||
@click='appRoute(`playlist_` + item.id); showingPlaylist = [];getPlaylistFromID(app.page.substring(9))'>
|
@click='appRoute(`playlist_` + item.id); showingPlaylist = [];getPlaylistFromID(app.page.substring(9))'>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue