mirror of
https://github.com/boringproxy/boringproxy.git
synced 2025-02-25 18:55:29 -06:00
Implement alert dialog
This commit is contained in:
parent
9cc1a8afa6
commit
02f9887b9d
21
webui/alert.tmpl
Normal file
21
webui/alert.tmpl
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
{{.Head}}
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<div class='dialog'>
|
||||||
|
<p>
|
||||||
|
{{.Message}}
|
||||||
|
</p>
|
||||||
|
<div class='button-row'>
|
||||||
|
<a href="{{.RedirectUrl}}">
|
||||||
|
<button class='button green-button'>Ok</button>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -33,6 +33,12 @@ type ConfirmData struct {
|
|||||||
CancelUrl string
|
CancelUrl string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type AlertData struct {
|
||||||
|
Head template.HTML
|
||||||
|
Message string
|
||||||
|
RedirectUrl string
|
||||||
|
}
|
||||||
|
|
||||||
type LoginData struct {
|
type LoginData struct {
|
||||||
Head template.HTML
|
Head template.HTML
|
||||||
}
|
}
|
||||||
@ -310,12 +316,20 @@ func (h *WebUiHandler) users(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
username := r.Form["username"][0]
|
username := r.Form["username"][0]
|
||||||
|
|
||||||
|
minUsernameLen := 6
|
||||||
|
if len(username) < minUsernameLen {
|
||||||
|
w.WriteHeader(400)
|
||||||
|
errStr := fmt.Sprintf("Username must be at least %d characters", minUsernameLen)
|
||||||
|
h.alertDialog(w, r, errStr, "/users")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
isAdmin := len(r.Form["is-admin"]) == 1 && r.Form["is-admin"][0] == "on"
|
isAdmin := len(r.Form["is-admin"]) == 1 && r.Form["is-admin"][0] == "on"
|
||||||
|
|
||||||
err := h.db.AddUser(username, isAdmin)
|
err := h.db.AddUser(username, isAdmin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(500)
|
w.WriteHeader(500)
|
||||||
io.WriteString(w, err.Error())
|
h.alertDialog(w, r, err.Error(), "/users")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -379,6 +393,21 @@ func (h *WebUiHandler) deleteUser(w http.ResponseWriter, r *http.Request) {
|
|||||||
http.Redirect(w, r, "/users", 303)
|
http.Redirect(w, r, "/users", 303)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *WebUiHandler) alertDialog(w http.ResponseWriter, r *http.Request, message, redirectUrl string) error {
|
||||||
|
tmpl, err := h.loadTemplate("alert.tmpl")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
tmpl.Execute(w, &AlertData{
|
||||||
|
Head: h.headHtml,
|
||||||
|
Message: message,
|
||||||
|
RedirectUrl: redirectUrl,
|
||||||
|
})
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (h *WebUiHandler) loadTemplate(name string) (*template.Template, error) {
|
func (h *WebUiHandler) loadTemplate(name string) (*template.Template, error) {
|
||||||
|
|
||||||
tmplStr, err := h.box.String(name)
|
tmplStr, err := h.box.String(name)
|
||||||
|
Loading…
Reference in New Issue
Block a user