diff options
author | Unknown <joe2010xtmf@163.com> | 2014-03-23 06:27:01 -0400 |
---|---|---|
committer | Unknown <joe2010xtmf@163.com> | 2014-03-23 06:27:01 -0400 |
commit | 1eb078d0a8c5424de9512d810ab2fbf21f59ff78 (patch) | |
tree | de429367cb1efd971d6d6723882dc793fe05a733 /modules | |
parent | 24630e0c9b92bcd9fdeb07ce15c3dd2cfc459a52 (diff) | |
download | gitea-1eb078d0a8c5424de9512d810ab2fbf21f59ff78.tar.gz gitea-1eb078d0a8c5424de9512d810ab2fbf21f59ff78.zip |
Fix action
Diffstat (limited to 'modules')
-rw-r--r-- | modules/base/tool.go | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/modules/base/tool.go b/modules/base/tool.go index c7ee2ee857..edf7a953c9 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -471,6 +471,7 @@ type Actioner interface { GetOpType() int GetActUserName() string GetRepoName() string + GetBranch() string GetContent() string } @@ -493,25 +494,39 @@ const ( TPL_COMMIT_REPO_LI = `<div><img id="gogs-user-avatar-commit" src="%s?s=16" alt="user-avatar" title="username"/> <a href="/%s/%s/commit/%s">%s</a> %s</div>` ) +type PushCommits struct { + Len int + Commits [][]string +} + // ActionDesc accepts int that represents action operation type // and returns the description. func ActionDesc(act Actioner, avatarLink string) string { actUserName := act.GetActUserName() repoName := act.GetRepoName() + branch := act.GetBranch() content := act.GetContent() switch act.GetOpType() { case 1: // Create repository. return fmt.Sprintf(TPL_CREATE_REPO, actUserName, actUserName, actUserName, repoName, repoName) case 5: // Commit repository. - var commits [][]string - if err := json.Unmarshal([]byte(content), &commits); err != nil { + var push *PushCommits + if err := json.Unmarshal([]byte(content), &push); err != nil { return err.Error() } buf := bytes.NewBuffer([]byte("\n")) - for _, commit := range commits { + max := 3 + count := len(push.Commits) + if count < max { + max = count + } + for _, commit := range push.Commits[:max] { buf.WriteString(fmt.Sprintf(TPL_COMMIT_REPO_LI, avatarLink, actUserName, repoName, commit[0], commit[0][:7], commit[1]) + "\n") } - return fmt.Sprintf(TPL_COMMIT_REPO, actUserName, actUserName, actUserName, repoName, "master", "master", actUserName, repoName, actUserName, repoName, + if count > max { + buf.WriteString(fmt.Sprintf(`<div><a href="/%s/%s/commits">%d other commits >></a></div>`, actUserName, repoName, count-max)) + } + return fmt.Sprintf(TPL_COMMIT_REPO, actUserName, actUserName, actUserName, repoName, branch, branch, actUserName, repoName, actUserName, repoName, buf.String()) default: return "invalid type" |