]> source.dussan.org Git - gitea.git/commitdiff
Push feed
authorUnknown <joe2010xtmf@163.com>
Sun, 16 Mar 2014 15:30:35 +0000 (11:30 -0400)
committerUnknown <joe2010xtmf@163.com>
Sun, 16 Mar 2014 15:30:35 +0000 (11:30 -0400)
models/action.go
modules/base/tool.go

index ceee9997a45434646afe33813f8b83cd4d13906e..978e805c8836818b5ce20f5ee47fa8eb3f1dea35 100644 (file)
@@ -44,6 +44,10 @@ func (a Action) GetRepoName() string {
        return a.RepoName
 }
 
+func (a Action) GetContent() string {
+       return a.Content
+}
+
 // CommitRepoAction records action for commit repository.
 func CommitRepoAction(userId int64, userName string,
        repoId int64, repoName string, commits [][]string) error {
index 3f8b8ffa8499d840c0b0cc21aff15b46e4cdc3a1..5746cc8fb270a1a1255c7665e1f92076e74115fb 100644 (file)
@@ -7,6 +7,7 @@ package base
 import (
        "crypto/md5"
        "encoding/hex"
+       "encoding/json"
        "fmt"
        "math"
        "strings"
@@ -235,6 +236,7 @@ type Actioner interface {
        GetOpType() int
        GetActUserName() string
        GetRepoName() string
+       GetContent() string
 }
 
 // ActionIcon accepts a int that represents action operation type
@@ -243,13 +245,19 @@ func ActionIcon(opType int) string {
        switch opType {
        case 1: // Create repository.
                return "plus-circle"
+       case 5: // Commit repository.
+               return "arrow-circle-o-right"
        default:
                return "invalid type"
        }
 }
 
 const (
-       CreateRepoTpl = `<a href="/user/%s">%s</a> created repository <a href="/%s/%s">%s</a>`
+       TPL_CREATE_REPO = `<a href="/user/%s">%s</a> created repository <a href="/%s/%s">%s</a>`
+       TPL_COMMIT_REPO = `<a href="/user/%s">%s</a> pushed to <a href="/%s/%s/tree/%s">%s</a> at <a href="/%s/%s">%s/%s</a>
+<ul>
+       <li><a href="/%s/%s/commit/%s">%s</a> %s</li>   
+</ul>`
 )
 
 // ActionDesc accepts int that represents action operation type
@@ -257,9 +265,17 @@ const (
 func ActionDesc(act Actioner) string {
        actUserName := act.GetActUserName()
        repoName := act.GetRepoName()
+       content := act.GetContent()
        switch act.GetOpType() {
        case 1: // Create repository.
-               return fmt.Sprintf(CreateRepoTpl, actUserName, actUserName, actUserName, repoName, repoName)
+               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 {
+                       return err.Error()
+               }
+               return fmt.Sprintf(TPL_COMMIT_REPO, actUserName, actUserName, actUserName, repoName, "master", "master", actUserName, repoName, actUserName, repoName,
+                       actUserName, repoName, commits[0][0], commits[0][0][:7], commits[0][1])
        default:
                return "invalid type"
        }