diff --git a/src/main/scala/app/IssuesController.scala b/src/main/scala/app/IssuesController.scala
index 67bbc5b..adee1e8 100644
--- a/src/main/scala/app/IssuesController.scala
+++ b/src/main/scala/app/IssuesController.scala
@@ -112,14 +112,12 @@
// record activity
recordCreateIssueActivity(owner, name, userName, issueId, form.title)
- val uri = s"/${owner}/${name}/issues/${issueId}"
-
// notifications
Notifier().toNotify(repository, issueId, form.content.getOrElse("")){
- Notifier.msgIssue(baseUrl + uri)
+ Notifier.msgIssue(s"${baseUrl}/${owner}/${name}/issues/${issueId}")
}
- redirect(uri)
+ redirect(s"/${owner}/${name}/issues/${issueId}")
})
ajaxPost("/:owner/:repository/issues/edit/:id", issueEditForm)(readableUsersOnly { (form, repository) =>
@@ -136,21 +134,15 @@
post("/:owner/:repository/issue_comments/new", commentForm)(readableUsersOnly { (form, repository) =>
handleComment(form.issueId, Some(form.content), repository)() map { case (issue, id) =>
- if(issue.isPullRequest){
- redirect(s"/${repository.owner}/${repository.name}/pull/${form.issueId}#comment-${id}")
- } else {
- redirect(s"/${repository.owner}/${repository.name}/issues/${form.issueId}#comment-${id}")
- }
+ redirect(s"/${repository.owner}/${repository.name}/${
+ if(issue.isPullRequest) "pull" else "issues"}/${form.issueId}#comment-${id}")
} getOrElse NotFound
})
post("/:owner/:repository/issue_comments/state", issueStateForm)(readableUsersOnly { (form, repository) =>
handleComment(form.issueId, form.content, repository)() map { case (issue, id) =>
- if(issue.isPullRequest){
- redirect(s"/${repository.owner}/${repository.name}/pull/${form.issueId}#comment-${id}")
- } else {
- redirect(s"/${repository.owner}/${repository.name}/issues/${form.issueId}#comment-${id}")
- }
+ redirect(s"/${repository.owner}/${repository.name}/${
+ if(issue.isPullRequest) "pull" else "issues"}/${form.issueId}#comment-${id}")
} getOrElse NotFound
})
@@ -289,9 +281,10 @@
val (action, recordActivity) =
getAction(issue)
.collect {
- case "close" if(issue.isPullRequest) => true -> (Some("close") -> Some(recordClosePullRequestActivity _))
- case "close" if(!issue.isPullRequest) => true -> (Some("close") -> Some(recordCloseIssueActivity _))
- case "reopen" => false -> (Some("reopen") -> Some(recordReopenIssueActivity _))
+ case "close" => true -> (Some("close") ->
+ Some(if(issue.isPullRequest) recordClosePullRequestActivity _ else recordCloseIssueActivity _))
+ case "reopen" => false -> (Some("reopen") ->
+ Some(recordReopenIssueActivity _))
}
.map { case (closed, t) =>
updateClosed(owner, name, issueId, closed)
@@ -307,15 +300,29 @@
}
// record activity
- content foreach { content =>
- if(issue.isPullRequest)
- recordCommentPullRequestActivity(owner, name, userName, issueId, content)
- else
- recordCommentIssueActivity(owner, name, userName, issueId, content)
+ content foreach {
+ (if(issue.isPullRequest) recordCommentPullRequestActivity _ else recordCommentIssueActivity _)
+ (owner, name, userName, issueId, _)
}
recordActivity foreach ( _ (owner, name, userName, issueId, issue.title) )
- (issue, commentId)
+ // notifications
+ Notifier() match {
+ case f =>
+ content foreach {
+ f.toNotify(repository, issueId, _){
+ Notifier.msgComment(s"${baseUrl}/${owner}/${name}/${
+ if(issue.isPullRequest) "pull" else "issues"}/${issueId}#comment-${commentId}")
+ }
+ }
+ action foreach {
+ f.toNotify(repository, issueId, _){
+ Notifier.msgStatus(s"${baseUrl}/${owner}/${name}/issues/${issueId}")
+ }
+ }
+ }
+
+ issue -> commentId
}
}
diff --git a/src/main/scala/app/PullRequestsController.scala b/src/main/scala/app/PullRequestsController.scala
index 0cd143f..add3cda 100644
--- a/src/main/scala/app/PullRequestsController.scala
+++ b/src/main/scala/app/PullRequestsController.scala
@@ -1,6 +1,6 @@
package app
-import util.{LockUtil, CollaboratorsAuthenticator, JGitUtil, ReferrerAuthenticator}
+import util.{LockUtil, CollaboratorsAuthenticator, JGitUtil, ReferrerAuthenticator, Notifier}
import util.Directory._
import util.Implicits._
import service._
@@ -303,8 +303,14 @@
.call
}
+ // record activity
recordPullRequestActivity(repository.owner, repository.name, loginUserName, issueId, form.title)
+ // notifications
+ Notifier().toNotify(repository, issueId, form.content.getOrElse("")){
+ Notifier.msgPullRequest(s"${baseUrl}/${repository.owner}/${repository.name}/pull/${issueId}")
+ }
+
redirect(s"/${repository.owner}/${repository.name}/pull/${issueId}")
})
diff --git a/src/main/scala/util/Notifier.scala b/src/main/scala/util/Notifier.scala
index c8e6821..b9ed579 100644
--- a/src/main/scala/util/Notifier.scala
+++ b/src/main/scala/util/Notifier.scala
@@ -55,8 +55,8 @@
|View it on GitBucket
""".stripMargin
- def msgStatus(id: Int, url: String) = (content: String) => s"""
- |${content} #${id}
+ def msgStatus(url: String) = (content: String) => s"""
+ |${content} #${url split('/') last}
""".stripMargin
}