Simplified check for open dependencies

This commit is contained in:
Konrad Langenberg 2017-11-14 21:41:49 +01:00 committed by Konrad
parent f1f06076ba
commit 6109fcf49a
No known key found for this signature in database
GPG Key ID: F40E70337AB24C9B
3 changed files with 23 additions and 22 deletions

View File

@ -113,25 +113,16 @@ func issueDepExists(e Engine, issueID int64, depID int64) (exists bool, err erro
return
}
// IssueDependencyIssue custom type for mysql join
type IssueDependencyIssue struct {
IssueDependency `xorm:"extends"`
Issue `xorm:"extends"`
}
// TableName returns table name for mysql join
func (IssueDependencyIssue) TableName() string {
return "issue_dependency"
}
// IssueNoDependenciesLeft checks if issue can be closed
func IssueNoDependenciesLeft(issue *Issue) (bool, error) {
exists, err := x.
Table("issue_dependency").
Select("issue.*").
Join("INNER", "issue", "issue.id = issue_dependency.dependency_id").
Where("issue_dependency.issue_id = ?", issue.ID).
And("issue.is_closed = ?", "0").
Exist(&IssueDependencyIssue{})
Exist(&Issue{})
return !exists, err
}

View File

@ -734,12 +734,12 @@ func (repo *Repository) getUsersWithAccessMode(e Engine, mode AccessMode) (_ []*
}
// BlockedByDependencies finds all Dependencies an issue is blocked by
func (repo *Repository) BlockedByDependencies(issueID int64) (_ []*IssueDependencyIssue, err error) {
func (repo *Repository) BlockedByDependencies(issueID int64) (_ []*Issue, err error) {
return repo.getBlockedByDependencies(x, issueID)
}
// BlockingDependencies returns all blocking dependencies
func (repo *Repository) BlockingDependencies(issueID int64) (_ []*IssueDependencyIssue, err error) {
func (repo *Repository) BlockingDependencies(issueID int64) (_ []*Issue, err error) {
return repo.getBlockingDependencies(x, issueID)
}
@ -2454,10 +2454,15 @@ func (repo *Repository) GetUserFork(userID int64) (*Repository, error) {
}
// Get Blocked By Dependencies, aka all issues this issue is blocked by.
func (repo *Repository) getBlockedByDependencies(e Engine, issueID int64) (_ []*IssueDependencyIssue, err error) {
var issueDeps []*IssueDependencyIssue
func (repo *Repository) getBlockedByDependencies(e Engine, issueID int64) (_ []*Issue, err error) {
var issueDeps []*Issue
if err = x.Join("INNER", "issue", "issue.id = issue_dependency.dependency_id").Where("issue_id = ?", issueID).Find(&issueDeps); err != nil {
if err = x.
Table("issue_dependency").
Select("issue.*").
Join("INNER", "issue", "issue.id = issue_dependency.dependency_id").
Where("issue_id = ?", issueID).
Find(&issueDeps); err != nil {
return issueDeps, err
}
@ -2465,10 +2470,15 @@ func (repo *Repository) getBlockedByDependencies(e Engine, issueID int64) (_ []*
}
// Get Blocking Dependencies, aka all issues this issue blocks.
func (repo *Repository) getBlockingDependencies(e Engine, issueID int64) ([]*IssueDependencyIssue, error) {
var issueDeps []*IssueDependencyIssue
func (repo *Repository) getBlockingDependencies(e Engine, issueID int64) ([]*Issue, error) {
var issueDeps []*Issue
if err := x.Join("INNER", "issue", "issue.id = issue_dependency.issue_id").Where("dependency_id = ?", issueID).Find(&issueDeps); err != nil {
if err := x.
Table("issue_dependency").
Select("issue.*").
Join("INNER", "issue", "issue.id = issue_dependency.issue_id").
Where("dependency_id = ?", issueID).
Find(&issueDeps); err != nil {
return issueDeps, err
}

View File

@ -210,7 +210,7 @@
{{range .BlockedByDependencies}}
<div class="item">
<div class="right floated content">
<a class="delete-dependency-button" onclick="deleteDependencyModal({{.Issue.ID}}, 'blockedBy');">
<a class="delete-dependency-button" onclick="deleteDependencyModal({{.ID}}, 'blockedBy');">
<i class="delete icon text red"></i>
</a>
{{if .IsClosed}}
@ -242,7 +242,7 @@
{{range .BlockingDependencies}}
<div class="item">
<div class="right floated content">
<a class="delete-dependency-button" onclick="deleteDependencyModal({{.Issue.ID}}, 'blocking');">
<a class="delete-dependency-button" onclick="deleteDependencyModal({{.ID}}, 'blocking');">
<i class="delete icon text red"></i>
</a>
{{if .IsClosed}}