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
|
||||
}
|
||||
|
||||
type AlertData struct {
|
||||
Head template.HTML
|
||||
Message string
|
||||
RedirectUrl string
|
||||
}
|
||||
|
||||
type LoginData struct {
|
||||
Head template.HTML
|
||||
}
|
||||
@ -310,12 +316,20 @@ func (h *WebUiHandler) users(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
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"
|
||||
|
||||
err := h.db.AddUser(username, isAdmin)
|
||||
if err != nil {
|
||||
w.WriteHeader(500)
|
||||
io.WriteString(w, err.Error())
|
||||
h.alertDialog(w, r, err.Error(), "/users")
|
||||
return
|
||||
}
|
||||
|
||||
@ -379,6 +393,21 @@ func (h *WebUiHandler) deleteUser(w http.ResponseWriter, r *http.Request) {
|
||||
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) {
|
||||
|
||||
tmplStr, err := h.box.String(name)
|
||||
|
Loading…
Reference in New Issue
Block a user