mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	@@ -139,6 +139,9 @@ repos = Repositories
 | 
				
			|||||||
users = Users
 | 
					users = Users
 | 
				
			||||||
organizations = Organizations
 | 
					organizations = Organizations
 | 
				
			||||||
search = Search
 | 
					search = Search
 | 
				
			||||||
 | 
					repo_no_results = There are no matched repositories found.
 | 
				
			||||||
 | 
					user_no_results = There are no matched users found.
 | 
				
			||||||
 | 
					org_no_results = There are no matched organizations found.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[auth]
 | 
					[auth]
 | 
				
			||||||
create_new_account = Create New Account
 | 
					create_new_account = Create New Account
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -139,6 +139,9 @@ repos=仓库
 | 
				
			|||||||
users=用户
 | 
					users=用户
 | 
				
			||||||
organizations=组织
 | 
					organizations=组织
 | 
				
			||||||
search=搜索
 | 
					search=搜索
 | 
				
			||||||
 | 
					repo_no_results = 没有匹配的仓库。
 | 
				
			||||||
 | 
					user_no_results = 没有匹配的用户。
 | 
				
			||||||
 | 
					org_no_results = 没有匹配的组织。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[auth]
 | 
					[auth]
 | 
				
			||||||
create_new_account=创建帐户
 | 
					create_new_account=创建帐户
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,6 +9,8 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"github.com/Unknwon/paginater"
 | 
						"github.com/Unknwon/paginater"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"bytes"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/models"
 | 
						"code.gitea.io/gitea/models"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/base"
 | 
						"code.gitea.io/gitea/modules/base"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/context"
 | 
						"code.gitea.io/gitea/modules/context"
 | 
				
			||||||
@@ -60,6 +62,14 @@ type RepoSearchOptions struct {
 | 
				
			|||||||
	TplName  base.TplName
 | 
						TplName  base.TplName
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var (
 | 
				
			||||||
 | 
						nullByte = []byte{0x00}
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func isKeywordValid(keyword string) bool {
 | 
				
			||||||
 | 
						return !bytes.Contains([]byte(keyword), nullByte)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// RenderRepoSearch render repositories search page
 | 
					// RenderRepoSearch render repositories search page
 | 
				
			||||||
func RenderRepoSearch(ctx *context.Context, opts *RepoSearchOptions) {
 | 
					func RenderRepoSearch(ctx *context.Context, opts *RepoSearchOptions) {
 | 
				
			||||||
	page := ctx.QueryInt("page")
 | 
						page := ctx.QueryInt("page")
 | 
				
			||||||
@@ -82,16 +92,18 @@ func RenderRepoSearch(ctx *context.Context, opts *RepoSearchOptions) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		count = opts.Counter(opts.Private)
 | 
							count = opts.Counter(opts.Private)
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		repos, count, err = models.SearchRepositoryByName(&models.SearchRepoOptions{
 | 
							if isKeywordValid(keyword) {
 | 
				
			||||||
			Keyword:  keyword,
 | 
								repos, count, err = models.SearchRepositoryByName(&models.SearchRepoOptions{
 | 
				
			||||||
			OrderBy:  opts.OrderBy,
 | 
									Keyword:  keyword,
 | 
				
			||||||
			Private:  opts.Private,
 | 
									OrderBy:  opts.OrderBy,
 | 
				
			||||||
			Page:     page,
 | 
									Private:  opts.Private,
 | 
				
			||||||
			PageSize: opts.PageSize,
 | 
									Page:     page,
 | 
				
			||||||
		})
 | 
									PageSize: opts.PageSize,
 | 
				
			||||||
		if err != nil {
 | 
								})
 | 
				
			||||||
			ctx.Handle(500, "SearchRepositoryByName", err)
 | 
								if err != nil {
 | 
				
			||||||
			return
 | 
									ctx.Handle(500, "SearchRepositoryByName", err)
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ctx.Data["Keyword"] = keyword
 | 
						ctx.Data["Keyword"] = keyword
 | 
				
			||||||
@@ -156,16 +168,18 @@ func RenderUserSearch(ctx *context.Context, opts *UserSearchOptions) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		count = opts.Counter()
 | 
							count = opts.Counter()
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		users, count, err = models.SearchUserByName(&models.SearchUserOptions{
 | 
							if isKeywordValid(keyword) {
 | 
				
			||||||
			Keyword:  keyword,
 | 
								users, count, err = models.SearchUserByName(&models.SearchUserOptions{
 | 
				
			||||||
			Type:     opts.Type,
 | 
									Keyword:  keyword,
 | 
				
			||||||
			OrderBy:  opts.OrderBy,
 | 
									Type:     opts.Type,
 | 
				
			||||||
			Page:     page,
 | 
									OrderBy:  opts.OrderBy,
 | 
				
			||||||
			PageSize: opts.PageSize,
 | 
									Page:     page,
 | 
				
			||||||
		})
 | 
									PageSize: opts.PageSize,
 | 
				
			||||||
		if err != nil {
 | 
								})
 | 
				
			||||||
			ctx.Handle(500, "SearchUserByName", err)
 | 
								if err != nil {
 | 
				
			||||||
			return
 | 
									ctx.Handle(500, "SearchUserByName", err)
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ctx.Data["Keyword"] = keyword
 | 
						ctx.Data["Keyword"] = keyword
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,8 @@
 | 
				
			|||||||
						    </div>
 | 
											    </div>
 | 
				
			||||||
						  </div>
 | 
											  </div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
 | 
										{{else}}
 | 
				
			||||||
 | 
											<div>{{$.i18n.Tr "explore.org_no_results"}}</div>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,5 +19,9 @@
 | 
				
			|||||||
			{{if .DescriptionHTML}}<p class="has-emoji">{{.DescriptionHTML}}</p>{{end}}
 | 
								{{if .DescriptionHTML}}<p class="has-emoji">{{.DescriptionHTML}}</p>{{end}}
 | 
				
			||||||
			<p class="time">{{$.i18n.Tr "org.repo_updated"}} {{TimeSince .Updated $.i18n.Lang}}</p>
 | 
								<p class="time">{{$.i18n.Tr "org.repo_updated"}} {{TimeSince .Updated $.i18n.Lang}}</p>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
						{{else}}
 | 
				
			||||||
 | 
						<div>
 | 
				
			||||||
 | 
							{{$.i18n.Tr "explore.repo_no_results"}}
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
	{{end}}
 | 
						{{end}}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,8 @@
 | 
				
			|||||||
						    </div>
 | 
											    </div>
 | 
				
			||||||
						  </div>
 | 
											  </div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
 | 
										{{else}}
 | 
				
			||||||
 | 
											<div>{{$.i18n.Tr "explore.user_no_results"}}</div>
 | 
				
			||||||
					{{end}}
 | 
										{{end}}
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user