mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	Only do counting when count_only=true for repo dashboard (#29884)
Ref: #29878
This commit is contained in:
		| @@ -622,26 +622,31 @@ func SearchRepo(ctx *context.Context) { | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	var err error | ||||
| 	// To improve performance when only the count is requested | ||||
| 	if ctx.FormBool("count_only") { | ||||
| 		if count, err := repo_model.CountRepository(ctx, opts); err != nil { | ||||
| 			log.Error("CountRepository: %v", err) | ||||
| 			ctx.JSON(http.StatusInternalServerError, nil) // frontend JS doesn't handle error response (same as below) | ||||
| 		} else { | ||||
| 			ctx.SetTotalCountHeader(count) | ||||
| 			ctx.JSONOK() | ||||
| 		} | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	repos, count, err := repo_model.SearchRepository(ctx, opts) | ||||
| 	if err != nil { | ||||
| 		ctx.JSON(http.StatusInternalServerError, api.SearchError{ | ||||
| 			OK:    false, | ||||
| 			Error: err.Error(), | ||||
| 		}) | ||||
| 		log.Error("SearchRepository: %v", err) | ||||
| 		ctx.JSON(http.StatusInternalServerError, nil) | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	ctx.SetTotalCountHeader(count) | ||||
|  | ||||
| 	// To improve performance when only the count is requested | ||||
| 	if ctx.FormBool("count_only") { | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	latestCommitStatuses, err := commitstatus_service.FindReposLastestCommitStatuses(ctx, repos) | ||||
| 	if err != nil { | ||||
| 		log.Error("FindReposLastestCommitStatuses: %v", err) | ||||
| 		ctx.JSON(http.StatusInternalServerError, nil) | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -235,7 +235,7 @@ const sfc = { | ||||
|         if (!this.reposTotalCount) { | ||||
|           const totalCountSearchURL = `${this.subUrl}/repo/search?count_only=1&uid=${this.uid}&team_id=${this.teamId}&q=&page=1&mode=`; | ||||
|           response = await GET(totalCountSearchURL); | ||||
|           this.reposTotalCount = response.headers.get('X-Total-Count'); | ||||
|           this.reposTotalCount = response.headers.get('X-Total-Count') ?? '?'; | ||||
|         } | ||||
|  | ||||
|         response = await GET(searchedURL); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 wxiaoguang
					wxiaoguang