Simplified check for open dependencies
This commit is contained in:
parent
f1f06076ba
commit
6109fcf49a
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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}}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user