Browse Source

Sort repo topic labels by name (#24123)

Close #24077
tags/v1.20.0-rc0
wxiaoguang 1 year ago
parent
commit
2902d1e9d1
No account linked to committer's email address
3 changed files with 7 additions and 9 deletions
  1. 3
    1
      models/repo/topic.go
  2. 1
    6
      routers/web/repo/blame.go
  3. 3
    2
      web_src/js/features/repo-home.js

+ 3
- 1
models/repo/topic.go View File

@@ -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
}


+ 1
- 6
routers/web/repo/blame.go View File

@@ -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) {

+ 3
- 2
web_src/js/features/repo-home.js View File

@@ -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');
}
}
}

Loading…
Cancel
Save