aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--models/action.go22
-rw-r--r--routers/repo/issue.go19
2 files changed, 41 insertions, 0 deletions
diff --git a/models/action.go b/models/action.go
index 5cba2f51..a1a33f83 100644
--- a/models/action.go
+++ b/models/action.go
@@ -182,6 +182,17 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com
}
issue.IsClosed = true
+ if err = issue.GetLabels(); err != nil {
+ return err
+ }
+ for _, label := range issue.Labels {
+ label.NumClosedIssues++
+
+ if err = UpdateLabel(label); err != nil {
+ return err
+ }
+ }
+
if err = UpdateIssue(issue); err != nil {
return err
} else if err = UpdateIssueUserPairsByStatus(issue.Id, issue.IsClosed); err != nil {
@@ -230,6 +241,17 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com
}
issue.IsClosed = false
+ if err = issue.GetLabels(); err != nil {
+ return err
+ }
+ for _, label := range issue.Labels {
+ label.NumClosedIssues--
+
+ if err = UpdateLabel(label); err != nil {
+ return err
+ }
+ }
+
if err = UpdateIssue(issue); err != nil {
return err
} else if err = UpdateIssueUserPairsByStatus(issue.Id, issue.IsClosed); err != nil {
diff --git a/routers/repo/issue.go b/routers/repo/issue.go
index 3e0206da..722bd0c3 100644
--- a/routers/repo/issue.go
+++ b/routers/repo/issue.go
@@ -549,6 +549,7 @@ func UpdateIssueLabel(ctx *middleware.Context) {
label.NumClosedIssues--
}
}
+
if err = models.UpdateLabel(label); err != nil {
ctx.Handle(500, "issue.UpdateIssueLabel(UpdateLabel)", err)
return
@@ -767,6 +768,24 @@ func Comment(ctx *middleware.Context) {
return
}
+ if err = issue.GetLabels(); err != nil {
+ send(500, nil, err)
+ return
+ }
+
+ for _, label := range issue.Labels {
+ if issue.IsClosed {
+ label.NumClosedIssues++
+ } else {
+ label.NumClosedIssues--
+ }
+
+ if err = models.UpdateLabel(label); err != nil {
+ send(500, nil, err)
+ return
+ }
+ }
+
// Change open/closed issue counter for the associated milestone
if issue.MilestoneId > 0 {
if err = models.ChangeMilestoneIssueStats(issue); err != nil {