summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémy Boulanouar <rboulanouar@gmail.com>2016-11-04 09:06:54 +0100
committerRémy Boulanouar <rboulanouar@gmail.com>2016-11-04 09:06:54 +0100
commit8dc49dc1149fccda2b4da63fa63d23f2b6260466 (patch)
tree826472b0f25062dd952359e395e48c960ccdf2df
parent4a5faecd8f90b4849ab671051e832b3872818b0a (diff)
downloadgitea-8dc49dc1149fccda2b4da63fa63d23f2b6260466.tar.gz
gitea-8dc49dc1149fccda2b4da63fa63d23f2b6260466.zip
Implementation of the feature to redirect to an external issue tracker
-rw-r--r--conf/locale/locale_en-US.ini2
-rw-r--r--models/repo.go1
-rw-r--r--modules/auth/repo_form.go1
-rw-r--r--routers/repo/issue.go7
-rw-r--r--routers/repo/setting.go1
-rw-r--r--templates/repo/header.tmpl4
-rw-r--r--templates/repo/settings/options.tmpl5
7 files changed, 18 insertions, 3 deletions
diff --git a/conf/locale/locale_en-US.ini b/conf/locale/locale_en-US.ini
index 90f6c60e78..fa1b3874a8 100644
--- a/conf/locale/locale_en-US.ini
+++ b/conf/locale/locale_en-US.ini
@@ -648,6 +648,8 @@ settings.external_wiki_url_desc = Visitors will be redirected to URL when they c
settings.issues_desc = Enable issue tracker
settings.use_internal_issue_tracker = Use builtin lightweight issue tracker
settings.use_external_issue_tracker = Use external issue tracker
+settings.external_tracker_url = External Issue Tracker URL
+settings.external_tracker_url_desc = Visitors will be redirected to URL when they click on the tab.
settings.tracker_url_format = External Issue Tracker URL Format
settings.tracker_issue_style = External Issue Tracker Naming Style:
settings.tracker_issue_style.numeric = Numeric
diff --git a/models/repo.go b/models/repo.go
index 7c4e475dda..990670940f 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -186,6 +186,7 @@ type Repository struct {
ExternalWikiURL string
EnableIssues bool `xorm:"NOT NULL DEFAULT true"`
EnableExternalTracker bool
+ ExternalTrackerURL string
ExternalTrackerFormat string
ExternalTrackerStyle string
ExternalMetas map[string]string `xorm:"-"`
diff --git a/modules/auth/repo_form.go b/modules/auth/repo_form.go
index 589997f151..238a10852c 100644
--- a/modules/auth/repo_form.go
+++ b/modules/auth/repo_form.go
@@ -96,6 +96,7 @@ type RepoSettingForm struct {
ExternalWikiURL string
EnableIssues bool
EnableExternalTracker bool
+ ExternalTrackerURL string
TrackerURLFormat string
TrackerIssueStyle string
EnablePulls bool
diff --git a/routers/repo/issue.go b/routers/repo/issue.go
index f638b6f51f..8e8328c7e4 100644
--- a/routers/repo/issue.go
+++ b/routers/repo/issue.go
@@ -52,10 +52,15 @@ var (
)
func MustEnableIssues(ctx *context.Context) {
- if !ctx.Repo.Repository.EnableIssues || ctx.Repo.Repository.EnableExternalTracker {
+ if !ctx.Repo.Repository.EnableIssues {
ctx.Handle(404, "MustEnableIssues", nil)
return
}
+
+ if ctx.Repo.Repository.EnableExternalTracker {
+ ctx.Redirect(ctx.Repo.Repository.ExternalTrackerURL)
+ return
+ }
}
func MustAllowPulls(ctx *context.Context) {
diff --git a/routers/repo/setting.go b/routers/repo/setting.go
index 4bcc470e99..869b98897c 100644
--- a/routers/repo/setting.go
+++ b/routers/repo/setting.go
@@ -146,6 +146,7 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) {
repo.ExternalWikiURL = form.ExternalWikiURL
repo.EnableIssues = form.EnableIssues
repo.EnableExternalTracker = form.EnableExternalTracker
+ repo.ExternalTrackerURL = form.ExternalTrackerURL
repo.ExternalTrackerFormat = form.TrackerURLFormat
repo.ExternalTrackerStyle = form.TrackerIssueStyle
repo.EnablePulls = form.EnablePulls
diff --git a/templates/repo/header.tmpl b/templates/repo/header.tmpl
index 10bfb80e11..a0e7bd1542 100644
--- a/templates/repo/header.tmpl
+++ b/templates/repo/header.tmpl
@@ -52,9 +52,9 @@
<a class="{{if .PageIsViewCode}}active{{end}} item" href="{{.RepoLink}}">
<i class="octicon octicon-code"></i> {{.i18n.Tr "repo.code"}}
</a>
- {{if and .Repository.EnableIssues (not .Repository.EnableExternalTracker)}}
+ {{if .Repository.EnableIssues}}
<a class="{{if .PageIsIssueList}}active{{end}} item" href="{{.RepoLink}}/issues">
- <i class="octicon octicon-issue-opened"></i> {{.i18n.Tr "repo.issues"}} <span class="ui {{if not .Repository.NumOpenIssues}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenIssues}}</span>
+ <i class="octicon octicon-issue-opened"></i> {{.i18n.Tr "repo.issues"}} {{if not .Repository.EnableExternalTracker}}<span class="ui {{if not .Repository.NumOpenIssues}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenIssues}}{{end}}</span>
</a>
{{end}}
{{if .Repository.AllowsPulls}}
diff --git a/templates/repo/settings/options.tmpl b/templates/repo/settings/options.tmpl
index 6b61cb7f8e..2588966c9d 100644
--- a/templates/repo/settings/options.tmpl
+++ b/templates/repo/settings/options.tmpl
@@ -162,6 +162,11 @@
</div>
<div class="field {{if not .Repository.EnableExternalTracker}}disabled{{end}}" id="external_issue_box">
<div class="field">
+ <label for="external_tracker_url">{{.i18n.Tr "repo.settings.external_tracker_url"}}</label>
+ <input id="external_tracker_url" name="external_tracker_url" type="url" value="{{.Repository.ExternalTrackerURL}}">
+ <p class="help">{{.i18n.Tr "repo.settings.external_tracker_url_desc"}}</p>
+ </div>
+ <div class="field">
<label for="tracker_url_format">{{.i18n.Tr "repo.settings.tracker_url_format"}}</label>
<input id="tracker_url_format" name="tracker_url_format" type="url" value="{{.Repository.ExternalTrackerFormat}}" placeholder="e.g. https://github.com/{user}/{repo}/issues/{index}">
<p class="help">{{.i18n.Tr "repo.settings.tracker_url_format_desc" | Str2html}}</p>