Merge pull request #781 from andreynering/notifications-step-5

Notifications step 5
This commit is contained in:
Andrey Nering 2017-01-28 17:54:37 -02:00 committed by GitHub
commit cc31a21192
6 changed files with 49 additions and 25 deletions

View file

@ -93,6 +93,16 @@ func (issue *Issue) loadRepo(e Engine) (err error) {
return nil return nil
} }
// GetPullRequest returns the issue pull request
func (issue *Issue) GetPullRequest() (pr *PullRequest, err error) {
if !issue.IsPull {
return nil, fmt.Errorf("Issue is not a pull request")
}
pr, err = getPullRequestByIssueID(x, issue.ID)
return
}
func (issue *Issue) loadAttributes(e Engine) (err error) { func (issue *Issue) loadAttributes(e Engine) (err error) {
if err := issue.loadRepo(e); err != nil { if err := issue.loadRepo(e); err != nil {
return err return err
@ -953,9 +963,9 @@ func Issues(opts *IssuesOptions) ([]*Issue, error) {
switch opts.IsPull { switch opts.IsPull {
case util.OptionalBoolTrue: case util.OptionalBoolTrue:
sess.And("issue.is_pull=?",true) sess.And("issue.is_pull=?", true)
case util.OptionalBoolFalse: case util.OptionalBoolFalse:
sess.And("issue.is_pull=?",false) sess.And("issue.is_pull=?", false)
} }
sortIssuesSession(sess, opts.SortType) sortIssuesSession(sess, opts.SortType)
@ -1780,4 +1790,3 @@ func DeleteMilestoneByRepoID(repoID, id int64) error {
} }
return sess.Commit() return sess.Commit()
} }

View file

@ -2726,17 +2726,16 @@ footer .ui.language .menu {
.user.notification table tr { .user.notification table tr {
cursor: pointer; cursor: pointer;
} }
.user.notification .octicon-issue-opened, .user.notification .octicon.green {
.user.notification .octicon-git-pull-request {
color: #21ba45; color: #21ba45;
} }
.user.notification .octicon-issue-closed { .user.notification .octicon.red {
color: #d01919; color: #d01919;
} }
.user.notification .octicon-git-merge { .user.notification .octicon.purple {
color: #a333c8; color: #a333c8;
} }
.user.notification .octicon-pin { .user.notification .octicon.blue {
color: #2185d0; color: #2185d0;
} }
.dashboard { .dashboard {

View file

@ -99,17 +99,19 @@
} }
} }
.octicon-issue-opened, .octicon-git-pull-request { .octicon {
color: #21ba45; &.green {
} color: #21ba45;
.octicon-issue-closed { }
color: #d01919; &.red {
} color: #d01919;
.octicon-git-merge { }
color: #a333c8; &.purple {
} color: #a333c8;
.octicon-pin { }
color: #2185d0; &.blue {
color: #2185d0;
}
} }
} }
} }

View file

@ -875,6 +875,8 @@ func NewComment(ctx *context.Context, form auth.CreateCommentForm) {
log.Error(4, "ChangeStatus: %v", err) log.Error(4, "ChangeStatus: %v", err)
} else { } else {
log.Trace("Issue [%d] status changed to closed: %v", issue.ID, issue.IsClosed) log.Trace("Issue [%d] status changed to closed: %v", issue.ID, issue.IsClosed)
notification.Service.NotifyIssue(issue, ctx.User.ID)
} }
} }
} }

View file

@ -16,7 +16,9 @@ import (
"code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/notification"
"code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/setting"
"github.com/Unknwon/com" "github.com/Unknwon/com"
) )
@ -415,6 +417,8 @@ func MergePullRequest(ctx *context.Context) {
return return
} }
notification.Service.NotifyIssue(pr.Issue, ctx.User.ID)
log.Trace("Pull request merged: %d", pr.ID) log.Trace("Pull request merged: %d", pr.ID)
ctx.Redirect(ctx.Repo.RepoLink + "/pulls/" + com.ToStr(pr.Index)) ctx.Redirect(ctx.Repo.RepoLink + "/pulls/" + com.ToStr(pr.Index))
} }
@ -707,6 +711,8 @@ func CompareAndPullRequestPost(ctx *context.Context, form auth.CreateIssueForm)
return return
} }
notification.Service.NotifyIssue(pullIssue, ctx.User.ID)
log.Trace("Pull request created: %d/%d", repo.ID, pullIssue.ID) log.Trace("Pull request created: %d/%d", repo.ID, pullIssue.ID)
ctx.Redirect(ctx.Repo.RepoLink + "/pulls/" + com.ToStr(pullIssue.Index)) ctx.Redirect(ctx.Repo.RepoLink + "/pulls/" + com.ToStr(pullIssue.Index))
} }

View file

@ -40,25 +40,31 @@
<i class="blue octicon octicon-pin"></i> <i class="blue octicon octicon-pin"></i>
{{else if $issue.IsPull}} {{else if $issue.IsPull}}
{{if $issue.IsClosed}} {{if $issue.IsClosed}}
<i class="octicon octicon-git-merge"></i> {{if $issue.GetPullRequest.HasMerged}}
<i class="purple octicon octicon-git-merge"></i>
{{else}}
<i class="red octicon octicon-git-pull-request"></i>
{{end}}
{{else}} {{else}}
<i class="octicon octicon-git-pull-request"></i> <i class="green octicon octicon-git-pull-request"></i>
{{end}} {{end}}
{{else}} {{else}}
{{if $issue.IsClosed}} {{if $issue.IsClosed}}
<i class="octicon octicon-issue-closed"></i> <i class="red octicon octicon-issue-closed"></i>
{{else}} {{else}}
<i class="octicon octicon-issue-opened"></i> <i class="green octicon octicon-issue-opened"></i>
{{end}} {{end}}
{{end}} {{end}}
</td> </td>
<td class="twelve wide"> <td class="eleven wide">
<a class="item" href="{{AppSubUrl}}/{{$repoOwner.Name}}/{{$repo.Name}}/issues/{{$issue.Index}}"> <a class="item" href="{{AppSubUrl}}/{{$repoOwner.Name}}/{{$repo.Name}}/issues/{{$issue.Index}}">
#{{$issue.Index}} - {{$issue.Title}} #{{$issue.Index}} - {{$issue.Title}}
</a> </a>
</td> </td>
<td> <td>
{{$repoOwner.Name}}/{{$repo.Name}} <a class="item" href="{{AppSubUrl}}/{{$repoOwner.Name}}/{{$repo.Name}}">
{{$repoOwner.Name}}/{{$repo.Name}}
</a>
</td> </td>
<td class="collapsing"> <td class="collapsing">
{{if ne $notification.Status 3}} {{if ne $notification.Status 3}}