|  | @@ -5,7 +5,6 @@
 | 
	
		
			
				|  |  |  package base
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import (
 | 
	
		
			
				|  |  | -	"bytes"
 | 
	
		
			
				|  |  |  	"container/list"
 | 
	
		
			
				|  |  |  	"encoding/json"
 | 
	
		
			
				|  |  |  	"errors"
 | 
	
	
		
			
				|  | @@ -107,7 +106,6 @@ var TemplateFuncs template.FuncMap = map[string]interface{}{
 | 
	
		
			
				|  |  |  		return a + b
 | 
	
		
			
				|  |  |  	},
 | 
	
		
			
				|  |  |  	"ActionIcon": ActionIcon,
 | 
	
		
			
				|  |  | -	"ActionDesc": ActionDesc,
 | 
	
		
			
				|  |  |  	"DateFormat": DateFormat,
 | 
	
		
			
				|  |  |  	"List":       List,
 | 
	
		
			
				|  |  |  	"Mail2Domain": func(mail string) string {
 | 
	
	
		
			
				|  | @@ -162,19 +160,6 @@ func ActionIcon(opType int) string {
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -// FIXME: Legacy
 | 
	
		
			
				|  |  | -const (
 | 
	
		
			
				|  |  | -	TPL_CREATE_REPO    = `<a href="%s/user/%s">%s</a> created repository <a href="%s">%s</a>`
 | 
	
		
			
				|  |  | -	TPL_COMMIT_REPO    = `<a href="%s/user/%s">%s</a> pushed to <a href="%s/src/%s">%s</a> at <a href="%s">%s</a>%s`
 | 
	
		
			
				|  |  | -	TPL_COMMIT_REPO_LI = `<div><img src="%s?s=16" alt="user-avatar"/> <a href="%s/commit/%s" rel="nofollow">%s</a> %s</div>`
 | 
	
		
			
				|  |  | -	TPL_CREATE_ISSUE   = `<a href="%s/user/%s">%s</a> opened issue <a href="%s/issues/%s">%s#%s</a>
 | 
	
		
			
				|  |  | -<div><img src="%s?s=16" alt="user-avatar"/> %s</div>`
 | 
	
		
			
				|  |  | -	TPL_TRANSFER_REPO = `<a href="%s/user/%s">%s</a> transfered repository <code>%s</code> to <a href="%s">%s</a>`
 | 
	
		
			
				|  |  | -	TPL_PUSH_TAG      = `<a href="%s/user/%s">%s</a> pushed tag <a href="%s/src/%s" rel="nofollow">%s</a> at <a href="%s">%s</a>`
 | 
	
		
			
				|  |  | -	TPL_COMMENT_ISSUE = `<a href="%s/user/%s">%s</a> commented on issue <a href="%s/issues/%s">%s#%s</a>
 | 
	
		
			
				|  |  | -<div><img src="%s?s=16" alt="user-avatar"/> %s</div>`
 | 
	
		
			
				|  |  | -)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  type PushCommit struct {
 | 
	
		
			
				|  |  |  	Sha1        string
 | 
	
		
			
				|  |  |  	Message     string
 | 
	
	
		
			
				|  | @@ -183,8 +168,9 @@ type PushCommit struct {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  type PushCommits struct {
 | 
	
		
			
				|  |  | -	Len     int
 | 
	
		
			
				|  |  | -	Commits []*PushCommit
 | 
	
		
			
				|  |  | +	Len        int
 | 
	
		
			
				|  |  | +	Commits    []*PushCommit
 | 
	
		
			
				|  |  | +	CompareUrl string
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func ActionContent2Commits(act Actioner) *PushCommits {
 | 
	
	
		
			
				|  | @@ -195,52 +181,6 @@ func ActionContent2Commits(act Actioner) *PushCommits {
 | 
	
		
			
				|  |  |  	return push
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -// FIXME: Legacy
 | 
	
		
			
				|  |  | -// ActionDesc accepts int that represents action operation type
 | 
	
		
			
				|  |  | -// and returns the description.
 | 
	
		
			
				|  |  | -func ActionDesc(act Actioner) string {
 | 
	
		
			
				|  |  | -	actUserName := act.GetActUserName()
 | 
	
		
			
				|  |  | -	email := act.GetActEmail()
 | 
	
		
			
				|  |  | -	repoUserName := act.GetRepoUserName()
 | 
	
		
			
				|  |  | -	repoName := act.GetRepoName()
 | 
	
		
			
				|  |  | -	repoLink := repoUserName + "/" + repoName
 | 
	
		
			
				|  |  | -	branch := act.GetBranch()
 | 
	
		
			
				|  |  | -	content := act.GetContent()
 | 
	
		
			
				|  |  | -	switch act.GetOpType() {
 | 
	
		
			
				|  |  | -	case 1: // Create repository.
 | 
	
		
			
				|  |  | -		return fmt.Sprintf(TPL_CREATE_REPO, setting.AppSubUrl, actUserName, actUserName, repoLink, repoName)
 | 
	
		
			
				|  |  | -	case 5: // Commit repository.
 | 
	
		
			
				|  |  | -		var push *PushCommits
 | 
	
		
			
				|  |  | -		if err := json.Unmarshal([]byte(content), &push); err != nil {
 | 
	
		
			
				|  |  | -			return err.Error()
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		buf := bytes.NewBuffer([]byte("\n"))
 | 
	
		
			
				|  |  | -		for _, commit := range push.Commits {
 | 
	
		
			
				|  |  | -			buf.WriteString(fmt.Sprintf(TPL_COMMIT_REPO_LI, AvatarLink(commit.AuthorEmail), repoLink, commit.Sha1, commit.Sha1[:7], commit.Message) + "\n")
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		if push.Len > 3 {
 | 
	
		
			
				|  |  | -			buf.WriteString(fmt.Sprintf(`<div><a href="{{AppRootSubUrl}}/%s/%s/commits/%s" rel="nofollow">%d other commits >></a></div>`, actUserName, repoName, branch, push.Len))
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		return fmt.Sprintf(TPL_COMMIT_REPO, setting.AppSubUrl, actUserName, actUserName, repoLink, branch, branch, repoLink, repoLink,
 | 
	
		
			
				|  |  | -			buf.String())
 | 
	
		
			
				|  |  | -	case 6: // Create issue.
 | 
	
		
			
				|  |  | -		infos := strings.SplitN(content, "|", 2)
 | 
	
		
			
				|  |  | -		return fmt.Sprintf(TPL_CREATE_ISSUE, setting.AppSubUrl, actUserName, actUserName, repoLink, infos[0], repoLink, infos[0],
 | 
	
		
			
				|  |  | -			AvatarLink(email), infos[1])
 | 
	
		
			
				|  |  | -	case 8: // Transfer repository.
 | 
	
		
			
				|  |  | -		newRepoLink := content + "/" + repoName
 | 
	
		
			
				|  |  | -		return fmt.Sprintf(TPL_TRANSFER_REPO, setting.AppSubUrl, actUserName, actUserName, repoLink, newRepoLink, newRepoLink)
 | 
	
		
			
				|  |  | -	case 9: // Push tag.
 | 
	
		
			
				|  |  | -		return fmt.Sprintf(TPL_PUSH_TAG, setting.AppSubUrl, actUserName, actUserName, repoLink, branch, branch, repoLink, repoLink)
 | 
	
		
			
				|  |  | -	case 10: // Comment issue.
 | 
	
		
			
				|  |  | -		infos := strings.SplitN(content, "|", 2)
 | 
	
		
			
				|  |  | -		return fmt.Sprintf(TPL_COMMENT_ISSUE, setting.AppSubUrl, actUserName, actUserName, repoLink, infos[0], repoLink, infos[0],
 | 
	
		
			
				|  |  | -			AvatarLink(email), infos[1])
 | 
	
		
			
				|  |  | -	default:
 | 
	
		
			
				|  |  | -		return "invalid type"
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  func DiffTypeToStr(diffType int) string {
 | 
	
		
			
				|  |  |  	diffTypes := map[int]string{
 | 
	
		
			
				|  |  |  		1: "add", 2: "modify", 3: "del",
 |