From 57bc2d1ca0bfc3ba90e6d85309dba39415c6db73 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 13 Mar 2014 03:39:18 -0400 Subject: Add update user profile back end, add new gitignore and license, add template data to public profile page --- routers/user/setting.go | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'routers/user/setting.go') diff --git a/routers/user/setting.go b/routers/user/setting.go index 0669784b..63e4d8cb 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -17,9 +17,31 @@ import ( "github.com/gogits/gogs/modules/log" ) -func Setting(r render.Render, data base.TmplData, session sessions.Session) { +func Setting(form auth.UpdateProfileForm, r render.Render, data base.TmplData, req *http.Request, session sessions.Session) { data["Title"] = "Setting" data["PageIsUserSetting"] = true + + user := auth.SignedInUser(session) + if req.Method == "GET" { + data["Owner"] = user + } + + if hasErr, ok := data["HasError"]; ok && hasErr.(bool) { + r.HTML(200, "user/setting", data) + return + } + + user.Email = form.Email + user.Website = form.Website + user.Location = form.Location + user.Avatar = base.EncodeMd5(form.Avatar) + if err := models.UpdateUser(user); err != nil { + data["ErrorMsg"] = err + log.Error("setting.Setting: %v", err) + r.HTML(200, "base/error", data) + return + } + r.HTML(200, "user/setting", data) } -- cgit v1.2.3 From 76dae5bf680cd701b1ae9876ecc21486a8721f92 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 13 Mar 2014 03:44:56 -0400 Subject: Bug fix --- routers/user/setting.go | 2 ++ 1 file changed, 2 insertions(+) (limited to 'routers/user/setting.go') diff --git a/routers/user/setting.go b/routers/user/setting.go index 63e4d8cb..5ec4c455 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -24,6 +24,8 @@ func Setting(form auth.UpdateProfileForm, r render.Render, data base.TmplData, r user := auth.SignedInUser(session) if req.Method == "GET" { data["Owner"] = user + r.HTML(200, "user/setting", data) + return } if hasErr, ok := data["HasError"]; ok && hasErr.(bool) { -- cgit v1.2.3 From c01f593daa994dddc208f853c1c116c56d2ea397 Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 13 Mar 2014 04:06:35 -0400 Subject: Add updatePasswd --- README.md | 3 ++- modules/auth/user.go | 33 +++++++++++++++++++++++++++++++++ routers/user/setting.go | 33 +++++++++++++++++++++++++++++++++ web.go | 1 + 4 files changed, 69 insertions(+), 1 deletion(-) (limited to 'routers/user/setting.go') diff --git a/README.md b/README.md index 05056e20..0e354a9d 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Gogs - Go Git Service [![wercker status](https://app.wercker.com/status/ad0bdb0b Gogs(Go Git Service) is a GitHub-like clone in the Go Programming Language, it currently supports Linux and Max OS X, but Windows has **NOT** supported yet due to installation problem with [libgit2](http://libgit2.github.com/) in Windows. -##### Current version: 0.0.6 Alpha +##### Current version: 0.0.7 Alpha ## Purpose @@ -18,6 +18,7 @@ Please see [Wiki](https://github.com/gogits/gogs/wiki) for project design, devel - SSH protocal support. - Register/delete account. - Create/delete public repository. +- User/repository home page. - Git repository manipulation. ## Installation diff --git a/modules/auth/user.go b/modules/auth/user.go index e868fac2..6bc71306 100644 --- a/modules/auth/user.go +++ b/modules/auth/user.go @@ -128,3 +128,36 @@ func (f *UpdateProfileForm) Validate(errors *binding.Errors, req *http.Request, validate(errors, data, f) } + +type UpdatePasswdForm struct { + OldPasswd string `form:"oldpasswd" binding:"Required;MinSize(6);MaxSize(30)"` + NewPasswd string `form:"newpasswd" binding:"Required;MinSize(6);MaxSize(30)"` + RetypePasswd string `form:"retypepasswd"` +} + +func (f *UpdatePasswdForm) Name(field string) string { + names := map[string]string{ + "OldPasswd": "Old password", + "NewPasswd": "New password", + "RetypePasswd": "Re-type password", + } + return names[field] +} + +func (f *UpdatePasswdForm) Validate(errors *binding.Errors, req *http.Request, context martini.Context) { + if req.Method == "GET" || errors.Count() == 0 { + return + } + + data := context.Get(reflect.TypeOf(base.TmplData{})).Interface().(base.TmplData) + data["HasError"] = true + + if len(errors.Overall) > 0 { + for _, err := range errors.Overall { + log.Error("UpdatePasswdForm.Validate: %v", err) + } + return + } + + validate(errors, data, f) +} diff --git a/routers/user/setting.go b/routers/user/setting.go index 5ec4c455..02a214b2 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -47,6 +47,39 @@ func Setting(form auth.UpdateProfileForm, r render.Render, data base.TmplData, r r.HTML(200, "user/setting", data) } +func UpdatePasswd(form auth.UpdatePasswdForm, r render.Render, data base.TmplData, req *http.Request, session sessions.Session) { + data["Title"] = "Setting" + data["PageIsUserSetting"] = true + + user := auth.SignedInUser(session) + newUser := &models.User{Passwd: form.OldPasswd} + if err := newUser.EncodePasswd(); err != nil { + data["ErrorMsg"] = err + log.Error("setting.UpdatePasswd: %v", err) + r.HTML(200, "base/error", data) + return + } + + if user.Passwd != newUser.Passwd { + data["HasError"] = true + data["ErrorMsg"] = "Old password is not correct" + } else if form.NewPasswd != form.RetypePasswd { + data["HasError"] = true + data["ErrorMsg"] = "New password and re-type password are not same" + } else { + user.Passwd = newUser.Passwd + if err := models.UpdateUser(user); err != nil { + data["ErrorMsg"] = err + log.Error("setting.Setting: %v", err) + r.HTML(200, "base/error", data) + return + } + } + + data["Owner"] = user + r.HTML(200, "user/setting", data) +} + func SettingSSHKeys(form auth.AddSSHKeyForm, r render.Render, data base.TmplData, req *http.Request, session sessions.Session) { data["Title"] = "SSH Keys" diff --git a/web.go b/web.go index 856d0f10..a80c4924 100644 --- a/web.go +++ b/web.go @@ -64,6 +64,7 @@ func runWeb(*cli.Context) { m.Get("/user/feeds", binding.Bind(auth.FeedsForm{}), user.Feeds) m.Any("/user/setting", auth.SignInRequire(true), binding.BindIgnErr(auth.UpdateProfileForm{}), user.Setting) + m.Post("/user/setting/update_passwd", auth.SignInRequire(true), binding.BindIgnErr(auth.UpdatePasswdForm{}), user.UpdatePasswd) m.Any("/user/setting/ssh", auth.SignInRequire(true), binding.BindIgnErr(auth.AddSSHKeyForm{}), user.SettingSSHKeys) m.Get("/user/:username", auth.SignInRequire(false), user.Profile) -- cgit v1.2.3 From 9c0672e0dd8381558dbae42bb4c49000dc4807c5 Mon Sep 17 00:00:00 2001 From: FuXiaoHei Date: Fri, 14 Mar 2014 11:24:08 +0800 Subject: user update-password page ui --- public/css/gogs.css | 16 +++++------ routers/user/setting.go | 8 ++++++ templates/user/delete.tmpl | 6 ++--- templates/user/email_password.tmpl | 53 +++++++++++++++++++++++++++++++++++++ templates/user/publickey.tmpl | 6 ++--- templates/user/publickey_add.tmpl | 26 ------------------ templates/user/publickey_added.tmpl | 8 ------ templates/user/publickey_list.tmpl | 12 --------- templates/user/setting.tmpl | 8 +++--- web.go | 1 + 10 files changed, 80 insertions(+), 64 deletions(-) create mode 100644 templates/user/email_password.tmpl delete mode 100644 templates/user/publickey_add.tmpl delete mode 100644 templates/user/publickey_added.tmpl delete mode 100644 templates/user/publickey_list.tmpl (limited to 'routers/user/setting.go') diff --git a/public/css/gogs.css b/public/css/gogs.css index a44d4a93..7a05b9ab 100755 --- a/public/css/gogs.css +++ b/public/css/gogs.css @@ -269,7 +269,8 @@ body { /* gogits user setting */ -#gogs-user-setting-nav > h4, #gogs-user-setting-container > h4, #gogs-ssh-keys > h4, #gogs-user-delete > h4 ,#gogs-repo-setting-container .tab-pane > h4{ +#gogs-user-setting-nav > h4, #gogs-user-setting-container > h4, #gogs-user-setting-container > div > h4, +#gogs-ssh-keys > h4, #gogs-user-delete > h4, #gogs-repo-setting-container .tab-pane > h4 { padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid #CCC; @@ -429,8 +430,7 @@ body { margin-bottom: 4px; } - -#gogs-repo-toolbar{ +#gogs-repo-toolbar { margin-top: 51px; margin-bottom: -50px; border-bottom: 1px solid #BBB; @@ -438,23 +438,23 @@ body { height: 40px; } -#gogs-repo-toolbar .navbar-default{ +#gogs-repo-toolbar .navbar-default { border: none; height: 39px; } -#gogs-repo-toolbar .nav > li > a{ +#gogs-repo-toolbar .nav > li > a { height: 39px; } -#gogs-repo-toolbar .navbar-toolbar.navbar-default .navbar-nav>.active>a:after{ +#gogs-repo-toolbar .navbar-toolbar.navbar-default .navbar-nav > .active > a:after { border-bottom-color: #999; } -#gogs-repo-toolbar .navbar.nav-toolbar{ +#gogs-repo-toolbar .navbar.nav-toolbar { margin-bottom: 0; } -#gogs-repo-toolbar .navbar-collapse{ +#gogs-repo-toolbar .navbar-collapse { padding: 0; } \ No newline at end of file diff --git a/routers/user/setting.go b/routers/user/setting.go index 02a214b2..cf11095b 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -47,6 +47,14 @@ func Setting(form auth.UpdateProfileForm, r render.Render, data base.TmplData, r r.HTML(200, "user/setting", data) } +func SettingEmailPassword(r render.Render, data base.TmplData, session sessions.Session, req *http.Request) { + data["Title"] = "Email & Password" + data["PageIsUserSetting"] = true + data["IsPwdSuccess"] = (req.FormValue("password") == "true") + + r.HTML(200, "user/email_password", data) +} + func UpdatePasswd(form auth.UpdatePasswdForm, r render.Render, data base.TmplData, req *http.Request, session sessions.Session) { data["Title"] = "Setting" data["PageIsUserSetting"] = true diff --git a/templates/user/delete.tmpl b/templates/user/delete.tmpl index af0e1fbc..37259f61 100644 --- a/templates/user/delete.tmpl +++ b/templates/user/delete.tmpl @@ -5,10 +5,10 @@

Account Setting

diff --git a/templates/user/email_password.tmpl b/templates/user/email_password.tmpl new file mode 100644 index 00000000..364bcf39 --- /dev/null +++ b/templates/user/email_password.tmpl @@ -0,0 +1,53 @@ +{{template "base/head" .}} +{{template "base/navbar" .}} +
+ +
+
+

Email

+

Your Primary Email will be used for Account related notifications as well as any web based operations, such as edits and merges made via the web.

+

// TODO


+
+
+

Password

+
{{if .IsPwdSuccess}} +

Password is changed successfully. You can sign in via new password.

{{end}} +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+    + Forget Password ? +
+
+
+
+
+
+{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/user/publickey.tmpl b/templates/user/publickey.tmpl index 0bd76593..195af758 100644 --- a/templates/user/publickey.tmpl +++ b/templates/user/publickey.tmpl @@ -5,10 +5,10 @@

Account Setting

diff --git a/templates/user/publickey_add.tmpl b/templates/user/publickey_add.tmpl deleted file mode 100644 index 634b859d..00000000 --- a/templates/user/publickey_add.tmpl +++ /dev/null @@ -1,26 +0,0 @@ -{{template "base/head" .}} -{{template "base/navbar" .}} -
-
-
- -
- -
-
- -
- -
- -
-
- -
-
- -
-
-
-
-{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/user/publickey_added.tmpl b/templates/user/publickey_added.tmpl deleted file mode 100644 index f67da9ed..00000000 --- a/templates/user/publickey_added.tmpl +++ /dev/null @@ -1,8 +0,0 @@ -{{template "base/head" .}} -{{template "base/navbar" .}} -
-
- publickey added -
-
-{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/user/publickey_list.tmpl b/templates/user/publickey_list.tmpl deleted file mode 100644 index fbd640b4..00000000 --- a/templates/user/publickey_list.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -{{template "base/head" .}} -{{template "base/navbar" .}} -
- -
    - {{range .Keys}} -
  • {{.Name}}
  • -
  • {{.Content}}
  • - {{end}} -
-
-{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/user/setting.tmpl b/templates/user/setting.tmpl index 79de58fe..380ac88a 100644 --- a/templates/user/setting.tmpl +++ b/templates/user/setting.tmpl @@ -5,10 +5,10 @@

Account Setting

diff --git a/web.go b/web.go index a80c4924..47128617 100644 --- a/web.go +++ b/web.go @@ -64,6 +64,7 @@ func runWeb(*cli.Context) { m.Get("/user/feeds", binding.Bind(auth.FeedsForm{}), user.Feeds) m.Any("/user/setting", auth.SignInRequire(true), binding.BindIgnErr(auth.UpdateProfileForm{}), user.Setting) + m.Get("/user/setting/email_password",auth.SignInRequire(true),user.SettingEmailPassword) m.Post("/user/setting/update_passwd", auth.SignInRequire(true), binding.BindIgnErr(auth.UpdatePasswdForm{}), user.UpdatePasswd) m.Any("/user/setting/ssh", auth.SignInRequire(true), binding.BindIgnErr(auth.AddSSHKeyForm{}), user.SettingSSHKeys) -- cgit v1.2.3 From 47edf7f4f9d359765764207cbcb6dd82dba36de8 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 14 Mar 2014 01:12:07 -0400 Subject: Finish update password and profile --- gogs.go | 2 +- models/user.go | 2 ++ modules/auth/user.go | 2 +- routers/user/setting.go | 27 +++++++++---------- templates/user/delete.tmpl | 2 +- templates/user/email_password.tmpl | 53 -------------------------------------- templates/user/password.tmpl | 51 ++++++++++++++++++++++++++++++++++++ templates/user/profile.tmpl | 4 +-- templates/user/publickey.tmpl | 2 +- templates/user/setting.tmpl | 43 +++++++++++++++++++++++++++++-- web.go | 3 +-- 11 files changed, 115 insertions(+), 76 deletions(-) delete mode 100644 templates/user/email_password.tmpl create mode 100644 templates/user/password.tmpl (limited to 'routers/user/setting.go') diff --git a/gogs.go b/gogs.go index 96c0f84f..b2764902 100644 --- a/gogs.go +++ b/gogs.go @@ -20,7 +20,7 @@ import ( // Test that go1.1 tag above is included in builds. main.go refers to this definition. const go11tag = true -const APP_VER = "0.0.7.0313" +const APP_VER = "0.0.7.0314" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/user.go b/models/user.go index 06db7d8b..8f7a37cb 100644 --- a/models/user.go +++ b/models/user.go @@ -49,6 +49,7 @@ type User struct { NumStars int NumRepos int Avatar string `xorm:"varchar(2048) not null"` + AvatarEmail string `xorm:"not null"` Location string Website string Created time.Time `xorm:"created"` @@ -106,6 +107,7 @@ func RegisterUser(user *User) (err error) { user.LowerName = strings.ToLower(user.Name) user.Avatar = base.EncodeMd5(user.Email) + user.AvatarEmail = user.Email if err = user.EncodePasswd(); err != nil { return err } diff --git a/modules/auth/user.go b/modules/auth/user.go index 6bc71306..ef595c60 100644 --- a/modules/auth/user.go +++ b/modules/auth/user.go @@ -96,7 +96,7 @@ type FeedsForm struct { type UpdateProfileForm struct { Email string `form:"email" binding:"Required;Email;MaxSize(50)"` - Website string `form:"website" binding:"AlphaDash;MaxSize(50)"` + Website string `form:"website" binding:"MaxSize(50)"` Location string `form:"location" binding:"MaxSize(50)"` Avatar string `form:"avatar" binding:"Required;Email;MaxSize(50)"` } diff --git a/routers/user/setting.go b/routers/user/setting.go index cf11095b..08879ae4 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -22,8 +22,9 @@ func Setting(form auth.UpdateProfileForm, r render.Render, data base.TmplData, r data["PageIsUserSetting"] = true user := auth.SignedInUser(session) + data["Owner"] = user + if req.Method == "GET" { - data["Owner"] = user r.HTML(200, "user/setting", data) return } @@ -37,6 +38,7 @@ func Setting(form auth.UpdateProfileForm, r render.Render, data base.TmplData, r user.Website = form.Website user.Location = form.Location user.Avatar = base.EncodeMd5(form.Avatar) + user.AvatarEmail = form.Avatar if err := models.UpdateUser(user); err != nil { data["ErrorMsg"] = err log.Error("setting.Setting: %v", err) @@ -44,23 +46,21 @@ func Setting(form auth.UpdateProfileForm, r render.Render, data base.TmplData, r return } + data["IsSuccess"] = true r.HTML(200, "user/setting", data) } -func SettingEmailPassword(r render.Render, data base.TmplData, session sessions.Session, req *http.Request) { - data["Title"] = "Email & Password" +func SettingPassword(form auth.UpdatePasswdForm, r render.Render, data base.TmplData, session sessions.Session, req *http.Request) { + data["Title"] = "Password" data["PageIsUserSetting"] = true - data["IsPwdSuccess"] = (req.FormValue("password") == "true") - r.HTML(200, "user/email_password", data) -} - -func UpdatePasswd(form auth.UpdatePasswdForm, r render.Render, data base.TmplData, req *http.Request, session sessions.Session) { - data["Title"] = "Setting" - data["PageIsUserSetting"] = true + if req.Method == "GET" { + r.HTML(200, "user/password", data) + return + } user := auth.SignedInUser(session) - newUser := &models.User{Passwd: form.OldPasswd} + newUser := &models.User{Passwd: form.NewPasswd} if err := newUser.EncodePasswd(); err != nil { data["ErrorMsg"] = err log.Error("setting.UpdatePasswd: %v", err) @@ -78,14 +78,15 @@ func UpdatePasswd(form auth.UpdatePasswdForm, r render.Render, data base.TmplDat user.Passwd = newUser.Passwd if err := models.UpdateUser(user); err != nil { data["ErrorMsg"] = err - log.Error("setting.Setting: %v", err) + log.Error("setting.UpdatePasswd: %v", err) r.HTML(200, "base/error", data) return } + data["IsSuccess"] = true } data["Owner"] = user - r.HTML(200, "user/setting", data) + r.HTML(200, "user/password", data) } func SettingSSHKeys(form auth.AddSSHKeyForm, r render.Render, data base.TmplData, req *http.Request, session sessions.Session) { diff --git a/templates/user/delete.tmpl b/templates/user/delete.tmpl index 37259f61..90420177 100644 --- a/templates/user/delete.tmpl +++ b/templates/user/delete.tmpl @@ -5,7 +5,7 @@

Account Setting

  • Account Profile
  • -
  • Emails and Password
  • +
  • Password
  • Notifications
  • SSH Keys
  • Security
  • diff --git a/templates/user/email_password.tmpl b/templates/user/email_password.tmpl deleted file mode 100644 index 364bcf39..00000000 --- a/templates/user/email_password.tmpl +++ /dev/null @@ -1,53 +0,0 @@ -{{template "base/head" .}} -{{template "base/navbar" .}} -
    - -
    -
    -

    Email

    -

    Your Primary Email will be used for Account related notifications as well as any web based operations, such as edits and merges made via the web.

    -

    // TODO


    -
    -
    -

    Password

    -
    {{if .IsPwdSuccess}} -

    Password is changed successfully. You can sign in via new password.

    {{end}} -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    -
    -    - Forget Password ? -
    -
    -
    -
    -
    -
    -{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/user/password.tmpl b/templates/user/password.tmpl new file mode 100644 index 00000000..a8b1e21e --- /dev/null +++ b/templates/user/password.tmpl @@ -0,0 +1,51 @@ +{{template "base/head" .}} +{{template "base/navbar" .}} +
    + +
    +
    +

    Password

    +
    {{if .IsSuccess}} +

    Password is changed successfully. You can now sign in via new password.

    {{else if .HasError}}

    {{.ErrorMsg}}

    {{end}} +
    + +
    + +
    +
    + +
    + +
    + +
    +
    + +
    + +
    + +
    +
    + +
    +
    +    + Forgot your password? +
    +
    +
    +
    +
    +
    +{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl index 94ec33b6..c10bfcb0 100644 --- a/templates/user/profile.tmpl +++ b/templates/user/profile.tmpl @@ -11,8 +11,8 @@
    diff --git a/templates/user/publickey.tmpl b/templates/user/publickey.tmpl index 195af758..60d2c246 100644 --- a/templates/user/publickey.tmpl +++ b/templates/user/publickey.tmpl @@ -5,7 +5,7 @@

    Account Setting

    • Account Profile
    • -
    • Emails and Password
    • +
    • Password
    • Notifications
    • SSH Keys
    • Security
    • diff --git a/templates/user/setting.tmpl b/templates/user/setting.tmpl index 380ac88a..edbeeb22 100644 --- a/templates/user/setting.tmpl +++ b/templates/user/setting.tmpl @@ -5,7 +5,7 @@

      Account Setting

      - setting container +
      +

      Account Profile

      +
      {{if .IsSuccess}} +

      Your profile has been successfully updated.

      {{else if .HasError}}

      {{.ErrorMsg}}

      {{end}} +

      Your Email will be public and used for Account related notifications and any web based operations made via the web.

      +
      + +
      + +
      +
      + +
      + +
      + +
      +
      + +
      + +
      + +
      +
      + +
      + +
      + +
      +
      + +
      +
      + +
      +
      +
      +
      {{template "base/footer" .}} \ No newline at end of file diff --git a/web.go b/web.go index 47128617..1fa19afc 100644 --- a/web.go +++ b/web.go @@ -64,8 +64,7 @@ func runWeb(*cli.Context) { m.Get("/user/feeds", binding.Bind(auth.FeedsForm{}), user.Feeds) m.Any("/user/setting", auth.SignInRequire(true), binding.BindIgnErr(auth.UpdateProfileForm{}), user.Setting) - m.Get("/user/setting/email_password",auth.SignInRequire(true),user.SettingEmailPassword) - m.Post("/user/setting/update_passwd", auth.SignInRequire(true), binding.BindIgnErr(auth.UpdatePasswdForm{}), user.UpdatePasswd) + m.Any("/user/setting/password", auth.SignInRequire(true), binding.BindIgnErr(auth.UpdatePasswdForm{}), user.SettingPassword) m.Any("/user/setting/ssh", auth.SignInRequire(true), binding.BindIgnErr(auth.AddSSHKeyForm{}), user.SettingSSHKeys) m.Get("/user/:username", auth.SignInRequire(false), user.Profile) -- cgit v1.2.3 From 1ce17cce764b5c10feeba5a92586be9a45173e26 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 14 Mar 2014 01:59:07 -0400 Subject: Add log.handle --- modules/log/log.go | 6 ++++-- routers/repo/repo.go | 10 +++------- routers/repo/single.go | 4 +--- routers/user/setting.go | 12 +++--------- routers/user/user.go | 20 +++++--------------- templates/base/error.tmpl | 7 ------- templates/status/200.tmpl | 7 +++++++ 7 files changed, 23 insertions(+), 43 deletions(-) delete mode 100644 templates/base/error.tmpl create mode 100644 templates/status/200.tmpl (limited to 'routers/user/setting.go') diff --git a/modules/log/log.go b/modules/log/log.go index f71be7c1..b3a3e0a6 100644 --- a/modules/log/log.go +++ b/modules/log/log.go @@ -6,6 +6,8 @@ package log import ( + "fmt" + "github.com/martini-contrib/render" "github.com/gogits/logs" @@ -40,8 +42,8 @@ func Critical(format string, v ...interface{}) { logger.Critical(format, v...) } -func Handle(status int, title, tmpl string, data base.TmplData, r render.Render, err error) { +func Handle(status int, title string, data base.TmplData, r render.Render, err error) { data["ErrorMsg"] = err Error("%s: %v", title, err) - r.HTML(status, tmpl, data) + r.HTML(status, fmt.Sprintf("status/%d", status), data) } diff --git a/routers/repo/repo.go b/routers/repo/repo.go index 706b4f93..b25ce189 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -64,7 +64,7 @@ func Create(form auth.CreateRepoForm, req *http.Request, r render.Render, data b return } - log.Handle(200, "repo.Create", "base/error", data, r, err) + log.Handle(200, "repo.Create", data, r, err) } func Delete(form auth.DeleteRepoForm, req *http.Request, r render.Render, data base.TmplData, session sessions.Session) { @@ -76,9 +76,7 @@ func Delete(form auth.DeleteRepoForm, req *http.Request, r render.Render, data b } if err := models.DeleteRepository(form.UserId, form.RepoId, form.UserName); err != nil { - data["ErrorMsg"] = err - log.Error("repo.Delete: %v", err) - r.HTML(200, "base/error", data) + log.Handle(200, "repo.Delete", data, r, err) return } @@ -95,9 +93,7 @@ func List(req *http.Request, r render.Render, data base.TmplData, session sessio data["Title"] = "Repositories" repos, err := models.GetRepositories(u) if err != nil { - data["ErrorMsg"] = err - log.Error("repo.List: %v", err) - r.HTML(200, "base/error", data) + log.Handle(200, "repo.List", data, r, err) return } diff --git a/routers/repo/single.go b/routers/repo/single.go index 1d5e601a..489666f4 100644 --- a/routers/repo/single.go +++ b/routers/repo/single.go @@ -16,9 +16,7 @@ func Single(params martini.Params, r render.Render, data base.TmplData) { files, err := models.GetReposFiles(params["username"], params["reponame"], "HEAD", "/") if err != nil { - data["ErrorMsg"] = err - log.Error("repo.List: %v", err) - r.HTML(200, "base/error", data) + log.Handle(200, "repo.Single", data, r, err) return } diff --git a/routers/user/setting.go b/routers/user/setting.go index 08879ae4..b01d27d8 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -40,9 +40,7 @@ func Setting(form auth.UpdateProfileForm, r render.Render, data base.TmplData, r user.Avatar = base.EncodeMd5(form.Avatar) user.AvatarEmail = form.Avatar if err := models.UpdateUser(user); err != nil { - data["ErrorMsg"] = err - log.Error("setting.Setting: %v", err) - r.HTML(200, "base/error", data) + log.Handle(200, "setting.Setting", data, r, err) return } @@ -62,9 +60,7 @@ func SettingPassword(form auth.UpdatePasswdForm, r render.Render, data base.Tmpl user := auth.SignedInUser(session) newUser := &models.User{Passwd: form.NewPasswd} if err := newUser.EncodePasswd(); err != nil { - data["ErrorMsg"] = err - log.Error("setting.UpdatePasswd: %v", err) - r.HTML(200, "base/error", data) + log.Handle(200, "setting.SettingPassword", data, r, err) return } @@ -77,9 +73,7 @@ func SettingPassword(form auth.UpdatePasswdForm, r render.Render, data base.Tmpl } else { user.Passwd = newUser.Passwd if err := models.UpdateUser(user); err != nil { - data["ErrorMsg"] = err - log.Error("setting.UpdatePasswd: %v", err) - r.HTML(200, "base/error", data) + log.Handle(200, "setting.SettingPassword", data, r, err) return } data["IsSuccess"] = true diff --git a/routers/user/user.go b/routers/user/user.go index 2ce158b6..6095b538 100644 --- a/routers/user/user.go +++ b/routers/user/user.go @@ -22,9 +22,7 @@ func Dashboard(r render.Render, data base.TmplData, session sessions.Session) { data["PageIsUserDashboard"] = true repos, err := models.GetRepositories(&models.User{Id: auth.SignedInId(session)}) if err != nil { - data["ErrorMsg"] = err - log.Error("dashboard: %v", err) - r.HTML(200, "base/error", data) + log.Handle(200, "user.Dashboard", data, r, err) return } data["MyRepos"] = repos @@ -37,9 +35,7 @@ func Profile(params martini.Params, r render.Render, data base.TmplData, session // TODO: Need to check view self or others. user, err := models.GetUserByName(params["username"]) if err != nil { - data["ErrorMsg"] = err - log.Error("user.Profile: %v", err) - r.HTML(200, "base/error", data) + log.Handle(200, "user.Profile", data, r, err) return } @@ -70,9 +66,7 @@ func SignIn(form auth.LogInForm, data base.TmplData, req *http.Request, r render return } - data["ErrorMsg"] = err - log.Error("user.SignIn: %v", err) - r.HTML(200, "base/error", data) + log.Handle(200, "user.SignIn", data, r, err) return } @@ -129,9 +123,7 @@ func SignUp(form auth.RegisterForm, data base.TmplData, req *http.Request, r ren data["ErrorMsg"] = "E-mail address has been already used" r.HTML(200, "user/signup", data) default: - data["ErrorMsg"] = err - log.Error("user.SignUp: %v", data) - r.HTML(200, "base/error", nil) + log.Handle(200, "user.SignUp", data, r, err) } return } @@ -155,9 +147,7 @@ func Delete(data base.TmplData, req *http.Request, session sessions.Session, r r case models.ErrUserOwnRepos.Error(): data["ErrorMsg"] = "Your account still have ownership of repository, you have to delete or transfer them first." default: - data["ErrorMsg"] = err - log.Error("user.Delete: %v", data) - r.HTML(200, "base/error", nil) + log.Handle(200, "user.Delete", data, r, err) return } } diff --git a/templates/base/error.tmpl b/templates/base/error.tmpl deleted file mode 100644 index 8f644942..00000000 --- a/templates/base/error.tmpl +++ /dev/null @@ -1,7 +0,0 @@ -{{template "base/head" .}} -{{template "base/navbar" .}} -
      -

      An error is occurred : {{.ErrorMsg}}

      -

      Application Version: {{AppVer}}

      -
      -{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/status/200.tmpl b/templates/status/200.tmpl new file mode 100644 index 00000000..8f644942 --- /dev/null +++ b/templates/status/200.tmpl @@ -0,0 +1,7 @@ +{{template "base/head" .}} +{{template "base/navbar" .}} +
      +

      An error is occurred : {{.ErrorMsg}}

      +

      Application Version: {{AppVer}}

      +
      +{{template "base/footer" .}} \ No newline at end of file -- cgit v1.2.3 From d18237850c6a4ae855b3f8592994c91462fcdb0a Mon Sep 17 00:00:00 2001 From: FuXiaoHei Date: Fri, 14 Mar 2014 17:12:28 +0800 Subject: add draft page for empty link --- routers/user/setting.go | 14 ++++++++++++++ templates/repo/single.tmpl | 2 +- templates/user/notification.tmpl | 19 +++++++++++++++++++ templates/user/security.tmpl | 19 +++++++++++++++++++ web.go | 2 ++ 5 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 templates/user/notification.tmpl create mode 100644 templates/user/security.tmpl (limited to 'routers/user/setting.go') diff --git a/routers/user/setting.go b/routers/user/setting.go index b01d27d8..8b5a2d18 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -154,3 +154,17 @@ func SettingSSHKeys(form auth.AddSSHKeyForm, r render.Render, data base.TmplData data["Keys"] = keys r.HTML(200, "user/publickey", data) } + +func SettingNotification(r render.Render, data base.TmplData) { + // todo user setting notification + data["Title"] = "Notification" + data["PageIsUserSetting"] = true + r.HTML(200, "user/notification", data) +} + +func SettingSecurity(r render.Render, data base.TmplData) { + // todo user setting security + data["Title"] = "Security" + data["PageIsUserSetting"] = true + r.HTML(200, "user/security", data) +} diff --git a/templates/repo/single.tmpl b/templates/repo/single.tmpl index 4a71ad34..fbd05c4b 100644 --- a/templates/repo/single.tmpl +++ b/templates/repo/single.tmpl @@ -30,7 +30,7 @@ {{range .Files}} - {{.Name}} + {{.Name}} {{.Message}} diff --git a/templates/user/notification.tmpl b/templates/user/notification.tmpl new file mode 100644 index 00000000..c1abc46f --- /dev/null +++ b/templates/user/notification.tmpl @@ -0,0 +1,19 @@ +{{template "base/head" .}} +{{template "base/navbar" .}} +
      + +
      +

      Notification

      +
      +
      +{{template "base/footer" .}} \ No newline at end of file diff --git a/templates/user/security.tmpl b/templates/user/security.tmpl new file mode 100644 index 00000000..37cd5872 --- /dev/null +++ b/templates/user/security.tmpl @@ -0,0 +1,19 @@ +{{template "base/head" .}} +{{template "base/navbar" .}} +
      + +
      +

      Security

      +
      +
      +{{template "base/footer" .}} \ No newline at end of file diff --git a/web.go b/web.go index f416d96e..8f698e39 100644 --- a/web.go +++ b/web.go @@ -67,6 +67,8 @@ func runWeb(*cli.Context) { m.Any("/user/setting", auth.SignInRequire(true), binding.BindIgnErr(auth.UpdateProfileForm{}), user.Setting) m.Any("/user/setting/password", auth.SignInRequire(true), binding.BindIgnErr(auth.UpdatePasswdForm{}), user.SettingPassword) m.Any("/user/setting/ssh", auth.SignInRequire(true), binding.BindIgnErr(auth.AddSSHKeyForm{}), user.SettingSSHKeys) + m.Any("/user/setting/notification",auth.SignInRequire(true),user.SettingNotification) + m.Any("/user/setting/security",auth.SignInRequire(true),user.SettingSecurity) m.Get("/user/:username", auth.SignInRequire(false), user.Profile) -- cgit v1.2.3