diff options
author | Vedran <vedran.mikov@protonmail.com> | 2020-09-08 18:29:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-08 12:29:51 -0400 |
commit | e2043987543d6b1e94afc22d145d70ddaf814898 (patch) | |
tree | f8e952b03163cdc28ede50bf6598bf549bbed632 /routers | |
parent | 0ed8d268ad10fcf24a6cc578fc24c457d62f4fab (diff) | |
download | gitea-e2043987543d6b1e94afc22d145d70ddaf814898.tar.gz gitea-e2043987543d6b1e94afc22d145d70ddaf814898.zip |
Change/remove a branch of an open issue (#9080)
* Add field with isIssueWriter to front end
* Make branch field editable
* Switch frontend to form and POST from javascript
* Add /issue/id/ref endpoint to routes
* Use UpdateIssueTitle model to change ref in backend
* Removed crossreference check and adding comments on branch change
* Use ref returned from POST to update the field
* Prevent calling loadRepo from models/
* Branch/tag refreshed without page reload
* Remove filter for empty branch name
* Add clear option to tag list as well
* Delete button translation and coloring
* Fix for not showing selected branch name in new issue
* Check that branch is not being changed on a PR
* Change logic
* Notification when changing issue ref
* Fix for renamed permission parameter
* Fix for failing build
* Apply suggestions from code review
Co-authored-by: zeripath <art27@cantab.net>
Co-authored-by: Gitea <gitea@fake.local>
Co-authored-by: zeripath <art27@cantab.net>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'routers')
-rw-r--r-- | routers/repo/issue.go | 26 | ||||
-rw-r--r-- | routers/routes/routes.go | 1 |
2 files changed, 26 insertions, 1 deletions
diff --git a/routers/repo/issue.go b/routers/repo/issue.go index 4c745ed5d7..4fc83719fd 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -1244,7 +1244,7 @@ func ViewIssue(ctx *context.Context) { ctx.Data["Participants"] = participants ctx.Data["NumParticipants"] = len(participants) ctx.Data["Issue"] = issue - ctx.Data["ReadOnly"] = true + ctx.Data["ReadOnly"] = false ctx.Data["SignInLink"] = setting.AppSubURL + "/user/login?redirect_to=" + ctx.Data["Link"].(string) ctx.Data["IsIssuePoster"] = ctx.IsSigned && issue.IsPoster(ctx.User.ID) ctx.Data["HasIssuesOrPullsWritePermission"] = ctx.Repo.CanWriteIssuesOrPulls(issue.IsPull) @@ -1344,6 +1344,30 @@ func UpdateIssueTitle(ctx *context.Context) { }) } +// UpdateIssueRef change issue's ref (branch) +func UpdateIssueRef(ctx *context.Context) { + issue := GetActionIssue(ctx) + if ctx.Written() { + return + } + + if !ctx.IsSigned || (!issue.IsPoster(ctx.User.ID) && !ctx.Repo.CanWriteIssuesOrPulls(issue.IsPull)) || issue.IsPull { + ctx.Error(403) + return + } + + ref := ctx.QueryTrim("ref") + + if err := issue_service.ChangeIssueRef(issue, ctx.User, ref); err != nil { + ctx.ServerError("ChangeRef", err) + return + } + + ctx.JSON(200, map[string]interface{}{ + "ref": ref, + }) +} + // UpdateIssueContent change issue's content func UpdateIssueContent(ctx *context.Context) { issue := GetActionIssue(ctx) diff --git a/routers/routes/routes.go b/routers/routes/routes.go index bdb82db6f5..779e8614b3 100644 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -733,6 +733,7 @@ func RegisterRoutes(m *macaron.Macaron) { m.Post("/title", repo.UpdateIssueTitle) m.Post("/content", repo.UpdateIssueContent) m.Post("/watch", repo.IssueWatch) + m.Post("/ref", repo.UpdateIssueRef) m.Group("/dependency", func() { m.Post("/add", repo.AddDependency) m.Post("/delete", repo.RemoveDependency) |