diff --git a/models/repo_list.go b/models/repo_list.go index 883e3b98d..d13266f20 100644 --- a/models/repo_list.go +++ b/models/repo_list.go @@ -16,6 +16,18 @@ import ( // RepositoryList contains a list of repositories type RepositoryList []*Repository +func (repos RepositoryList) Len() int { + return len(repos) +} + +func (repos RepositoryList) Less(i, j int) bool { + return repos[i].FullName() < repos[j].FullName() +} + +func (repos RepositoryList) Swap(i, j int) { + repos[i], repos[j] = repos[j], repos[i] +} + // RepositoryListOfMap make list from values of map func RepositoryListOfMap(repoMap map[int64]*Repository) RepositoryList { return RepositoryList(valuesRepository(repoMap)) diff --git a/routers/user/home.go b/routers/user/home.go index c2c6a6701..581db850f 100644 --- a/routers/user/home.go +++ b/routers/user/home.go @@ -7,6 +7,7 @@ package user import ( "bytes" "fmt" + "sort" "github.com/Unknwon/com" "github.com/Unknwon/paginater" @@ -302,6 +303,7 @@ func Issues(ctx *context.Context) { } showRepos := models.RepositoryListOfMap(showReposMap) + sort.Sort(showRepos) if err = showRepos.LoadAttributes(); err != nil { ctx.Handle(500, "LoadAttributes", fmt.Errorf("%v", err)) return