mirror of
https://github.com/adnanh/webhook.git
synced 2026-07-22 17:58:12 +00:00
41 lines
881 B
Go
41 lines
881 B
Go
package main
|
|
|
|
import (
|
|
"embed"
|
|
"html/template"
|
|
"io/fs"
|
|
"net/http"
|
|
)
|
|
|
|
//go:embed adminui/index.html adminui/assets/*
|
|
var adminUIFiles embed.FS
|
|
|
|
var (
|
|
adminIndexTemplate = template.Must(template.ParseFS(adminUIFiles, "adminui/index.html"))
|
|
adminStaticFS = mustAdminSub(adminUIFiles, "adminui")
|
|
)
|
|
|
|
type adminUIData struct {
|
|
BasePath string
|
|
}
|
|
|
|
func mustAdminSub(fsys fs.FS, dir string) fs.FS {
|
|
sub, err := fs.Sub(fsys, dir)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return sub
|
|
}
|
|
|
|
func adminUIHandler(w http.ResponseWriter, r *http.Request) {
|
|
w.Header().Set("Content-Type", "text/html; charset=utf-8")
|
|
|
|
if err := adminIndexTemplate.Execute(w, adminUIData{BasePath: currentAdminAuth.basePath}); err != nil {
|
|
http.Error(w, "admin UI render failed", http.StatusInternalServerError)
|
|
}
|
|
}
|
|
|
|
func adminStaticHandler() http.Handler {
|
|
return http.FileServer(http.FS(adminStaticFS))
|
|
}
|