Files
gonic/server/handler/respond_admin.go
2019-07-06 16:49:28 +01:00

53 lines
1.0 KiB
Go

package handler
import (
"html/template"
"log"
"net/http"
"time"
"github.com/gorilla/sessions"
"github.com/sentriz/gonic/model"
)
type templateData struct {
// common
Flashes []interface{}
User *model.User
// home
AlbumCount int
ArtistCount int
TrackCount int
RequestRoot string
RecentFolders []*model.Album
AllUsers []*model.User
LastScanTime time.Time
IsScanning bool
//
CurrentLastFMAPIKey string
CurrentLastFMAPISecret string
SelectedUser *model.User
}
func renderTemplate(
w http.ResponseWriter,
r *http.Request,
tmpl *template.Template,
data *templateData,
) {
if data == nil {
data = &templateData{}
}
session := r.Context().Value(contextSessionKey).(*sessions.Session)
data.Flashes = session.Flashes()
sessionLogSave(w, r, session)
data.User, _ = r.Context().Value(contextUserKey).(*model.User)
err := tmpl.Execute(w, data)
if err != nil {
log.Printf("error executing template: %v\n", err)
http.Redirect(w, r, "/", http.StatusSeeOther)
return
}
}