diff --git a/models/repo_unit.go b/models/repo_unit.go index fd01aaf60..cb9e8ca77 100644 --- a/models/repo_unit.go +++ b/models/repo_unit.go @@ -149,6 +149,11 @@ func (r *RepoUnit) ExternalTrackerConfig() *ExternalTrackerConfig { return r.Config.(*ExternalTrackerConfig) } +// IssueDependenciesConfig returns config for UnitTypeIssueDependencies +func (r *RepoUnit) IssueDependenciesConfig() *UnitConfig{ + return r.Config.(*UnitConfig) +} + func getUnitsByRepoID(e Engine, repoID int64) (units []*RepoUnit, err error) { return units, e.Where("repo_id = ?", repoID).Find(&units) } diff --git a/routers/repo/issue.go b/routers/repo/issue.go index def7ea6a9..0a6fe9634 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -714,6 +714,7 @@ func ViewIssue(ctx *context.Context) { } // Get Dependencies + ctx.Data["IssueDependenciesEnabled"] = repo.UnitEnabled(models.UnitTypeIssueDependencies) ctx.Data["BlockedByDependencies"], err = repo.BlockedByDependencies(issue.ID) ctx.Data["BlockingDependencies"], err = repo.BlockingDependencies(issue.ID) diff --git a/routers/repo/issue_dependency_add.go b/routers/repo/issue_dependency_add.go index 8d4bf6b99..43f7c0a85 100644 --- a/routers/repo/issue_dependency_add.go +++ b/routers/repo/issue_dependency_add.go @@ -15,6 +15,9 @@ import ( // Adds new dependencies func AddDependency(c *context.Context) { + + // TODO: should should an issue only have dependencies in it's own repo? + depID, err := strconv.ParseInt(c.Req.PostForm.Get("newDependency"), 10, 64) if err != nil { c.Handle(http.StatusBadRequest, "issue ID is not int", err) @@ -28,6 +31,12 @@ func AddDependency(c *context.Context) { return } + // Check if the Repo is allowed to have dependencies + if !c.Repo.Repository.UnitEnabled(models.UnitTypeIssueDependencies) { + c.Handle(404, "MustEnableIssueDependencies", nil) + return + } + // Dependency dep, err := models.GetIssueByID(depID) if err != nil { diff --git a/templates/repo/issue/view_content/sidebar.tmpl b/templates/repo/issue/view_content/sidebar.tmpl index 84a3ee579..0716de0db 100644 --- a/templates/repo/issue/view_content/sidebar.tmpl +++ b/templates/repo/issue/view_content/sidebar.tmpl @@ -191,6 +191,7 @@ {{end}} {{end}} + {{if .IssueDependenciesEnabled}}