diff --git a/routers/web/devtest/devtest.go b/routers/web/devtest/devtest.go
index 7b1d2d1271..c9964eac45 100644
--- a/routers/web/devtest/devtest.go
+++ b/routers/web/devtest/devtest.go
@@ -181,19 +181,6 @@ func prepareMockDataRelativeTime(ctx *context.Context) {
ctx.Data["TimeFuture1y"] = now.Add(366 * 24 * time.Hour)
}
-func prepareMockDataAvatar(ctx *context.Context) {
- mockUsers, _ := db.Find[user_model.User](ctx, user_model.SearchUserOptions{ListOptions: db.ListOptions{PageSize: 1}})
- ctx.Data["MockUser"] = mockUsers[0]
- ctx.Data["AvatarSizes"] = []int{16, 20, 24, 28, 32, 40, 48, 64, 100, 128}
- ctx.Data["SampleEmails"] = []string{
- "alice@example.com",
- "bob@example.org",
- "charlie@test.io",
- "devtest@gitea.io",
- "noreply@example.com",
- }
-}
-
func prepareMockDataIconGallery(ctx *context.Context) {
allNames := svg.DiscoveredIconNames()
grouped := map[string][]string{}
@@ -219,8 +206,6 @@ func prepareMockData(ctx *context.Context) {
prepareMockDataBadgeActionsSvg(ctx)
case "/devtest/relative-time":
prepareMockDataRelativeTime(ctx)
- case "/devtest/avatar":
- prepareMockDataAvatar(ctx)
case "/devtest/icon-gallery":
prepareMockDataIconGallery(ctx)
}
diff --git a/templates/devtest/avatar.tmpl b/templates/devtest/avatar.tmpl
deleted file mode 100644
index 3c48675f63..0000000000
--- a/templates/devtest/avatar.tmpl
+++ /dev/null
@@ -1,83 +0,0 @@
-{{template "devtest/devtest-header"}}
-
-
Avatar
-
-
Sizes (via AvatarByEmail)
-
Using ctx.AvatarUtils.AvatarByEmail at various pixel sizes:
-
- {{range $size := .AvatarSizes}}
-
- {{ctx.AvatarUtils.AvatarByEmail "devtest@example.com" "Dev Test" $size}}
- {{$size}}px
-
- {{end}}
-
-
-
User Avatars
-
Using ctx.AvatarUtils.Avatar with a real user and with nil (fallback):
-
-
- {{ctx.AvatarUtils.Avatar .MockUser 28}}
- User (28px)
-
-
- {{ctx.AvatarUtils.Avatar .MockUser 40}}
- User (40px)
-
-
- {{ctx.AvatarUtils.Avatar .MockUser 100}}
- User (100px)
-
-
- {{ctx.AvatarUtils.Avatar nil 28}}
- nil fallback (28px)
-
-
- {{ctx.AvatarUtils.Avatar nil 40}}
- nil fallback (40px)
-
-
-
-
Custom CSS Classes
-
-
- {{ctx.AvatarUtils.Avatar .MockUser 28 "ui avatar tw-align-middle"}}
- default class
-
-
- {{ctx.AvatarUtils.Avatar .MockUser 28 "ui avatar tw-align-middle tw-rounded-full"}}
- tw-rounded-full
-
-
-
-
Inline with Text
-
-
{{ctx.AvatarUtils.Avatar .MockUser 20 "ui avatar tw-align-middle"}} {{.MockUser.Name}} opened this issue
-
-
- {{ctx.AvatarUtils.AvatarByEmail "user1@example.com" "User One" 16}} User One and {{ctx.AvatarUtils.AvatarByEmail "user2@example.com" "User Two" 16}} User Two
-
-
-
Avatar with Link (typical pattern)
-
-
-
Avatar Upload Cropper
-
The cropper requires index.js (global init). The HTML structure is shown below for reference:
-
- {{template "shared/avatar_upload_crop" dict "LabelText" "Choose an avatar"}}
-
-
-
Multiple Email Avatars (gravatar hashing)
-
Different emails produce different fallback avatars:
-
- {{range $email := .SampleEmails}}
-
- {{ctx.AvatarUtils.AvatarByEmail $email $email 28}}
- {{$email}}
-
- {{end}}
-
-
-{{template "devtest/devtest-footer"}}