aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Svantesson <david.svantesson@qrtech.se>2019-12-14 01:53:32 +0100
committerAntoine GIRARD <sapk@users.noreply.github.com>2019-12-14 01:53:32 +0100
commitf46176a418cfde3747045cdc71e600a8d19580c1 (patch)
treec89d64e07ab51fee07b77fb13a289c4b03f0cefe
parent81a52442a129322acfa12bc22a75aa2652484f33 (diff)
downloadgitea-f46176a418cfde3747045cdc71e600a8d19580c1.tar.gz
gitea-f46176a418cfde3747045cdc71e600a8d19580c1.zip
Fix PR/issue redirects when having external tracker (#9339)
* Make sure only issues are redirected to external tracker * Ensure correct redirects for pulls after dependency or watch. * NewIssuePost is always issues so no need to redirect with type.
-rw-r--r--routers/repo/issue.go23
-rw-r--r--routers/repo/issue_dependency.go5
-rw-r--r--routers/repo/issue_watch.go4
3 files changed, 16 insertions, 16 deletions
diff --git a/routers/repo/issue.go b/routers/repo/issue.go
index adafb64eb3..7d11ed3537 100644
--- a/routers/repo/issue.go
+++ b/routers/repo/issue.go
@@ -607,17 +607,20 @@ func commentTag(repo *models.Repository, poster *models.User, issue *models.Issu
// ViewIssue render issue view page
func ViewIssue(ctx *context.Context) {
- extIssueUnit, err := ctx.Repo.Repository.GetUnit(models.UnitTypeExternalTracker)
- if err == nil && extIssueUnit != nil {
- if extIssueUnit.ExternalTrackerConfig().ExternalTrackerStyle == markup.IssueNameStyleNumeric || extIssueUnit.ExternalTrackerConfig().ExternalTrackerStyle == "" {
- metas := ctx.Repo.Repository.ComposeMetas()
- metas["index"] = ctx.Params(":index")
- ctx.Redirect(com.Expand(extIssueUnit.ExternalTrackerConfig().ExternalTrackerFormat, metas))
+ if ctx.Params(":type") == "issues" {
+ // If issue was requested we check if repo has external tracker and redirect
+ extIssueUnit, err := ctx.Repo.Repository.GetUnit(models.UnitTypeExternalTracker)
+ if err == nil && extIssueUnit != nil {
+ if extIssueUnit.ExternalTrackerConfig().ExternalTrackerStyle == markup.IssueNameStyleNumeric || extIssueUnit.ExternalTrackerConfig().ExternalTrackerStyle == "" {
+ metas := ctx.Repo.Repository.ComposeMetas()
+ metas["index"] = ctx.Params(":index")
+ ctx.Redirect(com.Expand(extIssueUnit.ExternalTrackerConfig().ExternalTrackerFormat, metas))
+ return
+ }
+ } else if err != nil && !models.IsErrUnitTypeNotExist(err) {
+ ctx.ServerError("GetUnit", err)
return
}
- } else if err != nil && !models.IsErrUnitTypeNotExist(err) {
- ctx.ServerError("GetUnit", err)
- return
}
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
@@ -1255,7 +1258,7 @@ func NewComment(ctx *context.Context, form auth.CreateCommentForm) {
if ctx.HasError() {
ctx.Flash.Error(ctx.Data["ErrorMsg"].(string))
- ctx.Redirect(fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, issue.Index))
+ ctx.Redirect(issue.HTMLURL())
return
}
diff --git a/routers/repo/issue_dependency.go b/routers/repo/issue_dependency.go
index 6b11f0cdf1..00d7d85ce9 100644
--- a/routers/repo/issue_dependency.go
+++ b/routers/repo/issue_dependency.go
@@ -5,7 +5,6 @@
package repo
import (
- "fmt"
"net/http"
"code.gitea.io/gitea/models"
@@ -31,7 +30,7 @@ func AddDependency(ctx *context.Context) {
}
// Redirect
- defer ctx.Redirect(fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, issueIndex), http.StatusSeeOther)
+ defer ctx.Redirect(issue.HTMLURL(), http.StatusSeeOther)
// Dependency
dep, err := models.GetIssueByID(depID)
@@ -85,7 +84,7 @@ func RemoveDependency(ctx *context.Context) {
}
// Redirect
- ctx.Redirect(fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, issueIndex), http.StatusSeeOther)
+ ctx.Redirect(issue.HTMLURL(), http.StatusSeeOther)
// Dependency Type
depTypeStr := ctx.Req.PostForm.Get("dependencyType")
diff --git a/routers/repo/issue_watch.go b/routers/repo/issue_watch.go
index eae663495a..07671af13a 100644
--- a/routers/repo/issue_watch.go
+++ b/routers/repo/issue_watch.go
@@ -5,7 +5,6 @@
package repo
import (
- "fmt"
"net/http"
"strconv"
@@ -54,6 +53,5 @@ func IssueWatch(ctx *context.Context) {
return
}
- url := fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, issue.Index)
- ctx.Redirect(url, http.StatusSeeOther)
+ ctx.Redirect(issue.HTMLURL(), http.StatusSeeOther)
}