(refs #488)Add service.IssuesService.IssueInfo

This commit is contained in:
Naoki Takezoe
2014-09-21 02:06:38 +09:00
parent 3b1367dd8e
commit 706fa77de3
8 changed files with 20 additions and 15 deletions

View File

@@ -116,7 +116,7 @@ trait IssuesService {
*/ */
def searchIssue(condition: IssueSearchCondition, filterUser: Map[String, String], onlyPullRequest: Boolean, def searchIssue(condition: IssueSearchCondition, filterUser: Map[String, String], onlyPullRequest: Boolean,
offset: Int, limit: Int, repos: (String, String)*) offset: Int, limit: Int, repos: (String, String)*)
(implicit s: Session): List[(Issue, List[Label], Option[String], Int)] = { (implicit s: Session): List[IssueInfo] = {
// get issues and comment count and labels // get issues and comment count and labels
searchIssueQuery(repos, condition, filterUser, onlyPullRequest) searchIssueQuery(repos, condition, filterUser, onlyPullRequest)
@@ -148,7 +148,7 @@ trait IssuesService {
} }
.map { issues => issues.head match { .map { issues => issues.head match {
case (issue, commentCount, _, _, _, milestone) => case (issue, commentCount, _, _, _, milestone) =>
(issue, IssueInfo(issue,
issues.flatMap { t => t._3.map ( issues.flatMap { t => t._3.map (
Label(issue.userName, issue.repositoryName, _, t._4.get, t._5.get) Label(issue.userName, issue.repositoryName, _, t._4.get, t._5.get)
)} toList, )} toList,
@@ -385,4 +385,6 @@ object IssuesService {
} }
} }
case class IssueInfo(issue: Issue, labels: List[Label], milestone: Option[String], commentCount: Int)
} }

View File

@@ -1,4 +1,4 @@
@(issues: List[(model.Issue, List[model.Label], Option[String], Int)], @(issues: List[service.IssuesService.IssueInfo],
page: Int, page: Int,
openCount: Int, openCount: Int,
closedCount: Int, closedCount: Int,
@@ -10,7 +10,7 @@
hasWritePermission: Boolean = false)(implicit context: app.Context) hasWritePermission: Boolean = false)(implicit context: app.Context)
@import context._ @import context._
@import view.helpers._ @import view.helpers._
@import service.IssuesService.IssueInfo
<div class="span9"> <div class="span9">
@if(condition.labels.nonEmpty || condition.milestoneId.isDefined){ @if(condition.labels.nonEmpty || condition.milestoneId.isDefined){
<a href="@condition.copy(labels = Set.empty, milestoneId = None).toURL" id="clear-filter"> <a href="@condition.copy(labels = Set.empty, milestoneId = None).toURL" id="clear-filter">
@@ -135,7 +135,7 @@
</tr> </tr>
} }
} }
@issues.map { case (issue, labels, milestone, commentCount) => @issues.map { case IssueInfo(issue, labels, milestone, commentCount) =>
<tr> <tr>
<td> <td>
@if(hasWritePermission){ @if(hasWritePermission){

View File

@@ -1,4 +1,4 @@
@(issues: List[(model.Issue, List[model.Label], Option[String], Int)], @(issues: List[service.IssuesService.IssueInfo],
page: Int, page: Int,
openCount: Int, openCount: Int,
closedCount: Int, closedCount: Int,
@@ -7,6 +7,7 @@
hasWritePermission: Boolean)(implicit context: app.Context) hasWritePermission: Boolean)(implicit context: app.Context)
@import context._ @import context._
@import view.helpers._ @import view.helpers._
@import service.IssuesService.IssueInfo
<div class="span9"> <div class="span9">
@repository.map { repository => @repository.map { repository =>
@if(hasWritePermission){ @if(hasWritePermission){
@@ -71,7 +72,7 @@
</td> </td>
</tr> </tr>
} }
@issues.map { case (issue, labels, milestone, commentCount) => @issues.map { case IssueInfo(issue, labels, milestone, commentCount) =>
<tr> <tr>
<td> <td>
<img src="@assets/common/images/pullreq-@(if(issue.closed) "closed" else "open").png"/> <img src="@assets/common/images/pullreq-@(if(issue.closed) "closed" else "open").png"/>

View File

@@ -1,4 +1,4 @@
@(issues: List[(model.Issue, List[model.Label], Option[String], Int)], @(issues: List[service.IssuesService.IssueInfo],
page: Int, page: Int,
collaborators: List[String], collaborators: List[String],
milestones: List[model.Milestone], milestones: List[model.Milestone],

View File

@@ -1,4 +1,4 @@
@(issues: List[(model.Issue, List[model.Label], Option[String], Int)], @(issues: List[service.IssuesService.IssueInfo],
page: Int, page: Int,
openCount: Int, openCount: Int,
closedCount: Int, closedCount: Int,
@@ -10,7 +10,7 @@
hasWritePermission: Boolean = false)(implicit context: app.Context) hasWritePermission: Boolean = false)(implicit context: app.Context)
@import context._ @import context._
@import view.helpers._ @import view.helpers._
@import service.IssuesService.IssueInfo
<div class="span12"> <div class="span12">
@* @*
@if(condition.labels.nonEmpty || condition.milestoneId.isDefined){ @if(condition.labels.nonEmpty || condition.milestoneId.isDefined){
@@ -146,7 +146,7 @@
} }
*@ *@
} }
@issues.map { case (issue, labels, milestone, commentCount) => @issues.map { case IssueInfo(issue, labels, milestone, commentCount) =>
<tr> <tr>
<td style="padding-top: 15px; padding-bottom: 15px;"> <td style="padding-top: 15px; padding-bottom: 15px;">
@if(hasWritePermission){ @if(hasWritePermission){

View File

@@ -5,7 +5,7 @@
<li@if(active == "issues" ){ class="active"}><a href="@url(repository)/issues">Issues</a></li> <li@if(active == "issues" ){ class="active"}><a href="@url(repository)/issues">Issues</a></li>
<li@if(active == "pulls" ){ class="active"}><a href="@url(repository)/pulls">Pull requests</a></li> <li@if(active == "pulls" ){ class="active"}><a href="@url(repository)/pulls">Pull requests</a></li>
<li@if(active == "labels" ){ class="active"}><a href="@url(repository)/labels">Labels</a></li> <li@if(active == "labels" ){ class="active"}><a href="@url(repository)/labels">Labels</a></li>
<li@if(active == "milestones"){ class="active"}><a href="@url(repository)/milestones">Milestones</a></li> <li@if(active == "milestones"){ class="active"}><a href="@url(repository)/issues/milestones">Milestones</a></li>
@if(loginAccount.isDefined){ @if(loginAccount.isDefined){
<li class="pull-right"> <li class="pull-right">
<div class="btn-group"> <div class="btn-group">

View File

@@ -1,4 +1,4 @@
@(issues: List[(model.Issue, List[model.Label], Option[String], Int)], @(issues: List[service.IssuesService.IssueInfo],
counts: List[service.PullRequestService.PullRequestCount], counts: List[service.PullRequestService.PullRequestCount],
filter: Option[String], filter: Option[String],
page: Int, page: Int,
@@ -10,6 +10,7 @@
hasWritePermission: Boolean)(implicit context: app.Context) hasWritePermission: Boolean)(implicit context: app.Context)
@import context._ @import context._
@import view.helpers._ @import view.helpers._
@import service.IssuesService.IssueInfo
@html.main(s"Pull Requests - ${repository.owner}/${repository.name}", Some(repository)){ @html.main(s"Pull Requests - ${repository.owner}/${repository.name}", Some(repository)){
@html.menu("pulls", repository){ @html.menu("pulls", repository){
<div class="row-fluid"> <div class="row-fluid">

View File

@@ -1,4 +1,4 @@
@(issues: List[(model.Issue, List[model.Label], Option[String], Int)], @(issues: List[service.IssuesService.IssueInfo],
page: Int, page: Int,
openCount: Int, openCount: Int,
closedCount: Int, closedCount: Int,
@@ -7,6 +7,7 @@
hasWritePermission: Boolean)(implicit context: app.Context) hasWritePermission: Boolean)(implicit context: app.Context)
@import context._ @import context._
@import view.helpers._ @import view.helpers._
@import service.IssuesService.IssueInfo
<div class="span9"> <div class="span9">
@repository.map { repository => @repository.map { repository =>
@if(hasWritePermission){ @if(hasWritePermission){
@@ -71,7 +72,7 @@
</td> </td>
</tr> </tr>
} }
@issues.map { case (issue, labels, milestone, commentCount) => @issues.map { case IssueInfo(issue, labels, milestone, commentCount) =>
<tr> <tr>
<td> <td>
<img src="@assets/common/images/pullreq-@(if(issue.closed) "closed" else "open").png"/> <img src="@assets/common/images/pullreq-@(if(issue.closed) "closed" else "open").png"/>