Add delete token UI for info page
This commit is contained in:
@@ -124,6 +124,11 @@ type objectPage struct {
|
||||
URL string
|
||||
InfoURL string
|
||||
DeleteToken string
|
||||
|
||||
// CanDelete is set when the viewer's own token already authorises removing
|
||||
// this file, so they are offered a button instead of a token field.
|
||||
CanDelete bool
|
||||
Error string
|
||||
}
|
||||
|
||||
func (s *Server) handleInfo(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -137,11 +142,21 @@ func (s *Server) handleInfo(w http.ResponseWriter, r *http.Request) {
|
||||
s.fail(w, r, http.StatusNotFound, "No such file.")
|
||||
return
|
||||
}
|
||||
s.render(w, http.StatusOK, "info.html", objectPage{
|
||||
page: s.page(r, m.Filename, false),
|
||||
Meta: m,
|
||||
Size: config.FormatSize(m.Size),
|
||||
Expires: describeExpiry(m.Expires, s.now()),
|
||||
s.renderInfo(w, r, m, http.StatusOK, "")
|
||||
}
|
||||
|
||||
// renderInfo draws the file's page, optionally with an error from a failed
|
||||
// delete attempt, so a mistyped token lands back on the form rather than on a
|
||||
// dead end.
|
||||
func (s *Server) renderInfo(w http.ResponseWriter, r *http.Request, m *store.Meta, status int, errMsg string) {
|
||||
s.render(w, status, "info.html", objectPage{
|
||||
page: s.page(r, m.Filename, true),
|
||||
Meta: m,
|
||||
Size: config.FormatSize(m.Size),
|
||||
Expires: describeExpiry(m.Expires, s.now()),
|
||||
URL: s.objectURL(r, m.ID),
|
||||
CanDelete: s.mayDelete(m, credential(r)),
|
||||
Error: errMsg,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user