summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortechknowlogick <matti@mdranta.net>2019-03-18 22:28:10 -0400
committerGitHub <noreply@github.com>2019-03-18 22:28:10 -0400
commitd1c982cb731a0744e2a8e0863b46ff9e99c99b63 (patch)
treefd6dc3e432f90e3cc4a5e132ef97f94633ce3149
parentba2f6a45c8ef44f74772456fc98c27faca058241 (diff)
downloadgitea-d1c982cb731a0744e2a8e0863b46ff9e99c99b63.tar.gz
gitea-d1c982cb731a0744e2a8e0863b46ff9e99c99b63.zip
Add bio field for user (#6113)
Fix #4339
-rw-r--r--models/user.go12
-rw-r--r--modules/auth/user_form.go1
-rw-r--r--options/locale/locale_en-US.ini1
-rw-r--r--routers/user/setting/profile.go1
-rw-r--r--templates/user/profile.tmpl6
-rw-r--r--templates/user/settings/profile.tmpl4
6 files changed, 19 insertions, 6 deletions
diff --git a/models/user.go b/models/user.go
index 1ed949355f..8fc15848c8 100644
--- a/models/user.go
+++ b/models/user.go
@@ -104,6 +104,7 @@ type User struct {
Rands string `xorm:"VARCHAR(10)"`
Salt string `xorm:"VARCHAR(10)"`
Language string `xorm:"VARCHAR(5)"`
+ Description string
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
UpdatedUnix util.TimeStamp `xorm:"INDEX updated"`
@@ -134,12 +135,11 @@ type User struct {
NumRepos int
// For organization
- Description string
- NumTeams int
- NumMembers int
- Teams []*Team `xorm:"-"`
- Members []*User `xorm:"-"`
- Visibility structs.VisibleType `xorm:"NOT NULL DEFAULT 0"`
+ NumTeams int
+ NumMembers int
+ Teams []*Team `xorm:"-"`
+ Members []*User `xorm:"-"`
+ Visibility structs.VisibleType `xorm:"NOT NULL DEFAULT 0"`
// Preferences
DiffViewStyle string `xorm:"NOT NULL DEFAULT ''"`
diff --git a/modules/auth/user_form.go b/modules/auth/user_form.go
index be0f9bf1bf..78dd75fa1d 100644
--- a/modules/auth/user_form.go
+++ b/modules/auth/user_form.go
@@ -201,6 +201,7 @@ type UpdateProfileForm struct {
Website string `binding:"ValidUrl;MaxSize(255)"`
Location string `binding:"MaxSize(50)"`
Language string `binding:"Size(5)"`
+ Description string `binding:"MaxSize(255)"`
}
// Validate validates the fields
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index 6662400ad9..06e4e2c552 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -334,6 +334,7 @@ following = Following
follow = Follow
unfollow = Unfollow
heatmap.loading = Loading Heatmap…
+user_bio = Biography
form.name_reserved = The username '%s' is reserved.
form.name_pattern_not_allowed = The pattern '%s' is not allowed in a username.
diff --git a/routers/user/setting/profile.go b/routers/user/setting/profile.go
index 09073498f8..96210b79f8 100644
--- a/routers/user/setting/profile.go
+++ b/routers/user/setting/profile.go
@@ -92,6 +92,7 @@ func ProfilePost(ctx *context.Context, form auth.UpdateProfileForm) {
ctx.User.Website = form.Website
ctx.User.Location = form.Location
ctx.User.Language = form.Language
+ ctx.User.Description = form.Description
if err := models.UpdateUserSetting(ctx.User); err != nil {
if _, ok := err.(models.ErrEmailAlreadyUsed); ok {
ctx.Flash.Error(ctx.Tr("form.email_been_used"))
diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl
index f65776bdfa..6170c6d130 100644
--- a/templates/user/profile.tmpl
+++ b/templates/user/profile.tmpl
@@ -34,6 +34,12 @@
<a target="_blank" rel="noopener noreferrer me" href="{{.Owner.Website}}">{{.Owner.Website}}</a>
</li>
{{end}}
+ {{if .Owner.Description}}
+ <li>
+ <i class="octicon octicon-info"></i>
+ <span>{{.Owner.Description}}</span>
+ </li>
+ {{end}}
{{range .OpenIDs}}
{{if .Show}}
<li>
diff --git a/templates/user/settings/profile.tmpl b/templates/user/settings/profile.tmpl
index 6a654fda70..995bdfd638 100644
--- a/templates/user/settings/profile.tmpl
+++ b/templates/user/settings/profile.tmpl
@@ -31,6 +31,10 @@
<input name="keep_email_private" type="checkbox" {{if .SignedUser.KeepEmailPrivate}}checked{{end}}>
</div>
</div>
+ <div class="field {{if .Err_Description}}error{{end}}">
+ <label for="description">{{$.i18n.Tr "user.user_bio"}}</label>
+ <textarea id="description" name="description" rows="2">{{.SignedUser.Description}}</textarea>
+ </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}}">