Browse Source

Merge branch 'master' of https://github.com/gogits/gogs

FuXiaoHei 11 years ago
parent
commit
035facc564
9 changed files with 44 additions and 22 deletions
  1. 2 0
      conf/mysql.sql
  2. 1 1
      gogs.go
  3. 10 5
      models/action.go
  4. 13 4
      modules/base/tool.go
  5. 2 1
      routers/repo/issue.go
  6. 3 5
      routers/repo/repo.go
  7. 1 1
      routers/user/user.go
  8. 1 2
      templates/user/profile.tmpl
  9. 11 3
      update.go

+ 2 - 0
conf/mysql.sql

@@ -0,0 +1,2 @@
+DROP DATABASE gogs;
+CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8 COLLATE utf8_general_ci;

+ 1 - 1
gogs.go

@@ -19,7 +19,7 @@ import (
 // Test that go1.2 tag above is included in builds. main.go refers to this definition.
 const go12tag = true
 
-const APP_VER = "0.1.9.0328 Alpha"
+const APP_VER = "0.1.9.0329 Alpha"
 
 func init() {
 	base.AppVer = APP_VER

+ 10 - 5
models/action.go

@@ -31,6 +31,7 @@ type Action struct {
 	OpType      int    // Operations: CREATE DELETE STAR ...
 	ActUserId   int64  // Action user id.
 	ActUserName string // Action user name.
+	ActEmail    string
 	RepoId      int64
 	RepoName    string
 	RefName     string
@@ -46,6 +47,10 @@ func (a Action) GetActUserName() string {
 	return a.ActUserName
 }
 
+func (a Action) GetActEmail() string {
+	return a.ActEmail
+}
+
 func (a Action) GetRepoName() string {
 	return a.RepoName
 }
@@ -59,7 +64,7 @@ func (a Action) GetContent() string {
 }
 
 // CommitRepoAction adds new action for committing repository.
-func CommitRepoAction(userId int64, userName string,
+func CommitRepoAction(userId int64, userName, actEmail string,
 	repoId int64, repoName string, refName string, commit *base.PushCommits) error {
 	log.Trace("action.CommitRepoAction(start): %d/%s", userId, repoName)
 
@@ -69,8 +74,8 @@ func CommitRepoAction(userId int64, userName string,
 		return err
 	}
 
-	if err = NotifyWatchers(&Action{ActUserId: userId, ActUserName: userName, OpType: OP_COMMIT_REPO,
-		Content: string(bs), RepoId: repoId, RepoName: repoName, RefName: refName}); err != nil {
+	if err = NotifyWatchers(&Action{ActUserId: userId, ActUserName: userName, ActEmail: actEmail,
+		OpType: OP_COMMIT_REPO, Content: string(bs), RepoId: repoId, RepoName: repoName, RefName: refName}); err != nil {
 		log.Error("action.CommitRepoAction(notify watchers): %d/%s", userId, repoName)
 		return err
 	}
@@ -93,8 +98,8 @@ func CommitRepoAction(userId int64, userName string,
 
 // NewRepoAction adds new action for creating repository.
 func NewRepoAction(user *User, repo *Repository) (err error) {
-	if err = NotifyWatchers(&Action{ActUserId: user.Id, ActUserName: user.Name, OpType: OP_CREATE_REPO,
-		RepoId: repo.Id, RepoName: repo.Name}); err != nil {
+	if err = NotifyWatchers(&Action{ActUserId: user.Id, ActUserName: user.Name, ActEmail: user.Email,
+		OpType: OP_CREATE_REPO, RepoId: repo.Id, RepoName: repo.Name}); err != nil {
 		log.Error("action.NewRepoAction(notify watchers): %d/%s", user.Id, repo.Name)
 		return err
 	}

+ 13 - 4
modules/base/tool.go

@@ -478,6 +478,7 @@ func (a argInt) Get(i int, args ...int) (r int) {
 type Actioner interface {
 	GetOpType() int
 	GetActUserName() string
+	GetActEmail() string
 	GetRepoName() string
 	GetBranch() string
 	GetContent() string
@@ -506,15 +507,23 @@ const (
 <div><img src="%s?s=16" alt="user-avatar"/> %s</div>`
 )
 
+type PushCommit struct {
+	Sha1        string
+	Message     string
+	AuthorEmail string
+	AuthorName  string
+}
+
 type PushCommits struct {
 	Len     int
-	Commits [][]string
+	Commits []*PushCommit
 }
 
 // ActionDesc accepts int that represents action operation type
 // and returns the description.
-func ActionDesc(act Actioner, avatarLink string) string {
+func ActionDesc(act Actioner) string {
 	actUserName := act.GetActUserName()
+	email := act.GetActEmail()
 	repoName := act.GetRepoName()
 	repoLink := actUserName + "/" + repoName
 	branch := act.GetBranch()
@@ -529,7 +538,7 @@ func ActionDesc(act Actioner, avatarLink string) string {
 		}
 		buf := bytes.NewBuffer([]byte("\n"))
 		for _, commit := range push.Commits {
-			buf.WriteString(fmt.Sprintf(TPL_COMMIT_REPO_LI, avatarLink, repoLink, commit[0], commit[0][:7], commit[1]) + "\n")
+			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="/%s/%s/commits/%s">%d other commits >></a></div>`, actUserName, repoName, branch, push.Len))
@@ -539,7 +548,7 @@ func ActionDesc(act Actioner, avatarLink string) string {
 	case 6: // Create issue.
 		infos := strings.SplitN(content, "|", 2)
 		return fmt.Sprintf(TPL_CREATE_Issue, actUserName, actUserName, repoLink, infos[0], repoLink, infos[0],
-			avatarLink, infos[1])
+			AvatarLink(email), infos[1])
 	default:
 		return "invalid type"
 	}

+ 2 - 1
routers/repo/issue.go

@@ -105,7 +105,7 @@ func CreateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat
 	}
 
 	// Notify watchers.
-	if err = models.NotifyWatchers(&models.Action{ActUserId: ctx.User.Id, ActUserName: ctx.User.Name,
+	if err = models.NotifyWatchers(&models.Action{ActUserId: ctx.User.Id, ActUserName: ctx.User.Name, ActEmail: ctx.User.Email,
 		OpType: models.OP_CREATE_ISSUE, Content: fmt.Sprintf("%d|%s", issue.Index, issue.Name),
 		RepoId: ctx.Repo.Repository.Id, RepoName: ctx.Repo.Repository.Name, RefName: ""}); err != nil {
 		ctx.Handle(200, "issue.CreateIssue", err)
@@ -221,6 +221,7 @@ func UpdateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat
 }
 
 func Comment(ctx *middleware.Context, params martini.Params) {
+	fmt.Println(ctx.Query("change_status"))
 	if !ctx.Repo.IsValid {
 		ctx.Handle(404, "issue.Comment(invalid repo):", nil)
 	}

+ 3 - 5
routers/repo/repo.go

@@ -276,11 +276,9 @@ func Http(ctx *middleware.Context, params martini.Params) {
 	}
 
 	prefix := path.Join("/", username, params["reponame"])
-	server := &webdav.Server{
-		Fs:         webdav.Dir(models.RepoPath(username, reponame)),
-		TrimPrefix: prefix,
-		Listings:   true,
-	}
+	server := webdav.NewServer(
+		models.RepoPath(username, reponame),
+		prefix, true)
 
 	server.ServeHTTP(ctx.ResponseWriter, ctx.Req)
 }

+ 1 - 1
routers/user/user.go

@@ -279,7 +279,7 @@ func Feeds(ctx *middleware.Context, form auth.FeedsForm) {
 	feeds := make([]string, len(actions))
 	for i := range actions {
 		feeds[i] = fmt.Sprintf(TPL_FEED, base.ActionIcon(actions[i].OpType),
-			base.TimeSince(actions[i].Created), base.ActionDesc(actions[i], ctx.User.AvatarLink()))
+			base.TimeSince(actions[i].Created), base.ActionDesc(actions[i]))
 	}
 	ctx.JSON(200, &feeds)
 }

+ 1 - 2
templates/user/profile.tmpl

@@ -32,11 +32,10 @@
             {{if eq .TabName "activity"}}
             <div class="tab-pane active">
                 <ul class="list-unstyled activity-list">
-                {{$avatarLink := .Owner.AvatarLink}}
                 {{range .Feeds}}
                     <li>
                         <i class="icon fa fa-{{ActionIcon .OpType}}"></i>
-                        <div class="info"><span class="meta">{{TimeSince .Created}}</span><br>{{ActionDesc . $avatarLink | str2html}}</div>
+                        <div class="info"><span class="meta">{{TimeSince .Created}}</span><br>{{ActionDesc . | str2html}}</div>
                         <span class="clearfix"></span>
                     </li>
                 {{else}}

+ 11 - 3
update.go

@@ -130,18 +130,26 @@ func runUpdate(c *cli.Context) {
 		return
 	}
 
-	commits := make([][]string, 0)
+	commits := make([]*base.PushCommit, 0)
 	var maxCommits = 3
+	var actEmail string
 	for e := l.Front(); e != nil; e = e.Next() {
 		commit := e.Value.(*git.Commit)
-		commits = append(commits, []string{commit.Id().String(), commit.Message()})
+		if actEmail == "" {
+			actEmail = commit.Committer.Email
+		}
+		commits = append(commits,
+			&base.PushCommit{commit.Id().String(),
+				commit.Message(),
+				commit.Author.Email,
+				commit.Author.Name})
 		if len(commits) >= maxCommits {
 			break
 		}
 	}
 
 	//commits = append(commits, []string{lastCommit.Id().String(), lastCommit.Message()})
-	if err = models.CommitRepoAction(int64(sUserId), userName,
+	if err = models.CommitRepoAction(int64(sUserId), userName, actEmail,
 		repos.Id, repoName, git.BranchName(refName), &base.PushCommits{l.Len(), commits}); err != nil {
 		log.Error("runUpdate.models.CommitRepoAction: %v", err)
 	}