diff options
author | Rémy Boulanouar <rboulanouar@gmail.com> | 2016-11-04 09:06:54 +0100 |
---|---|---|
committer | Rémy Boulanouar <rboulanouar@gmail.com> | 2016-11-04 09:06:54 +0100 |
commit | 8dc49dc1149fccda2b4da63fa63d23f2b6260466 (patch) | |
tree | 826472b0f25062dd952359e395e48c960ccdf2df | |
parent | 4a5faecd8f90b4849ab671051e832b3872818b0a (diff) | |
download | gitea-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.ini | 2 | ||||
-rw-r--r-- | models/repo.go | 1 | ||||
-rw-r--r-- | modules/auth/repo_form.go | 1 | ||||
-rw-r--r-- | routers/repo/issue.go | 7 | ||||
-rw-r--r-- | routers/repo/setting.go | 1 | ||||
-rw-r--r-- | templates/repo/header.tmpl | 4 | ||||
-rw-r--r-- | templates/repo/settings/options.tmpl | 5 |
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> |