diff options
Diffstat (limited to 'routers/repo/issue.go')
-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 2fa270f373..647b224d37 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() { |