diff options
Diffstat (limited to 'models/issue_label.go')
-rw-r--r-- | models/issue_label.go | 20 |
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. |