Browse Source

Implementation of the feature to redirect to an external issue tracker

tags/v1.0.0
Rémy Boulanouar 7 years ago
parent
commit
8dc49dc114

+ 2
- 0
conf/locale/locale_en-US.ini View File

settings.issues_desc = Enable issue tracker settings.issues_desc = Enable issue tracker
settings.use_internal_issue_tracker = Use builtin lightweight issue tracker settings.use_internal_issue_tracker = Use builtin lightweight issue tracker
settings.use_external_issue_tracker = Use external 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_url_format = External Issue Tracker URL Format
settings.tracker_issue_style = External Issue Tracker Naming Style: settings.tracker_issue_style = External Issue Tracker Naming Style:
settings.tracker_issue_style.numeric = Numeric settings.tracker_issue_style.numeric = Numeric

+ 1
- 0
models/repo.go View File

ExternalWikiURL string ExternalWikiURL string
EnableIssues bool `xorm:"NOT NULL DEFAULT true"` EnableIssues bool `xorm:"NOT NULL DEFAULT true"`
EnableExternalTracker bool EnableExternalTracker bool
ExternalTrackerURL string
ExternalTrackerFormat string ExternalTrackerFormat string
ExternalTrackerStyle string ExternalTrackerStyle string
ExternalMetas map[string]string `xorm:"-"` ExternalMetas map[string]string `xorm:"-"`

+ 1
- 0
modules/auth/repo_form.go View File

ExternalWikiURL string ExternalWikiURL string
EnableIssues bool EnableIssues bool
EnableExternalTracker bool EnableExternalTracker bool
ExternalTrackerURL string
TrackerURLFormat string TrackerURLFormat string
TrackerIssueStyle string TrackerIssueStyle string
EnablePulls bool EnablePulls bool

+ 6
- 1
routers/repo/issue.go View File

) )


func MustEnableIssues(ctx *context.Context) { func MustEnableIssues(ctx *context.Context) {
if !ctx.Repo.Repository.EnableIssues || ctx.Repo.Repository.EnableExternalTracker {
if !ctx.Repo.Repository.EnableIssues {
ctx.Handle(404, "MustEnableIssues", nil) ctx.Handle(404, "MustEnableIssues", nil)
return return
} }

if ctx.Repo.Repository.EnableExternalTracker {
ctx.Redirect(ctx.Repo.Repository.ExternalTrackerURL)
return
}
} }


func MustAllowPulls(ctx *context.Context) { func MustAllowPulls(ctx *context.Context) {

+ 1
- 0
routers/repo/setting.go View File

repo.ExternalWikiURL = form.ExternalWikiURL repo.ExternalWikiURL = form.ExternalWikiURL
repo.EnableIssues = form.EnableIssues repo.EnableIssues = form.EnableIssues
repo.EnableExternalTracker = form.EnableExternalTracker repo.EnableExternalTracker = form.EnableExternalTracker
repo.ExternalTrackerURL = form.ExternalTrackerURL
repo.ExternalTrackerFormat = form.TrackerURLFormat repo.ExternalTrackerFormat = form.TrackerURLFormat
repo.ExternalTrackerStyle = form.TrackerIssueStyle repo.ExternalTrackerStyle = form.TrackerIssueStyle
repo.EnablePulls = form.EnablePulls repo.EnablePulls = form.EnablePulls

+ 2
- 2
templates/repo/header.tmpl View File

<a class="{{if .PageIsViewCode}}active{{end}} item" href="{{.RepoLink}}"> <a class="{{if .PageIsViewCode}}active{{end}} item" href="{{.RepoLink}}">
<i class="octicon octicon-code"></i> {{.i18n.Tr "repo.code"}} <i class="octicon octicon-code"></i> {{.i18n.Tr "repo.code"}}
</a> </a>
{{if and .Repository.EnableIssues (not .Repository.EnableExternalTracker)}}
{{if .Repository.EnableIssues}}
<a class="{{if .PageIsIssueList}}active{{end}} item" href="{{.RepoLink}}/issues"> <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> </a>
{{end}} {{end}}
{{if .Repository.AllowsPulls}} {{if .Repository.AllowsPulls}}

+ 5
- 0
templates/repo/settings/options.tmpl View File

</div> </div>
</div> </div>
<div class="field {{if not .Repository.EnableExternalTracker}}disabled{{end}}" id="external_issue_box"> <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"> <div class="field">
<label for="tracker_url_format">{{.i18n.Tr "repo.settings.tracker_url_format"}}</label> <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}"> <input id="tracker_url_format" name="tracker_url_format" type="url" value="{{.Repository.ExternalTrackerFormat}}" placeholder="e.g. https://github.com/{user}/{repo}/issues/{index}">

Loading…
Cancel
Save