From e538ff27704cddb1a99efc1a6be19e134f97355f Mon Sep 17 00:00:00 2001 From: Unknwon Date: Fri, 4 Dec 2015 21:30:33 -0500 Subject: fix #1829 and fix #890 --- models/repo.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index b4ad19c0..47cebb6c 100644 --- a/models/repo.go +++ b/models/repo.go @@ -161,6 +161,14 @@ type Repository struct { IsMirror bool *Mirror `xorm:"-"` + // Advanced settings + EnableWiki bool `xorm:"NOT NULL DEFAULT true"` + EnableIssues bool `xorm:"NOT NULL DEFAULT true"` + EnableExternalTracker bool + ExternalTrackerFormat string + ExternalMetas map[string]string `xorm:"-"` + EnablePulls bool `xorm:"NOT NULL DEFAULT true"` + IsFork bool `xorm:"NOT NULL DEFAULT false"` ForkID int64 BaseRepo *Repository `xorm:"-"` @@ -214,6 +222,20 @@ func (repo *Repository) MustOwner() *User { return repo.mustOwner(x) } +// ComposeMetas composes a map of metas for rendering external issue tracker URL. +func (repo *Repository) ComposeMetas() map[string]string { + if !repo.EnableExternalTracker { + return nil + } else if repo.ExternalMetas == nil { + repo.ExternalMetas = map[string]string{ + "format": repo.ExternalTrackerFormat, + "user": repo.MustOwner().Name, + "repo": repo.Name, + } + } + return repo.ExternalMetas +} + // GetAssignees returns all users that have write access of repository. func (repo *Repository) GetAssignees() (_ []*User, err error) { if err = repo.GetOwner(); err != nil { -- cgit v1.2.3