summaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
Diffstat (limited to 'routers')
-rw-r--r--routers/repo/issue.go40
1 files changed, 38 insertions, 2 deletions
diff --git a/routers/repo/issue.go b/routers/repo/issue.go
index a9d8799314..e03f115e24 100644
--- a/routers/repo/issue.go
+++ b/routers/repo/issue.go
@@ -67,13 +67,13 @@ func CreateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat
}
func ViewIssue(ctx *middleware.Context, params martini.Params) {
- issueid, err := base.StrTo(params["issueid"]).Int()
+ index, err := base.StrTo(params["index"]).Int()
if err != nil {
ctx.Handle(404, "issue.ViewIssue", err)
return
}
- issue, err := models.GetIssueById(int64(issueid))
+ issue, err := models.GetIssueByIndex(ctx.Repo.Repository.Id, int64(index))
if err != nil {
if err == models.ErrIssueNotExist {
ctx.Handle(404, "issue.ViewIssue", err)
@@ -87,3 +87,39 @@ func ViewIssue(ctx *middleware.Context, params martini.Params) {
ctx.Data["Issue"] = issue
ctx.HTML(200, "issue/view")
}
+
+func UpdateIssue(ctx *middleware.Context, params martini.Params, form auth.CreateIssueForm) {
+ if !ctx.Repo.IsOwner {
+ ctx.Handle(404, "issue.UpdateIssue", nil)
+ return
+ }
+
+ index, err := base.StrTo(params["index"]).Int()
+ if err != nil {
+ ctx.Handle(404, "issue.UpdateIssue", err)
+ return
+ }
+
+ issue, err := models.GetIssueByIndex(ctx.Repo.Repository.Id, int64(index))
+ if err != nil {
+ if err == models.ErrIssueNotExist {
+ ctx.Handle(404, "issue.UpdateIssue", err)
+ } else {
+ ctx.Handle(200, "issue.UpdateIssue", err)
+ }
+ return
+ }
+
+ issue.Name = form.IssueName
+ issue.MilestoneId = form.MilestoneId
+ issue.AssigneeId = form.AssigneeId
+ issue.Labels = form.Labels
+ issue.Content = form.Content
+ if err = models.UpdateIssue(issue); err != nil {
+ ctx.Handle(200, "issue.UpdateIssue", err)
+ return
+ }
+
+ ctx.Data["Title"] = issue.Name
+ ctx.Data["Issue"] = issue
+}