add playlist deletion from web ui

This commit is contained in:
sentriz
2020-08-16 01:00:13 +01:00
parent 6c46057f85
commit d02c65cb09
3 changed files with 22 additions and 1 deletions

View File

@@ -160,11 +160,13 @@
<span class="text-light">no playlists yet</span>
{{ end }}
<table id="recent-playlists">
{{ range $playlist := .Playlists }}
{{ range $i, $playlist := .Playlists }}
<tr>
<form id="recent-playlists-{{ $i }}" action="{{ printf "/admin/delete_playlist_do?id=%d" $playlist.ID | path }}" method="post"></form>
<td class="text-right">{{ $playlist.Name }}</td>
<td><span class="text-light">({{ $playlist.TrackCount }} tracks)</span></td>
<td class="no-small"><span class="text-light" title="{{ $playlist.CreatedAt }}">{{ $playlist.CreatedAt | dateHuman }}</span></td>
<td><input form="recent-playlists-{{ $i }}" type="submit" value="delete"></td>
</tr>
{{ end }}
</table>

View File

@@ -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",
}
}

View File

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