diff options
author | Unknwon <u@gogs.io> | 2015-08-19 23:14:57 +0800 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2015-08-19 23:14:57 +0800 |
commit | 87f5ca8e1f74616d9dc36a5f6fe57023444ed25c (patch) | |
tree | a1236ad9a0bb90b6d1968e67ce40bf890ba94f47 /routers/repo | |
parent | a35911486ffe0cd373662219a8f231b9cf38d84c (diff) |
able edit issue title
Diffstat (limited to 'routers/repo')
-rw-r--r-- | routers/repo/issue.go | 61 |
1 files changed, 24 insertions, 37 deletions
diff --git a/routers/repo/issue.go b/routers/repo/issue.go index 2fa270f3..647b224d 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -524,62 +524,49 @@ func ViewIssue(ctx *middleware.Context) { ctx.HTML(200, ISSUE_VIEW) } -func UpdateIssue(ctx *middleware.Context, form auth.CreateIssueForm) { - idx := com.StrTo(ctx.Params(":index")).MustInt64() - if idx <= 0 { - ctx.Error(404) - return - } - - issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, idx) +func getActionIssue(ctx *middleware.Context) *models.Issue { + issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index")) if err != nil { if models.IsErrIssueNotExist(err) { - ctx.Handle(404, "issue.UpdateIssue", err) + ctx.Error(404, "GetIssueByIndex") } else { - ctx.Handle(500, "issue.UpdateIssue(GetIssueByIndex)", err) + ctx.Handle(500, "GetIssueByIndex", err) } + return nil + } + return issue +} + +func UpdateIssueTitle(ctx *middleware.Context) { + issue := getActionIssue(ctx) + if ctx.Written() { return } - if ctx.User.Id != issue.PosterID && !ctx.Repo.IsOwner() { + if !ctx.IsSigned || ctx.User.Id != issue.PosterID || !ctx.Repo.IsAdmin() { ctx.Error(403) return } - issue.Name = form.Title - //issue.MilestoneId = form.MilestoneId - //issue.AssigneeId = form.AssigneeId - //issue.LabelIds = form.Labels - issue.Content = form.Content - // try get content from text, ignore conflict with preview ajax - if form.Content == "" { - issue.Content = ctx.Query("text") + title := ctx.Query("title") + if len(title) == 0 { + ctx.JSON(200, map[string]interface{}{ + "title": issue.Name, + }) + return } - if err = models.UpdateIssue(issue); err != nil { - ctx.Handle(500, "issue.UpdateIssue(UpdateIssue)", err) + issue.Name = title + + if err := models.UpdateIssue(issue); err != nil { + ctx.Handle(500, "UpdateIssue", err) return } ctx.JSON(200, map[string]interface{}{ - "ok": true, - "title": issue.Name, - "content": string(base.RenderMarkdown([]byte(issue.Content), ctx.Repo.RepoLink)), + "title": issue.Name, }) } -func getActionIssue(ctx *middleware.Context) *models.Issue { - issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index")) - if err != nil { - if models.IsErrIssueNotExist(err) { - ctx.Error(404, "GetIssueByIndex") - } else { - ctx.Handle(500, "GetIssueByIndex", err) - } - return nil - } - return issue -} - func UpdateIssueLabel(ctx *middleware.Context) { issue := getActionIssue(ctx) if ctx.Written() { |