aboutsummaryrefslogtreecommitdiff
path: root/models/issue_label.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/issue_label.go')
-rw-r--r--models/issue_label.go20
1 files changed, 18 insertions, 2 deletions
diff --git a/models/issue_label.go b/models/issue_label.go
index bdda3432..9136b81a 100644
--- a/models/issue_label.go
+++ b/models/issue_label.go
@@ -240,7 +240,13 @@ func newIssueLabel(e *xorm.Session, issue *Issue, label *Label) (err error) {
if issue.IsClosed {
label.NumClosedIssues++
}
- return updateLabel(e, label)
+
+ if err = updateLabel(e, label); err != nil {
+ return fmt.Errorf("updateLabel: %v", err)
+ }
+
+ issue.Labels = append(issue.Labels, label)
+ return nil
}
// NewIssueLabel creates a new issue-label relation.
@@ -313,7 +319,17 @@ func deleteIssueLabel(e *xorm.Session, issue *Issue, label *Label) (err error) {
if issue.IsClosed {
label.NumClosedIssues--
}
- return updateLabel(e, label)
+ if err = updateLabel(e, label); err != nil {
+ return fmt.Errorf("updateLabel: %v", err)
+ }
+
+ for i := range issue.Labels {
+ if issue.Labels[i].ID == label.ID {
+ issue.Labels = append(issue.Labels[:i], issue.Labels[i+1:]...)
+ break
+ }
+ }
+ return nil
}
// DeleteIssueLabel deletes issue-label relation.