// 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
)
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"`
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]
}
"sync"
"time"
- "github.com/gogits/gogs/modules/log"
"github.com/nfnt/resize"
+
+ "github.com/gogits/gogs/modules/log"
)
var (
// 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
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
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
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) {
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
}
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")
}
return
}
- if len(params["branchname"]) == 0 {
- params["branchname"] = "master"
- }
-
// Get tree path
treename := params["_1"]
ctx.Data["Username"] = params["username"]
ctx.Data["Reponame"] = params["reponame"]
- ctx.Data["Branchname"] = params["branchname"]
var treenames []string
Paths := make([]string, 0)
return
}
- if len(params["branchname"]) == 0 {
- params["branchname"] = "master"
- }
-
// Get tree path
treename := params["_1"]
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")
}
}
}
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
}
return
}
if ref, ok = refs[refname]; !ok {
- log.Error("unknow reference name -", refname, "-", b.String())
log.Error("unknow reference name -", refname, "-", b.String())
return
}
{{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 -->
<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>
--- /dev/null
+{{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
+++ /dev/null
-{{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
<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">
// 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)
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)