diff options
author | Unknwon <u@gogs.io> | 2015-08-10 23:31:59 +0800 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2015-08-10 23:31:59 +0800 |
commit | cbc7b7132f03223b3d32a97f0e54887fa682c5d6 (patch) | |
tree | 36dbff5429cac31d1178087b2b9bd155ef311a45 /models | |
parent | 887bc1b594ef5c279c28c90009e67b068978482f (diff) | |
download | gitea-cbc7b7132f03223b3d32a97f0e54887fa682c5d6.tar.gz gitea-cbc7b7132f03223b3d32a97f0e54887fa682c5d6.zip |
finish new issue action and mentions
Diffstat (limited to 'models')
-rw-r--r-- | models/issue.go | 20 | ||||
-rw-r--r-- | models/user.go | 13 |
2 files changed, 24 insertions, 9 deletions
diff --git a/models/issue.go b/models/issue.go index 79363ce5ab..2b77597129 100644 --- a/models/issue.go +++ b/models/issue.go @@ -188,6 +188,22 @@ func NewIssue(repo *Repository, issue *Issue, labelIDs []int64) (err error) { return err } + // Notify watchers. + act := &Action{ + ActUserID: issue.Poster.Id, + ActUserName: issue.Poster.Name, + ActEmail: issue.Poster.Email, + OpType: CREATE_ISSUE, + Content: fmt.Sprintf("%d|%s", issue.Index, issue.Name), + RepoID: repo.ID, + RepoUserName: repo.Owner.Name, + RepoName: repo.Name, + IsPrivate: repo.IsPrivate, + } + if err = notifyWatchers(sess, act); err != nil { + return err + } + return sess.Commit() } @@ -583,8 +599,8 @@ func UpdateIssueUserPairByRead(uid, iid int64) error { return err } -// UpdateIssueUserPairsByMentions updates issue-user pairs by mentioning. -func UpdateIssueUserPairsByMentions(uids []int64, iid int64) error { +// UpdateIssueUsersByMentions updates issue-user pairs by mentioning. +func UpdateIssueUsersByMentions(uids []int64, iid int64) error { for _, uid := range uids { iu := &IssueUser{UID: uid, IssueID: iid} has, err := x.Get(iu) diff --git a/models/user.go b/models/user.go index 16caa18baf..b7bf4744de 100644 --- a/models/user.go +++ b/models/user.go @@ -911,18 +911,19 @@ func UnFollowUser(userId int64, unFollowId int64) (err error) { } func UpdateMentions(userNames []string, issueId int64) error { + for i := range userNames { + userNames[i] = strings.ToLower(userNames[i]) + } users := make([]*User, 0, len(userNames)) - if err := x.Where("name IN (?)", strings.Join(userNames, "\",\"")).OrderBy("name ASC").Find(&users); err != nil { + if err := x.Where("lower_name IN (?)", strings.Join(userNames, "\",\"")).OrderBy("lower_name ASC").Find(&users); err != nil { return err } ids := make([]int64, 0, len(userNames)) - for _, user := range users { ids = append(ids, user.Id) - - if user.Type == INDIVIDUAL { + if !user.IsOrganization() { continue } @@ -931,9 +932,7 @@ func UpdateMentions(userNames []string, issueId int64) error { } tempIds := make([]int64, 0, user.NumMembers) - orgUsers, err := GetOrgUsersByOrgId(user.Id) - if err != nil { return err } @@ -945,7 +944,7 @@ func UpdateMentions(userNames []string, issueId int64) error { ids = append(ids, tempIds...) } - if err := UpdateIssueUserPairsByMentions(ids, issueId); err != nil { + if err := UpdateIssueUsersByMentions(ids, issueId); err != nil { return err } |