mirror of https://github.com/gogs/gogs.git
user/setting: preserve user input with validation error (#1123)
parent
ab634ce61a
commit
1afafde3b3
|
@ -79,12 +79,17 @@ func (ctx *Context) HasValue(name string) bool {
|
|||
return ok
|
||||
}
|
||||
|
||||
// HTML calls Context.HTML and converts template name to string.
|
||||
// HTML responses template with given status.
|
||||
func (ctx *Context) HTML(status int, name base.TplName) {
|
||||
log.Trace("Template: %s", name)
|
||||
ctx.Context.HTML(status, string(name))
|
||||
}
|
||||
|
||||
// Success responses template with status 200.
|
||||
func (c *Context) Success(name base.TplName) {
|
||||
c.HTML(200, name)
|
||||
}
|
||||
|
||||
// RenderWithErr used for page has form validation but need to prompt error to users.
|
||||
func (ctx *Context) RenderWithErr(msg string, tpl base.TplName, f interface{}) {
|
||||
if f != nil {
|
||||
|
|
|
@ -36,10 +36,16 @@ const (
|
|||
SECURITY base.TplName = "user/security"
|
||||
)
|
||||
|
||||
func Settings(ctx *context.Context) {
|
||||
ctx.Data["Title"] = ctx.Tr("settings")
|
||||
ctx.Data["PageIsSettingsProfile"] = true
|
||||
ctx.HTML(200, SETTINGS_PROFILE)
|
||||
func Settings(c *context.Context) {
|
||||
c.Data["Title"] = c.Tr("settings")
|
||||
c.Data["PageIsSettingsProfile"] = true
|
||||
c.Data["origin_name"] = c.User.Name
|
||||
c.Data["name"] = c.User.Name
|
||||
c.Data["full_name"] = c.User.FullName
|
||||
c.Data["email"] = c.User.Email
|
||||
c.Data["website"] = c.User.Website
|
||||
c.Data["location"] = c.User.Location
|
||||
c.Success(SETTINGS_PROFILE)
|
||||
}
|
||||
|
||||
func handleUsernameChange(ctx *context.Context, newName string) {
|
||||
|
@ -80,6 +86,7 @@ func handleUsernameChange(ctx *context.Context, newName string) {
|
|||
func SettingsPost(ctx *context.Context, f form.UpdateProfile) {
|
||||
ctx.Data["Title"] = ctx.Tr("settings")
|
||||
ctx.Data["PageIsSettingsProfile"] = true
|
||||
ctx.Data["origin_name"] = ctx.User.Name
|
||||
|
||||
if ctx.HasError() {
|
||||
ctx.HTML(200, SETTINGS_PROFILE)
|
||||
|
|
|
@ -13,27 +13,27 @@
|
|||
<form class="ui form" action="{{.Link}}" method="post">
|
||||
{{.CsrfTokenHtml}}
|
||||
<div class="required field {{if .Err_Name}}error{{end}}">
|
||||
<label for="username">{{.i18n.Tr "username"}}<span class="text red hide" id="name-change-prompt"> {{.i18n.Tr "settings.change_username_prompt"}}</span></label>
|
||||
<input id="username" name="name" value="{{.SignedUser.Name}}" data-name="{{.SignedUser.Name}}" autofocus required {{if not .SignedUser.IsLocal}}readonly{{end}}>
|
||||
<label for="username">{{.i18n.Tr "username"}}<span class="text red {{if eq .name .origin_name}}hide{{end}}" id="name-change-prompt"> {{.i18n.Tr "settings.change_username_prompt"}}</span></label>
|
||||
<input id="username" name="name" value="{{.name}}" data-name="{{.origin_name}}" autofocus required {{if not .SignedUser.IsLocal}}readonly{{end}}>
|
||||
{{if not .SignedUser.IsLocal}}
|
||||
<p class="help text blue">{{$.i18n.Tr "settings.password_username_disabled"}}</p>
|
||||
{{end}}
|
||||
</div>
|
||||
<div class="field {{if .Err_FullName}}error{{end}}">
|
||||
<label for="full_name">{{.i18n.Tr "settings.full_name"}}</label>
|
||||
<input id="full_name" name="full_name" value="{{.SignedUser.FullName}}">
|
||||
<input id="full_name" name="full_name" value="{{.full_name}}">
|
||||
</div>
|
||||
<div class="required field {{if .Err_Email}}error{{end}}">
|
||||
<label for="email">{{.i18n.Tr "email"}}</label>
|
||||
<input id="email" name="email" value="{{.SignedUser.Email}}" required>
|
||||
<input id="email" name="email" value="{{.email}}" required>
|
||||
</div>
|
||||
<div class="field {{if .Err_Website}}error{{end}}">
|
||||
<label for="website">{{.i18n.Tr "settings.website"}}</label>
|
||||
<input id="website" name="website" type="url" value="{{.SignedUser.Website}}">
|
||||
<input id="website" name="website" type="url" value="{{.website}}">
|
||||
</div>
|
||||
<div class="field">
|
||||
<label for="location">{{.i18n.Tr "settings.location"}}</label>
|
||||
<input id="location" name="location" value="{{.SignedUser.Location}}">
|
||||
<input id="location" name="location" value="{{.location}}">
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
|
|
Loading…
Reference in New Issue