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