diff --git a/server/assets/pages/home.tmpl b/server/assets/pages/home.tmpl index d07f49c..040826d 100644 --- a/server/assets/pages/home.tmpl +++ b/server/assets/pages/home.tmpl @@ -160,11 +160,13 @@ no playlists yet {{ end }} - {{ range $playlist := .Playlists }} + {{ range $i, $playlist := .Playlists }} + + {{ end }}
{{ $playlist.Name }} ({{ $playlist.TrackCount }} tracks) {{ $playlist.CreatedAt | dateHuman }}
diff --git a/server/ctrladmin/handlers_playlist.go b/server/ctrladmin/handlers_playlist.go index 56aa7b8..f337572 100644 --- a/server/ctrladmin/handlers_playlist.go +++ b/server/ctrladmin/handlers_playlist.go @@ -6,6 +6,7 @@ import ( "fmt" "mime/multipart" "net/http" + "strconv" "strings" "github.com/jinzhu/gorm" @@ -117,3 +118,20 @@ func (c *Controller) ServeUploadPlaylistDo(r *http.Request) *Response { flashW: errors, } } + +func (c *Controller) ServeDeletePlaylistDo(r *http.Request) *Response { + user := r.Context().Value(CtxUser).(*db.User) + id, err := strconv.Atoi(r.URL.Query().Get("id")) + if err != nil { + return &Response{ + err: "please provide a valid id", + code: 400, + } + } + c.DB. + Where("user_id=? AND id=?", user.ID, id). + Delete(db.Playlist{}) + return &Response{ + redirect: "/admin/home", + } +} diff --git a/server/server.go b/server/server.go index b2b4da7..385e5eb 100644 --- a/server/server.go +++ b/server/server.go @@ -121,6 +121,7 @@ func setupAdmin(r *mux.Router, ctrl *ctrladmin.Controller) { routUser.Handle("/link_lastfm_do", ctrl.H(ctrl.ServeLinkLastFMDo)) routUser.Handle("/unlink_lastfm_do", ctrl.H(ctrl.ServeUnlinkLastFMDo)) routUser.Handle("/upload_playlist_do", ctrl.H(ctrl.ServeUploadPlaylistDo)) + routUser.Handle("/delete_playlist_do", ctrl.H(ctrl.ServeDeletePlaylistDo)) routUser.Handle("/create_transcode_pref_do", ctrl.H(ctrl.ServeCreateTranscodePrefDo)) routUser.Handle("/delete_transcode_pref_do", ctrl.H(ctrl.ServeDeleteTranscodePrefDo)) // ** begin admin routes (if session is valid, and is admin)