summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--models/repo.go3
-rw-r--r--modules/base/template.go19
-rw-r--r--templates/repo/commits.tmpl5
-rw-r--r--web.go4
4 files changed, 28 insertions, 3 deletions
diff --git a/models/repo.go b/models/repo.go
index c37fb4de20..1331bbf450 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -5,6 +5,7 @@
package models
import (
+ "container/list"
"errors"
"fmt"
"io/ioutil"
@@ -601,7 +602,7 @@ func GetLastestCommit(userName, repoName string) (*Commit, error) {
}*/
// GetCommits returns all commits of given branch of repository.
-func GetCommits(userName, reposName, branchname string) ([]*git.Commit, error) {
+func GetCommits(userName, reposName, branchname string) (*list.List, error) {
repo, err := git.OpenRepository(RepoPath(userName, reposName))
if err != nil {
return nil, err
diff --git a/modules/base/template.go b/modules/base/template.go
index 4517cd47aa..db79340e75 100644
--- a/modules/base/template.go
+++ b/modules/base/template.go
@@ -5,6 +5,7 @@
package base
import (
+ "container/list"
"html/template"
)
@@ -12,6 +13,23 @@ func Str2html(raw string) template.HTML {
return template.HTML(raw)
}
+func Range(l int) []int {
+ return make([]int, l)
+}
+
+func List(l *list.List) chan interface{} {
+ e := l.Front()
+ c := make(chan interface{})
+ go func() {
+ for e != nil {
+ c <- e.Value
+ e = e.Next()
+ }
+ close(c)
+ }()
+ return c
+}
+
var TemplateFuncs template.FuncMap = map[string]interface{}{
"AppName": func() string {
return AppName
@@ -30,4 +48,5 @@ var TemplateFuncs template.FuncMap = map[string]interface{}{
"ActionIcon": ActionIcon,
"ActionDesc": ActionDesc,
"DateFormat": DateFormat,
+ "List": List,
}
diff --git a/templates/repo/commits.tmpl b/templates/repo/commits.tmpl
index 9190a030a3..4bffb9daf7 100644
--- a/templates/repo/commits.tmpl
+++ b/templates/repo/commits.tmpl
@@ -5,8 +5,9 @@
<div id="gogs-body" class="container">
<div id="gogs-commits">
<ul>
- {{range .Commits}}
- <li>{{.Committer.Name}} - {{.Id}} - {{.Message}} - {{.Committer.When}}</li>
+ {{$r := List .Commits}}
+ {{range $r}}
+ <li>{{.Committer.Name}} - {{.Id}} - {{.Message}} - {{.Committer.When}}</li>
{{end}}
</ul>
</div>
diff --git a/web.go b/web.go
index ca504ea560..3ca93f307d 100644
--- a/web.go
+++ b/web.go
@@ -34,6 +34,10 @@ gogs web`,
Flags: []cli.Flag{},
}
+func Range(l int) []int {
+ return make([]int, l)
+}
+
func runWeb(*cli.Context) {
log.Info("%s %s", base.AppName, base.AppVer)