From dc53270da91c369cb00f992a600a1e014d555278 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sat, 22 Nov 2014 10:22:53 -0500 Subject: [PATCH] Fix 653 --- README.md | 4 +++- README_ZH.md | 4 +++- conf/locale/TRANSLATORS | 3 +++ conf/locale/locale_en-US.ini | 1 + gogs.go | 2 +- models/user.go | 8 ++++++-- routers/user/setting.go | 15 ++++++++++++--- templates/.VERSION | 2 +- 8 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 conf/locale/TRANSLATORS diff --git a/README.md b/README.md index f14c4c1baf4..0501d7efba3 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,9 @@ There are 5 ways to install Gogs: ## Contributors -The [core team](http://gogs.io/team) of this project. See [contributors page](https://github.com/gogits/gogs/graphs/contributors) for full list of contributors. +- The [core team](http://gogs.io/team) of this project. +- See [contributors page](https://github.com/gogits/gogs/graphs/contributors) for full list of contributors. +- See [TRANSLATORS](conf/locale/TRANSLATORS) for full list of translators. ## License diff --git a/README_ZH.md b/README_ZH.md index 7adc5dc5667..6facfeb802f 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -68,7 +68,9 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自 ## 贡献成员 -本项目的 [开发团队](http://gogs.io/team)。您可以通过查看 [贡献者页面](https://github.com/gogits/gogs/graphs/contributors) 获取完整的贡献者列表。 +- 本项目的 [开发团队](http://gogs.io/team)。 +- 您可以通过查看 [贡献者页面](https://github.com/gogits/gogs/graphs/contributors) 获取完整的贡献者列表。 +- 您可以通过查看 [TRANSLATORS](conf/locale/TRANSLATORS) 文件获取完整的翻译人员列表。 ## 授权许可 diff --git a/conf/locale/TRANSLATORS b/conf/locale/TRANSLATORS new file mode 100644 index 00000000000..a07e7d5e858 --- /dev/null +++ b/conf/locale/TRANSLATORS @@ -0,0 +1,3 @@ +# This file lists all individuals having contributed content to the translation. + +Thomas Fanninger \ No newline at end of file diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini index f82e834c2e7..d798f23eccc 100644 --- a/conf/locale/locale_en-US.ini +++ b/conf/locale/locale_en-US.ini @@ -208,6 +208,7 @@ enable_custom_avatar_helper = Enable this to disable fetch from Gravatar choose_new_avatar = Choose new avatar update_avatar = Update Avatar Setting uploaded_avatar_not_a_image = Uploaded file is not a image. +no_custom_avatar_available = No custom avatar available, cannot enable it. update_avatar_success = Your avatar setting has been updated successfully. change_password = Change Password diff --git a/gogs.go b/gogs.go index 4027659863b..60e53fb4ed2 100644 --- a/gogs.go +++ b/gogs.go @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.5.8.1121 Beta" +const APP_VER = "0.5.8.1122 Beta" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/user.go b/models/user.go index b0cc2ae1563..9eead462e24 100644 --- a/models/user.go +++ b/models/user.go @@ -140,10 +140,14 @@ func (u *User) ValidtePassword(passwd string) bool { return u.Passwd == newUser.Passwd } +// CustomAvatarPath returns user custom avatar file path. +func (u *User) CustomAvatarPath() string { + return filepath.Join(setting.AvatarUploadPath, com.ToStr(u.Id)) +} + // UploadAvatar saves custom avatar for user. // FIXME: splite uploads to different subdirs in case we have massive users. func (u *User) UploadAvatar(data []byte) error { - savePath := filepath.Join(setting.AvatarUploadPath, com.ToStr(u.Id)) u.UseCustomAvatar = true img, _, err := image.Decode(bytes.NewReader(data)) @@ -164,7 +168,7 @@ func (u *User) UploadAvatar(data []byte) error { } os.MkdirAll(setting.AvatarUploadPath, os.ModePerm) - fw, err := os.Create(savePath) + fw, err := os.Create(u.CustomAvatarPath()) if err != nil { sess.Rollback() return err diff --git a/routers/user/setting.go b/routers/user/setting.go index 7aeb349727e..304ddd362b7 100644 --- a/routers/user/setting.go +++ b/routers/user/setting.go @@ -89,9 +89,6 @@ func SettingsAvatar(ctx *middleware.Context, form auth.UploadAvatarForm) { defer ctx.Redirect(setting.AppSubUrl + "/user/settings") ctx.User.UseCustomAvatar = form.Enable - if err := models.UpdateUser(ctx.User); err != nil { - ctx.Flash.Error(err.Error()) - } if form.Avatar != nil { fr, err := form.Avatar.Open() @@ -113,7 +110,19 @@ func SettingsAvatar(ctx *middleware.Context, form auth.UploadAvatarForm) { ctx.Flash.Error(err.Error()) return } + } else { + // In case no avatar at all. + if form.Enable && !com.IsFile(ctx.User.CustomAvatarPath()) { + ctx.Flash.Error(ctx.Tr("settings.no_custom_avatar_available")) + return + } } + + if err := models.UpdateUser(ctx.User); err != nil { + ctx.Flash.Error(err.Error()) + return + } + ctx.Flash.Success(ctx.Tr("settings.update_avatar_success")) } diff --git a/templates/.VERSION b/templates/.VERSION index 5de719a0002..d2d39a12682 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.5.8.1121 Beta \ No newline at end of file +0.5.8.1122 Beta \ No newline at end of file