diff options
-rw-r--r-- | modules/context/context.go | 7 | ||||
-rw-r--r-- | routers/user/setting.go | 15 | ||||
-rw-r--r-- | templates/user/settings/profile.tmpl | 12 |
3 files changed, 23 insertions, 11 deletions
diff --git a/modules/context/context.go b/modules/context/context.go index f543e766..04f4ba3e 100644 --- a/modules/context/context.go +++ b/modules/context/context.go @@ -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 { diff --git a/routers/user/setting.go b/routers/user/setting.go index 9138ba04..e1fabb48 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -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) diff --git a/templates/user/settings/profile.tmpl b/templates/user/settings/profile.tmpl index 731853c3..aab54a82 100644 --- a/templates/user/settings/profile.tmpl +++ b/templates/user/settings/profile.tmpl @@ -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"> |