Skip to content

Commit 50f7ce1

Browse files
update per feedback
1 parent 6e7fc93 commit 50f7ce1

File tree

7 files changed

+34
-30
lines changed

7 files changed

+34
-30
lines changed

models/user/badge.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ func GetUserBadges(ctx context.Context, u *User) ([]*Badge, int64, error) {
9393
// GetBadgeUsersOptions contains options for getting users with a specific badge
9494
type GetBadgeUsersOptions struct {
9595
db.ListOptions
96-
Badge *Badge
96+
BadgeSlug string
9797
}
9898

9999
// GetBadgeUsers returns the users that have a specific badge with pagination support.
@@ -102,7 +102,7 @@ func GetBadgeUsers(ctx context.Context, opts *GetBadgeUsersOptions) ([]*User, in
102102
Select("`user`.*").
103103
Join("INNER", "user_badge", "`user_badge`.user_id=user.id").
104104
Join("INNER", "badge", "`user_badge`.badge_id=badge.id").
105-
Where("badge.slug=?", opts.Badge.Slug)
105+
Where("badge.slug=?", opts.BadgeSlug)
106106

107107
if opts.Page > 0 {
108108
sess = db.SetSessionPagination(sess, opts)

routers/web/admin/badges.go

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,13 @@ func NewBadgePost(ctx *context.Context) {
8181

8282
if len(form.Slug) < 1 {
8383
ctx.Data["Err_Slug"] = true
84-
ctx.RenderWithErr(ctx.Tr("admin.badges.must_fill"), tplBadgeNew, &form)
84+
ctx.RenderWithErr(ctx.Tr("admin.badges.slug.must_fill"), tplBadgeNew, &form)
85+
return
86+
}
87+
88+
if len(form.Description) < 1 {
89+
ctx.Data["Err_Description"] = true
90+
ctx.RenderWithErr(ctx.Tr("admin.badges.description.must_fill"), tplBadgeNew, &form)
8591
return
8692
}
8793

@@ -100,7 +106,7 @@ func NewBadgePost(ctx *context.Context) {
100106
}
101107

102108
func prepareBadgeInfo(ctx *context.Context) *user_model.Badge {
103-
b, err := user_model.GetBadge(ctx, ctx.PathParam(":badge_slug"))
109+
b, err := user_model.GetBadge(ctx, ctx.PathParam("badge_slug"))
104110
if err != nil {
105111
if user_model.IsErrBadgeNotExist(err) {
106112
ctx.Redirect(setting.AppSubURL + "/-/admin/badges")
@@ -113,9 +119,9 @@ func prepareBadgeInfo(ctx *context.Context) *user_model.Badge {
113119

114120
opts := &user_model.GetBadgeUsersOptions{
115121
ListOptions: db.ListOptions{
116-
PageSize: setting.UI.User.RepoPagingNum,
122+
PageSize: setting.UI.Admin.UserPagingNum,
117123
},
118-
Badge: b,
124+
BadgeSlug: b.Slug,
119125
}
120126
users, count, err := user_model.GetBadgeUsers(ctx, opts)
121127
if err != nil {
@@ -192,12 +198,12 @@ func EditBadgePost(ctx *context.Context) {
192198
log.Trace("Badge updated by admin (%s): %s", ctx.Doer.Name, b.Slug)
193199

194200
ctx.Flash.Success(ctx.Tr("admin.badges.update_success"))
195-
ctx.Redirect(setting.AppSubURL + "/-/admin/badges/" + url.PathEscape(ctx.PathParam(":badge_slug")))
201+
ctx.Redirect(setting.AppSubURL + "/-/admin/badges/" + url.PathEscape(ctx.PathParam("badge_slug")))
196202
}
197203

198204
// DeleteBadge response for deleting a badge
199205
func DeleteBadge(ctx *context.Context) {
200-
b, err := user_model.GetBadge(ctx, ctx.PathParam(":badge_slug"))
206+
b, err := user_model.GetBadge(ctx, ctx.PathParam("badge_slug"))
201207
if err != nil {
202208
ctx.ServerError("GetBadge", err)
203209
return
@@ -215,21 +221,21 @@ func DeleteBadge(ctx *context.Context) {
215221
}
216222

217223
func BadgeUsers(ctx *context.Context) {
218-
ctx.Data["Title"] = ctx.Tr("admin.badges.users_with_badge", ctx.PathParam(":badge_slug"))
224+
ctx.Data["Title"] = ctx.Tr("admin.badges.users_with_badge", ctx.PathParam("badge_slug"))
219225
ctx.Data["PageIsAdminBadges"] = true
220226

221227
page := ctx.FormInt("page")
222228
if page <= 0 {
223229
page = 1
224230
}
225231

226-
badge := &user_model.Badge{Slug: ctx.PathParam(":badge_slug")}
232+
badge := &user_model.Badge{Slug: ctx.PathParam("badge_slug")}
227233
opts := &user_model.GetBadgeUsersOptions{
228234
ListOptions: db.ListOptions{
229235
Page: page,
230-
PageSize: setting.UI.User.RepoPagingNum,
236+
PageSize: setting.UI.Admin.UserPagingNum,
231237
},
232-
Badge: badge,
238+
BadgeSlug: badge.Slug,
233239
}
234240
users, count, err := user_model.GetBadgeUsers(ctx, opts)
235241
if err != nil {
@@ -239,7 +245,7 @@ func BadgeUsers(ctx *context.Context) {
239245

240246
ctx.Data["Users"] = users
241247
ctx.Data["Total"] = count
242-
ctx.Data["Page"] = context.NewPagination(int(count), setting.UI.User.RepoPagingNum, page, 5)
248+
ctx.Data["Page"] = context.NewPagination(int(count), setting.UI.Admin.UserPagingNum, page, 5)
243249

244250
ctx.HTML(http.StatusOK, tplBadgeUsers)
245251
}
@@ -259,7 +265,7 @@ func BadgeUsersPost(ctx *context.Context) {
259265
return
260266
}
261267

262-
if err = user_model.AddUserBadge(ctx, u, &user_model.Badge{Slug: ctx.PathParam(":badge_slug")}); err != nil {
268+
if err = user_model.AddUserBadge(ctx, u, &user_model.Badge{Slug: ctx.PathParam("badge_slug")}); err != nil {
263269
if user_model.IsErrBadgeNotExist(err) {
264270
ctx.Flash.Error(ctx.Tr("admin.badges.not_found"))
265271
} else {
@@ -283,18 +289,18 @@ func DeleteBadgeUser(ctx *context.Context) {
283289
return
284290
}
285291
}
286-
if err := user_model.RemoveUserBadge(ctx, user, &user_model.Badge{Slug: ctx.PathParam(":badge_slug")}); err == nil {
292+
if err := user_model.RemoveUserBadge(ctx, user, &user_model.Badge{Slug: ctx.PathParam("badge_slug")}); err == nil {
287293
ctx.Flash.Success(ctx.Tr("admin.badges.user_remove_success"))
288294
} else {
289-
ctx.Flash.Error("DeleteBadgeUser: " + err.Error())
295+
ctx.ServerError("RemoveUserBadge", err)
290296
}
291297

292-
ctx.JSONRedirect(fmt.Sprintf("%s/-/admin/badges/%s/users", setting.AppSubURL, ctx.PathParam(":badge_slug")))
298+
ctx.JSONRedirect(fmt.Sprintf("%s/-/admin/badges/%s/users", setting.AppSubURL, ctx.PathParam("badge_slug")))
293299
}
294300

295301
// ViewBadgeUsers render badge's users page
296302
func ViewBadgeUsers(ctx *context.Context) {
297-
badge, err := user_model.GetBadge(ctx, ctx.PathParam(":slug"))
303+
badge, err := user_model.GetBadge(ctx, ctx.PathParam("badge_slug"))
298304
if err != nil {
299305
ctx.ServerError("GetBadge", err)
300306
return
@@ -308,9 +314,9 @@ func ViewBadgeUsers(ctx *context.Context) {
308314
opts := &user_model.GetBadgeUsersOptions{
309315
ListOptions: db.ListOptions{
310316
Page: page,
311-
PageSize: setting.UI.User.RepoPagingNum,
317+
PageSize: setting.UI.Admin.UserPagingNum,
312318
},
313-
Badge: badge,
319+
BadgeSlug: badge.Slug,
314320
}
315321
users, count, err := user_model.GetBadgeUsers(ctx, opts)
316322
if err != nil {
@@ -322,6 +328,6 @@ func ViewBadgeUsers(ctx *context.Context) {
322328
ctx.Data["Badge"] = badge
323329
ctx.Data["Users"] = users
324330
ctx.Data["Total"] = count
325-
ctx.Data["Pages"] = context.NewPagination(int(count), setting.UI.User.RepoPagingNum, page, 5)
331+
ctx.Data["Pages"] = context.NewPagination(int(count), setting.UI.Admin.UserPagingNum, page, 5)
326332
ctx.HTML(http.StatusOK, tplBadgeUsers)
327333
}

services/forms/admin.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ type AdminCreateUserForm struct {
2828
// AdminCreateBadgeForm form for admin to create badge
2929
type AdminCreateBadgeForm struct {
3030
Slug string `binding:"Required;Slug"`
31-
Description string
31+
Description string `binding:"Required"`
3232
ImageURL string `binding:"ValidImageUrl"`
3333
}
3434

services/user/badge.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func GetBadgeUsers(ctx context.Context, badge *user_model.Badge, page, pageSize
5252
Page: page,
5353
PageSize: pageSize,
5454
},
55-
Badge: badge,
55+
BadgeSlug: badge.Slug,
5656
}
5757
return user_model.GetBadgeUsers(ctx, opts)
5858
}

templates/admin/badge/edit.tmpl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin edit user")}}
1+
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin edit badge")}}
22
<div class="admin-setting-content">
33
<h4 class="ui top attached header">
44
{{ctx.Locale.Tr "admin.badges.edit_badge"}}
55
</h4>
66
<div class="ui attached segment">
77
<form class="ui form" action="./edit" method="post">
8-
{{template "base/disable_form_autofill"}}
98
{{.CsrfTokenHtml}}
109

1110
<div class="non-local field {{if .Err_Slug}}error{{end}}" disabled=disabled>

templates/admin/badge/new.tmpl

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
1-
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin new user")}}
1+
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin new badge")}}
22
<div class="admin-setting-content">
33
<h4 class="ui top attached header">
44
{{ctx.Locale.Tr "admin.badges.new_badge"}}
55
</h4>
66
<div class="ui attached segment">
77
<form class="ui form" action="{{.Link}}" method="post">
8-
{{template "base/disable_form_autofill"}}
98
{{.CsrfTokenHtml}}
109

1110
<div class="required non-local field {{if .Err_Slug}}error{{end}}">
1211
<label for="slug">{{ctx.Locale.Tr "admin.badges.slug"}}</label>
1312
<input autofocus required id="slug" name="slug" value="{{.slug}}">
1413
</div>
15-
<div class="field {{if .Err_Description}}error{{end}}">
14+
<div class="required field {{if .Err_Description}}error{{end}}">
1615
<label for="description">{{ctx.Locale.Tr "admin.badges.description"}}</label>
17-
<textarea id="description" type="text" name="description" rows="2">{{.description}}</textarea>
16+
<textarea id="description" type="text" name="description" rows="2" required>{{.description}}</textarea>
1817
</div>
1918
<div class="field {{if .Err_ImageURL}}error{{end}}">
2019
<label for="image_url">{{ctx.Locale.Tr "admin.badges.image_url"}}</label>

templates/admin/badge/users.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin user")}}
1+
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin badge")}}
22
<div class="admin-setting-content">
33
<h4 class="ui top attached header">
44
{{.Title}}

0 commit comments

Comments
 (0)