]> source.dussan.org Git - gitea.git/commitdiff
Added create issue
authorUnknown <joe2010xtmf@163.com>
Tue, 25 Mar 2014 16:12:27 +0000 (12:12 -0400)
committerUnknown <joe2010xtmf@163.com>
Tue, 25 Mar 2014 16:12:27 +0000 (12:12 -0400)
15 files changed:
gogs.go
modules/auth/issue.go
modules/avatar/avatar.go
modules/base/tool.go
modules/middleware/repo.go
routers/repo/branch.go
routers/repo/issue.go
routers/repo/pull.go
routers/repo/repo.go
serve.go
templates/issue/create.tmpl
templates/issue/list.tmpl [new file with mode: 0644]
templates/issue/repo.tmpl [deleted file]
templates/repo/nav.tmpl
web.go

diff --git a/gogs.go b/gogs.go
index 7ac699cc699cfa0151cc9e593017f280e652255e..b62580f8fd92c1f46ec34afc95695ab39223030f 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.7.0324"
+const APP_VER = "0.1.7.0325"
 
 func init() {
        base.AppVer = APP_VER
index e2b1f9f2a735577491917f360289086be13b4fde..8bf49684c685920069dfa9bcdc5dd36141f98b67 100644 (file)
@@ -17,9 +17,8 @@ import (
 )
 
 type CreateIssueForm struct {
-       IssueName   string `form:"name" binding:"Required;MaxSize(50)"`
-       RepoId      int64  `form:"repoid" binding:"Required"`
-       MilestoneId int64  `form:"milestoneid" binding:"Required"`
+       IssueName   string `form:"title" binding:"Required;MaxSize(50)"`
+       MilestoneId int64  `form:"milestoneid"`
        AssigneeId  int64  `form:"assigneeid"`
        Labels      string `form:"labels"`
        Content     string `form:"content"`
@@ -27,9 +26,7 @@ type CreateIssueForm struct {
 
 func (f *CreateIssueForm) Name(field string) string {
        names := map[string]string{
-               "IssueName":   "Issue name",
-               "RepoId":      "Repository ID",
-               "MilestoneId": "Milestone ID",
+               "IssueName": "Issue name",
        }
        return names[field]
 }
index 3b423a6d155926fd212aa5ccd8555adea77feab8..449c9656dcc0944d9688e99e69b925113b2b9ce3 100644 (file)
@@ -30,8 +30,9 @@ import (
        "sync"
        "time"
 
-       "github.com/gogits/gogs/modules/log"
        "github.com/nfnt/resize"
+
+       "github.com/gogits/gogs/modules/log"
 )
 
 var (
index 0dec7aa8ddedddd0832b08590f146c3d2341658d..c23f5de6cc7d346585ff9731778b5c6c47828eb6 100644 (file)
@@ -102,7 +102,10 @@ func CreateTimeLimitCode(data string, minutes int, startInf interface{}) string
 
 // AvatarLink returns avatar link by given e-mail.
 func AvatarLink(email string) string {
-       return "/avatar/" + EncodeMd5(email)
+       if Service.EnableCacheAvatar {
+               return "/avatar/" + EncodeMd5(email)
+       }
+       return "http://1.gravatar.com/avatar/" + EncodeMd5(email)
 }
 
 // Seconds-based time units
index b23bccb10439760287d28d7ccd2cd15bfcc1bf72..bc90c05cc784aca9706e4c2042d1ddfbf7dd93ef 100644 (file)
@@ -76,6 +76,11 @@ func RepoAssignment(redirect bool) martini.Handler {
                ctx.Repo.CloneLink.SSH = fmt.Sprintf("%s@%s:%s/%s.git", base.RunUser, base.Domain, user.LowerName, repo.LowerName)
                ctx.Repo.CloneLink.HTTPS = fmt.Sprintf("%s://%s/%s/%s.git", scheme, base.Domain, user.LowerName, repo.LowerName)
 
+               if len(params["branchname"]) == 0 {
+                       params["branchname"] = "master"
+               }
+               ctx.Data["Branchname"] = params["branchname"]
+
                ctx.Data["IsRepositoryValid"] = true
                ctx.Data["Repository"] = repo
                ctx.Data["Owner"] = user
index 8c953f2ede38962aadf880a8eba5ae55a6313d4b..aed77cfaa5f0e6a6f03ba974edc5df9944505c61 100644 (file)
@@ -26,11 +26,6 @@ func Branches(ctx *middleware.Context, params martini.Params) {
 
        ctx.Data["Username"] = params["username"]
        ctx.Data["Reponame"] = params["reponame"]
-
-       if len(params["branchname"]) == 0 {
-               params["branchname"] = "master"
-       }
-       ctx.Data["Branchname"] = params["branchname"]
        ctx.Data["Branches"] = brs
        ctx.Data["IsRepoToolbarBranches"] = true
 
index ab070d724c1414bd74b933dd44c2c821fd7f0f31..4e8324605c531d670a5d9da0b941036c4617602b 100644 (file)
@@ -30,12 +30,7 @@ func Issues(ctx *middleware.Context, params martini.Params) {
                ctx.Handle(200, "issue.Issues: %v", err)
                return
        }
-
-       if len(params["branchname"]) == 0 {
-               params["branchname"] = "master"
-       }
-       ctx.Data["Branchname"] = params["branchname"]
-       ctx.HTML(200, "issue/repo")
+       ctx.HTML(200, "issue/list")
 }
 
 func CreateIssue(ctx *middleware.Context, params martini.Params, form auth.CreateIssueForm) {
@@ -57,10 +52,10 @@ func CreateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat
                return
        }
 
-       issue, err := models.CreateIssue(ctx.User.Id, form.RepoId, form.MilestoneId, form.AssigneeId,
+       issue, err := models.CreateIssue(ctx.User.Id, ctx.Repo.Repository.Id, form.MilestoneId, form.AssigneeId,
                form.IssueName, form.Labels, form.Content, false)
        if err == nil {
-               log.Trace("%s Issue created: %d", form.RepoId, issue.Id)
+               log.Trace("%d Issue created: %d", ctx.Repo.Repository.Id, issue.Id)
                ctx.Redirect(fmt.Sprintf("/%s/%s/issues/%d", params["username"], params["reponame"], issue.Index))
                return
        }
index 16c60389da582f862b1097a60017015565e0dbb1..93b6a9f7cca10f85665a35d3f3597e045c8a78c7 100644 (file)
@@ -12,10 +12,5 @@ import (
 
 func Pulls(ctx *middleware.Context, params martini.Params) {
        ctx.Data["IsRepoToolbarPulls"] = true
-       if len(params["branchname"]) == 0 {
-               params["branchname"] = "master"
-       }
-
-       ctx.Data["Branchname"] = params["branchname"]
        ctx.HTML(200, "repo/pulls")
 }
index cd28d52caa65b066135220a3def3adcf495b3bc7..acf025a284aa06ef98ee85fa0c64cb35594d1e80 100644 (file)
@@ -57,10 +57,6 @@ func Single(ctx *middleware.Context, params martini.Params) {
                return
        }
 
-       if len(params["branchname"]) == 0 {
-               params["branchname"] = "master"
-       }
-
        // Get tree path
        treename := params["_1"]
 
@@ -177,7 +173,6 @@ func Single(ctx *middleware.Context, params martini.Params) {
 
        ctx.Data["Username"] = params["username"]
        ctx.Data["Reponame"] = params["reponame"]
-       ctx.Data["Branchname"] = params["branchname"]
 
        var treenames []string
        Paths := make([]string, 0)
@@ -216,10 +211,6 @@ func SingleDownload(ctx *middleware.Context, params martini.Params) {
                return
        }
 
-       if len(params["branchname"]) == 0 {
-               params["branchname"] = "master"
-       }
-
        // Get tree path
        treename := params["_1"]
 
@@ -290,11 +281,6 @@ func Setting(ctx *middleware.Context, params martini.Params) {
                title = t
        }
 
-       if len(params["branchname"]) == 0 {
-               params["branchname"] = "master"
-       }
-
-       ctx.Data["Branchname"] = params["branchname"]
        ctx.Data["Title"] = title + " - settings"
        ctx.HTML(200, "repo/setting")
 }
index bfd2663fc64f3884886667da554585890ee0a0e1..25a34efbaff8b7463a583b0abd9cb94478221012 100644 (file)
--- a/serve.go
+++ b/serve.go
@@ -249,8 +249,8 @@ func runServ(k *cli.Context) {
                }
        }
        if refname == "" {
-               println("No find any reference name:", b.String())
-               log.Error("No find any reference name: " + b.String())
+               println("Not found any reference name:", b.String())
+               log.Error("Not found any reference name: " + b.String())
                return
        }
 
@@ -267,7 +267,6 @@ func runServ(k *cli.Context) {
                        return
                }
                if ref, ok = refs[refname]; !ok {
-                       log.Error("unknow reference name -", refname, "-", b.String())
                        log.Error("unknow reference name -", refname, "-", b.String())
                        return
                }
index 34c7f40aa38dd33e8bacb2f52e19e7ad0d10e82f..cbc21f6ce059d3f11dabcefc0e1375c38e1063e4 100644 (file)
@@ -4,13 +4,14 @@
 {{template "repo/toolbar" .}}
 <div id="body" class="container">
     <div id="issue">
-        <form class="form" action="#" method="post" id="issue-create-form">
+        <form class="form" action="/{{.RepositoryLink}}/issues/new" method="post" id="issue-create-form">
+            {{.CsrfTokenHtml}}
             <div class="col-md-1">
-                <img class="avatar" src="http://tp2.sinaimg.cn/5068084885/50/40050297589/1" alt=""/>
+                <img class="avatar" src="{{.SignedUser.AvatarLink}}" alt=""/>
             </div>
             <div class="col-md-8 panel panel-default">
                 <div class="form-group panel-body">
-                    <input class="form-control input-lg" type="text" name="title" required="required" placeholder="Title"/>
+                    <input class="form-control input-lg" type="text" name="title" required="required" placeholder="Title" value="{{.title}}" />
                 </div>
                 <div class="form-group panel-body">
                     <div class="md-help pull-right"><!-- todo help link -->
@@ -23,7 +24,7 @@
                     <div class="tab-content">
                         <div class="tab-pane" id="issue-textarea">
                             <div class="form-group">
-                                <textarea class="form-control" name="content" id="issue-content" rows="10" placeholder="Write some content"></textarea>
+                                <textarea class="form-control" name="content" id="issue-content" rows="10" placeholder="Write some content">{{.content}}</textarea>
                             </div>
                         </div>
                         <div class="tab-pane" id="issue-preview">preview</div>
diff --git a/templates/issue/list.tmpl b/templates/issue/list.tmpl
new file mode 100644 (file)
index 0000000..685eaee
--- /dev/null
@@ -0,0 +1,61 @@
+{{template "base/head" .}}
+{{template "base/navbar" .}}
+{{template "repo/nav" .}}
+{{template "repo/toolbar" .}}
+<div id="body" class="container">
+    <div id="issue">
+        <div class="col-md-3 filter-list">
+            <ul class="list-unstyled">
+                <li><a href="#" class="active">All Issues <strong class="pull-right">10</strong></a></li>
+                <li><a href="#">My Issues</a></li>
+                <li><a href="#">Mentioned</a></li>
+            </ul>
+        </div>
+        <div class="col-md-9">
+            <div class="filter-option">
+                <div class="btn-group">
+                    <a class="btn btn-default active issue-open" href="#">27 Open</a>
+                    <a class="btn btn-default issue-close" href="#">Close 128</a>
+                </div>
+            </div>
+            <div class="issues list-group">
+                {{range .Issues}}
+                <div class="list-group-item issue-item" id="{{.Id}}"></div>
+                {{end}}
+            </div>
+            <div class="issues list-group">
+                <div class="list-group-item unread issue-item" id="issue-id">
+                    <span class="number pull-right">#123</span>
+                    <h5 class="title"><a href="#">Bug: When running tests after generating a beego app, templates do not load.</a></h5>
+                    <p class="info">
+                        <span class="author"><img class="avatar" src="http://tp2.sinaimg.cn/5068084885/50/40050297589/1" alt="" width="20"/>
+                        <a href="#">Obama</a></span>
+                        <span class="time">3 days ago</span>
+                        <span class="comment"><i class="fa fa-comments"></i> 3</span>
+                    </p>
+                </div>
+                <div class="list-group-item issue-item" id="issue-id2">
+                    <span class="number pull-right">#123</span>
+                    <h5 class="title"><a href="#">Bug: When running tests after generating a beego app, templates do not load.</a></h5>
+                    <p class="info">
+                        <span class="author"><img class="avatar" src="http://tp2.sinaimg.cn/5068084885/50/40050297589/1" alt="" width="20"/>
+                        <a href="#">Obama</a></span>
+                        <span class="time">3 days ago</span>
+                        <span class="comment"><i class="fa fa-comments"></i> 3</span>
+                    </p>
+                </div>
+                <div class="list-group-item issue-item" id="issue-id3">
+                    <span class="number pull-right">#123</span>
+                    <h5 class="title"><a href="#">Bug: When running tests after generating a beego app, templates do not load.</a></h5>
+                    <p class="info">
+                        <span class="author"><img class="avatar" src="http://tp2.sinaimg.cn/5068084885/50/40050297589/1" alt="" width="20"/>
+                        <a href="#">Obama</a></span>
+                        <span class="time">3 days ago</span>
+                        <span class="comment"><i class="fa fa-comments"></i> 3</span>
+                    </p>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+{{template "base/footer" .}}
\ No newline at end of file
diff --git a/templates/issue/repo.tmpl b/templates/issue/repo.tmpl
deleted file mode 100644 (file)
index c348f27..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-{{template "base/head" .}}
-{{template "base/navbar" .}}
-{{template "repo/nav" .}}
-{{template "repo/toolbar" .}}
-<div id="body" class="container">
-    <div id="issue">
-        <div class="col-md-3 filter-list">
-            <ul class="list-unstyled">
-                <li><a href="#" class="active">All Issues <strong class="pull-right">10</strong></a></li>
-                <li><a href="#">My Issues</a></li>
-                <li><a href="#">Mentioned</a></li>
-            </ul>
-        </div>
-        <div class="col-md-9">
-            <div class="filter-option">
-                <div class="btn-group">
-                    <a class="btn btn-default active issue-open" href="#">27 Open</a>
-                    <a class="btn btn-default issue-close" href="#">Close 128</a>
-                </div>
-            </div>
-            <div class="issues list-group">
-                <div class="list-group-item unread issue-item" id="issue-id">
-                    <span class="number pull-right">#123</span>
-                    <h5 class="title"><a href="#">Bug: When running tests after generating a beego app, templates do not load.</a></h5>
-                    <p class="info">
-                        <span class="author"><img class="avatar" src="http://tp2.sinaimg.cn/5068084885/50/40050297589/1" alt="" width="20"/>
-                        <a href="#">Obama</a></span>
-                        <span class="time">3 days ago</span>
-                        <span class="comment"><i class="fa fa-comments"></i> 3</span>
-                    </p>
-                </div>
-                <div class="list-group-item issue-item" id="issue-id2">
-                    <span class="number pull-right">#123</span>
-                    <h5 class="title"><a href="#">Bug: When running tests after generating a beego app, templates do not load.</a></h5>
-                    <p class="info">
-                        <span class="author"><img class="avatar" src="http://tp2.sinaimg.cn/5068084885/50/40050297589/1" alt="" width="20"/>
-                        <a href="#">Obama</a></span>
-                        <span class="time">3 days ago</span>
-                        <span class="comment"><i class="fa fa-comments"></i> 3</span>
-                    </p>
-                </div>
-                <div class="list-group-item issue-item" id="issue-id3">
-                    <span class="number pull-right">#123</span>
-                    <h5 class="title"><a href="#">Bug: When running tests after generating a beego app, templates do not load.</a></h5>
-                    <p class="info">
-                        <span class="author"><img class="avatar" src="http://tp2.sinaimg.cn/5068084885/50/40050297589/1" alt="" width="20"/>
-                        <a href="#">Obama</a></span>
-                        <span class="time">3 days ago</span>
-                        <span class="comment"><i class="fa fa-comments"></i> 3</span>
-                    </p>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-{{template "base/footer" .}}
\ No newline at end of file
index e1b22b1c932c0b8fefecb05f3baf9580514b06cb..02096c34c183dc030ddd9d77e7720e2b1c9e42b3 100644 (file)
@@ -2,7 +2,7 @@
     <div class="container">
         <div class="row">
             <div class="col-md-7">
-                <h3 class="name"><i class="fa fa-book fa-lg"></i><a href="{{.Owner.HomeLink}}">{{.Owner.Name}}</a> / {{.Repository.Name}}</h3>
+                <h3 class="name"><i class="fa fa-book fa-lg"></i><a href="{{.Owner.HomeLink}}">{{.Owner.Name}}</a> / <a href="/{{.Owner.Name}}/{{.Repository.Name}}">{{.Repository.Name}}</a></h3>
                 <p class="desc">{{.Repository.Description}}{{if .Repository.Website}} <a href="{{.Repository.Website}}">{{.Repository.Website}}</a>{{end}}</p>
             </div>
             <div class="col-md-5 actions text-right clone-group-btn">
diff --git a/web.go b/web.go
index 6538c61f19de55dc1e3e0485c9fae34fdd3e9f6d..9b7b21639a9b5c3f4e3659894739e2f0de7e4c6c 100644 (file)
--- a/web.go
+++ b/web.go
@@ -90,7 +90,7 @@ func runWeb(*cli.Context) {
 
        // Routers.
        m.Get("/", ignSignIn, routers.Home)
-       m.Get("/install",routers.Install)
+       m.Get("/install", routers.Install)
        m.Get("/issues", reqSignIn, user.Issues)
        m.Get("/pulls", reqSignIn, user.Pulls)
        m.Get("/stars", reqSignIn, user.Stars)
@@ -142,13 +142,13 @@ func runWeb(*cli.Context) {
                r.Post("/settings", repo.SettingPost)
                r.Get("/settings", repo.Setting)
                r.Get("/action/:action", repo.Action)
+               r.Any("/issues/new", binding.BindIgnErr(auth.CreateIssueForm{}), repo.CreateIssue)
+               r.Post("/issues/:index", binding.BindIgnErr(auth.CreateIssueForm{}), repo.UpdateIssue)
        }, reqSignIn, middleware.RepoAssignment(true))
        m.Group("/:username/:reponame", func(r martini.Router) {
                r.Get("/commits/:branchname", repo.Commits)
                r.Get("/issues", repo.Issues)
-               r.Any("/issues/new", binding.BindIgnErr(auth.CreateIssueForm{}), repo.CreateIssue)
                r.Get("/issues/:index", repo.ViewIssue)
-               r.Post("/issues/:index", binding.BindIgnErr(auth.CreateIssueForm{}), repo.UpdateIssue)
                r.Get("/pulls", repo.Pulls)
                r.Get("/branches", repo.Branches)
                r.Get("/src/:branchname", repo.Single)