]> source.dussan.org Git - gitea.git/commitdiff
IP: RC Code Review
authorUnknown <joe2010xtmf@163.com>
Thu, 27 Mar 2014 15:37:33 +0000 (11:37 -0400)
committerUnknown <joe2010xtmf@163.com>
Thu, 27 Mar 2014 15:37:33 +0000 (11:37 -0400)
README.md
README_ZH.md
gogs.go
models/access.go
models/action.go
models/repo.go
routers/repo/issue.go
templates/issue/view.tmpl
web.go

index 064b5488af0dc0e479dc0d790e17561c6b429ff9..ac2f3095790fdc327fa2ae7aa5e41f7c5a444656 100644 (file)
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ More importantly, Gogs only needs one binary to setup your own project hosting o
 ## Features
 
 - Activity timeline
-- SSH/HTTPS protocol support.
+- SSH/HTTPS(Clone only) protocol support.
 - Register/delete account.
 - Create/delete/watch public repository.
 - User profile page.
index 002d9d788df1d4bd25716bc18b470160e2b85f35..34f5dfde5fc91eb0f424b5e094f284c369d73d5f 100644 (file)
@@ -23,7 +23,7 @@ Gogs 完全使用 Go 语言来实现对 Git 数据的操作,实现 **零** 依
 ## 功能特性
 
 - 活动时间线
-- SSH/HTTPS 协议支持
+- SSH/HTTPS(仅限 Clone) 协议支持
 - 注册/删除用户
 - 创建/删除/关注公开仓库
 - 用户个人信息页面
diff --git a/gogs.go b/gogs.go
index ba443c6e650e7e73ec46cf38a6800b97bb5f70d9..57d9d62c67090b80fd603e907a6c5f63209d7d02 100644 (file)
--- a/gogs.go
+++ b/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.8.0326 Alpha"
+const APP_VER = "0.1.8.0327 Alpha"
 
 func init() {
        base.AppVer = APP_VER
index 36d9405f52fd9091bf3de029ce92160b8972e3ad..84cad17a3fa30531552a710631478925e569d1c0 100644 (file)
@@ -15,7 +15,7 @@ const (
        AU_WRITABLE
 )
 
-// Access represents the accessibility of user and repository.
+// Access represents the accessibility of user to repository.
 type Access struct {
        Id       int64
        UserName string    `xorm:"unique(s)"`
@@ -30,7 +30,7 @@ func AddAccess(access *Access) error {
        return err
 }
 
-// HasAccess returns true if someone can read or write given repository.
+// HasAccess returns true if someone can read or write to given repository.
 func HasAccess(userName, repoName string, mode int) (bool, error) {
        return orm.Get(&Access{
                Id:       0,
index edf1bf58f972531bb6fc47baa9bafc559e70742b..46704eef0773f7f3495bd7e804d23254cd0068fc 100644 (file)
@@ -23,7 +23,8 @@ const (
        OP_PULL_REQUEST
 )
 
-// Action represents user operation type and information to the repository.
+// Action represents user operation type and other information to repository.,
+// it implemented interface base.Actioner so that can be used in template render.
 type Action struct {
        Id          int64
        UserId      int64  // Receiver user id.
@@ -57,7 +58,7 @@ func (a Action) GetContent() string {
        return a.Content
 }
 
-// CommitRepoAction records action for commit repository.
+// CommitRepoAction adds new action for committing repository.
 func CommitRepoAction(userId int64, userName string,
        repoId int64, repoName string, refName string, commits *base.PushCommits) error {
        log.Trace("action.CommitRepoAction(start): %d/%s", userId, repoName)
@@ -68,12 +69,13 @@ func CommitRepoAction(userId int64, userName string,
                return err
        }
 
-       if err = NotifyWatchers(userId, repoId, OP_COMMIT_REPO, userName, repoName, refName, string(bs)); err != nil {
+       if err = NotifyWatchers(&Action{ActUserId: userId, ActUserName: userName, 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
        }
 
-       // Update repository last update time.
+       // Change repository bare status and update last updated time.
        repo, err := GetRepositoryByName(userId, repoName)
        if err != nil {
                log.Error("action.CommitRepoAction(GetRepositoryByName): %d/%s", userId, repoName)
index e74643577a2b86ab2e8b4c162c32317a92085df9..1f638fe14f28d4a3a05b33f6977fcd0fa2cacd2d 100644 (file)
@@ -485,30 +485,21 @@ func GetWatches(repoId int64) ([]Watch, error) {
 }
 
 // NotifyWatchers creates batch of actions for every watcher.
-func NotifyWatchers(userId, repoId int64, opType int, userName, repoName, refName, content string) error {
+func NotifyWatchers(act *Action) error {
        // Add feeds for user self and all watchers.
-       watches, err := GetWatches(repoId)
+       watches, err := GetWatches(act.RepoId)
        if err != nil {
                return errors.New("repo.NotifyWatchers(get watches): " + err.Error())
        }
-       watches = append(watches, Watch{UserId: userId})
+       watches = append(watches, Watch{UserId: act.ActUserId})
 
        for i := range watches {
-               if userId == watches[i].UserId && i > 0 {
+               if act.ActUserId == watches[i].UserId && i > 0 {
                        continue // Do not add twice in case author watches his/her repository.
                }
 
-               _, err = orm.InsertOne(&Action{
-                       UserId:      watches[i].UserId,
-                       ActUserId:   userId,
-                       ActUserName: userName,
-                       OpType:      opType,
-                       Content:     content,
-                       RepoId:      repoId,
-                       RepoName:    repoName,
-                       RefName:     refName,
-               })
-               if err != nil {
+               act.UserId = watches[i].UserId
+               if _, err = orm.InsertOne(act); err != nil {
                        return errors.New("repo.NotifyWatchers(create action): " + err.Error())
                }
        }
index e53aebf636fcf1d7f636e21d27cdfe7535e1ab9c..49a098d6d6aeb0e7a32d9c2961f18179b950c952 100644 (file)
@@ -78,8 +78,9 @@ func CreateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat
        }
 
        // Notify watchers.
-       if err = models.NotifyWatchers(ctx.User.Id, ctx.Repo.Repository.Id, models.OP_CREATE_ISSUE,
-               ctx.User.Name, ctx.Repo.Repository.Name, "", fmt.Sprintf("%d|%s", issue.Index, issue.Name)); err != nil {
+       if err = models.NotifyWatchers(&models.Action{ActUserId: ctx.User.Id, ActUserName: ctx.User.Name,
+               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)
                return
        }
@@ -120,6 +121,7 @@ func ViewIssue(ctx *middleware.Context, params martini.Params) {
                return
        }
        issue.Poster = u
+       issue.Content = string(base.RenderMarkdown([]byte(issue.Content), ""))
 
        // Get comments.
        comments, err := models.GetIssueComments(issue.Id)
@@ -136,6 +138,7 @@ func ViewIssue(ctx *middleware.Context, params martini.Params) {
                        return
                }
                comments[i].Poster = u
+               comments[i].Content = string(base.RenderMarkdown([]byte(comments[i].Content), ""))
        }
 
        ctx.Data["Title"] = issue.Name
index 6b282513aab2379194ccf2091d30c71c2ddf8ec5..36b0ce2eee19a762d0fc5c29c86aeb9358297d0a 100644 (file)
@@ -18,7 +18,7 @@
             <div class="issue-main">
                <div class="panel panel-default issue-content">
                    <div class="panel-body markdown">
-                       <p>{{.Issue.Content}}</p>
+                      {{str2html .Issue.Content}}
                    </div>
                </div>
                {{range .Comments}}
@@ -29,7 +29,7 @@
                            <a href="/user/{{.Poster.Name}}" class="user">{{.Poster.Name}}</a> commented <span class="time">{{TimeSince .Created}}</span>
                        </div>
                        <div class="panel-body markdown">
-                           <p>{{.Content}}</p>
+                          {{str2html .Content}}
                        </div>
                    </div>
                 </div>
diff --git a/web.go b/web.go
index 3c7abc58ccfd3e510055b7eb0223cfc003e69a00..4ed273ea9947182036c4a407c69f782d30fb13e4 100644 (file)
--- a/web.go
+++ b/web.go
@@ -138,6 +138,10 @@ func runWeb(*cli.Context) {
                r.Any("/:userid/delete", admin.DeleteUser)
        }, adminReq)
 
+       if martini.Env == martini.Dev {
+               m.Get("/template/**", dev.TemplatePreview)
+       }
+
        m.Group("/:username/:reponame", func(r martini.Router) {
                r.Post("/settings", repo.SettingPost)
                r.Get("/settings", repo.Setting)
@@ -168,10 +172,6 @@ func runWeb(*cli.Context) {
                r.Any("/:reponame/**", repo.Http)
        }, ignSignIn)
 
-       if martini.Env == martini.Dev {
-               m.Get("/template/**", dev.TemplatePreview)
-       }
-
        // Not found handler.
        m.NotFound(routers.NotFound)