mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	| @@ -194,14 +194,16 @@ func (opts *FindTopicOptions) toConds() builder.Cond { | ||||
| // FindTopics retrieves the topics via FindTopicOptions | ||||
| func FindTopics(opts *FindTopicOptions) ([]*Topic, int64, error) { | ||||
| 	sess := db.GetEngine(db.DefaultContext).Select("topic.*").Where(opts.toConds()) | ||||
| 	orderBy := "topic.repo_count DESC" | ||||
| 	if opts.RepoID > 0 { | ||||
| 		sess.Join("INNER", "repo_topic", "repo_topic.topic_id = topic.id") | ||||
| 		orderBy = "topic.name" // when render topics for a repo, it's better to sort them by name, to get consistent result | ||||
| 	} | ||||
| 	if opts.PageSize != 0 && opts.Page != 0 { | ||||
| 		sess = db.SetSessionPagination(sess, opts) | ||||
| 	} | ||||
| 	topics := make([]*Topic, 0, 10) | ||||
| 	total, err := sess.Desc("topic.repo_count").FindAndCount(&topics) | ||||
| 	total, err := sess.OrderBy(orderBy).FindAndCount(&topics) | ||||
| 	return topics, total, err | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -12,7 +12,6 @@ import ( | ||||
|  | ||||
| 	repo_model "code.gitea.io/gitea/models/repo" | ||||
| 	user_model "code.gitea.io/gitea/models/user" | ||||
| 	"code.gitea.io/gitea/modules/base" | ||||
| 	"code.gitea.io/gitea/modules/charset" | ||||
| 	"code.gitea.io/gitea/modules/context" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| @@ -23,10 +22,6 @@ import ( | ||||
| 	"code.gitea.io/gitea/modules/util" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	tplBlame base.TplName = "repo/home" | ||||
| ) | ||||
|  | ||||
| type blameRow struct { | ||||
| 	RowNumber      int | ||||
| 	Avatar         gotemplate.HTML | ||||
| @@ -140,7 +135,7 @@ func RefBlame(ctx *context.Context) { | ||||
|  | ||||
| 	renderBlame(ctx, blameParts, commitNames, previousCommits) | ||||
|  | ||||
| 	ctx.HTML(http.StatusOK, tplBlame) | ||||
| 	ctx.HTML(http.StatusOK, tplRepoHome) | ||||
| } | ||||
|  | ||||
| func processBlameParts(ctx *context.Context, blameParts []git.BlamePart) (map[string]*user_model.UserCommit, map[string]string) { | ||||
|   | ||||
| @@ -41,6 +41,7 @@ export function initRepoTopicBar() { | ||||
|         viewDiv.children('.topic').remove(); | ||||
|         if (topics.length) { | ||||
|           const topicArray = topics.split(','); | ||||
|           topicArray.sort(); | ||||
|           for (let i = 0; i < topicArray.length; i++) { | ||||
|             const link = $('<a class="ui repo-topic large label topic"></a>'); | ||||
|             link.attr('href', `${appSubUrl}/explore/repos?q=${encodeURIComponent(topicArray[i])}&topic=1`); | ||||
| @@ -57,12 +58,12 @@ export function initRepoTopicBar() { | ||||
|           topicPrompts.formatPrompt = xhr.responseJSON.message; | ||||
|  | ||||
|           const {invalidTopics} = xhr.responseJSON; | ||||
|           const topicLables = topicDropdown.children('a.ui.label'); | ||||
|           const topicLabels = topicDropdown.children('a.ui.label'); | ||||
|  | ||||
|           for (const [index, value] of topics.split(',').entries()) { | ||||
|             for (let i = 0; i < invalidTopics.length; i++) { | ||||
|               if (invalidTopics[i] === value) { | ||||
|                 topicLables.eq(index).removeClass('green').addClass('red'); | ||||
|                 topicLabels.eq(index).removeClass('green').addClass('red'); | ||||
|               } | ||||
|             } | ||||
|           } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user