(refs #488)Merge user filter into IssueSearchCondition

This commit is contained in:
Naoki Takezoe
2014-09-22 10:08:22 +09:00
parent 706fa77de3
commit 90487eb7b7
8 changed files with 147 additions and 60 deletions

View File

@@ -50,20 +50,20 @@ trait DashboardControllerBase extends ControllerBase {
val userName = context.loginAccount.get.userName
val userRepos = getUserRepositories(userName, context.baseUrl, true).map(repo => repo.owner -> repo.name)
val filterUser = Map(filter -> userName)
//val filterUser = Map(filter -> userName)
val page = IssueSearchCondition.page(request)
dashboard.html.issues(
dashboard.html.issueslist(
searchIssue(condition, filterUser, false, (page - 1) * IssueLimit, IssueLimit, userRepos: _*),
searchIssue(condition, false, (page - 1) * IssueLimit, IssueLimit, userRepos: _*),
page,
countIssue(condition.copy(state = "open" ), filterUser, false, userRepos: _*),
countIssue(condition.copy(state = "closed"), filterUser, false, userRepos: _*),
countIssue(condition.copy(state = "open" ), false, userRepos: _*),
countIssue(condition.copy(state = "closed"), false, userRepos: _*),
condition),
countIssue(condition, Map.empty, false, userRepos: _*),
countIssue(condition, Map("assigned" -> userName), false, userRepos: _*),
countIssue(condition, Map("created_by" -> userName), false, userRepos: _*),
countIssueGroupByRepository(condition, filterUser, false, userRepos: _*),
countIssue(condition.copy(assigned = None, author = None), false, userRepos: _*),
countIssue(condition.copy(assigned = Some(userName), author = None), false, userRepos: _*),
countIssue(condition.copy(assigned = None, author = Some(userName)), false, userRepos: _*),
countIssueGroupByRepository(condition, false, userRepos: _*),
condition,
filter)
@@ -86,14 +86,14 @@ trait DashboardControllerBase extends ControllerBase {
val page = IssueSearchCondition.page(request)
val counts = countIssueGroupByRepository(
IssueSearchCondition().copy(state = condition.state), Map.empty, true, userRepos: _*)
IssueSearchCondition().copy(state = condition.state), true, userRepos: _*)
dashboard.html.pulls(
dashboard.html.pullslist(
searchIssue(condition, filterUser, true, (page - 1) * PullRequestLimit, PullRequestLimit, allRepos: _*),
searchIssue(condition, true, (page - 1) * PullRequestLimit, PullRequestLimit, allRepos: _*),
page,
countIssue(condition.copy(state = "open" ), filterUser, true, allRepos: _*),
countIssue(condition.copy(state = "closed"), filterUser, true, allRepos: _*),
countIssue(condition.copy(state = "open" ), true, allRepos: _*),
countIssue(condition.copy(state = "closed"), true, allRepos: _*),
condition,
None,
false),

View File

@@ -48,16 +48,8 @@ trait IssuesControllerBase extends ControllerBase {
"content" -> trim(optional(text()))
)(IssueStateForm.apply)
get("/:owner/:repository/issues")(referrersOnly {
searchIssues("all", _)
})
get("/:owner/:repository/issues/assigned/:userName")(referrersOnly {
searchIssues("assigned", _)
})
get("/:owner/:repository/issues/created_by/:userName")(referrersOnly {
searchIssues("created_by", _)
get("/:owner/:repository/issues")(referrersOnly { repository =>
searchIssues(repository)
})
get("/:owner/:repository/issues/:id")(referrersOnly { repository =>
@@ -370,9 +362,8 @@ trait IssuesControllerBase extends ControllerBase {
}
}
private def searchIssues(filter: String, repository: RepositoryService.RepositoryInfo) = {
private def searchIssues(repository: RepositoryService.RepositoryInfo) = {
defining(repository.owner, repository.name){ case (owner, repoName) =>
val filterUser = Map(filter -> params.getOrElse("userName", ""))
val page = IssueSearchCondition.page(request)
val sessionKey = Keys.Session.Issues(owner, repoName)
@@ -383,19 +374,18 @@ trait IssuesControllerBase extends ControllerBase {
)
issues.html.list(
searchIssue(condition, filterUser, false, (page - 1) * IssueLimit, IssueLimit, owner -> repoName),
searchIssue(condition, false, (page - 1) * IssueLimit, IssueLimit, owner -> repoName),
page,
(getCollaborators(owner, repoName) :+ owner).sorted,
getMilestones(owner, repoName),
getLabels(owner, repoName),
countIssue(condition.copy(state = "open"), filterUser, false, owner -> repoName),
countIssue(condition.copy(state = "closed"), filterUser, false, owner -> repoName),
countIssue(condition, Map.empty, false, owner -> repoName),
context.loginAccount.map(x => countIssue(condition, Map("assigned" -> x.userName), false, owner -> repoName)),
context.loginAccount.map(x => countIssue(condition, Map("created_by" -> x.userName), false, owner -> repoName)),
countIssueGroupByLabels(owner, repoName, condition, filterUser),
countIssue(condition.copy(state = "open"), false, owner -> repoName),
countIssue(condition.copy(state = "closed"), false, owner -> repoName),
countIssue(condition.copy(assigned = None, author = None), false, owner -> repoName),
context.loginAccount.map(x => countIssue(condition.copy(assigned = Some(x.userName), author = None), false, owner -> repoName)),
context.loginAccount.map(x => countIssue(condition.copy(assigned = None, author = Some(x.userName)), false, owner -> repoName)),
countIssueGroupByLabels(owner, repoName, condition),
condition,
filter,
repository,
hasWritePermission(owner, repoName, context.loginAccount))
}

View File

@@ -464,13 +464,13 @@ trait PullRequestsControllerBase extends ControllerBase {
)
pulls.html.list(
searchIssue(condition, filterUser, true, (page - 1) * PullRequestLimit, PullRequestLimit, owner -> repoName),
searchIssue(condition, true, (page - 1) * PullRequestLimit, PullRequestLimit, owner -> repoName),
getPullRequestCountGroupByUser(condition.state == "closed", Some(owner), Some(repoName)),
userName,
page,
countIssue(condition.copy(state = "open" ), filterUser, true, owner -> repoName),
countIssue(condition.copy(state = "closed"), filterUser, true, owner -> repoName),
countIssue(condition, Map.empty, true, owner -> repoName),
countIssue(condition.copy(state = "open" ), true, owner -> repoName),
countIssue(condition.copy(state = "closed"), true, owner -> repoName),
countIssue(condition.copy(assigned = None, author = None), true, owner -> repoName),
condition,
repository,
hasWritePermission(owner, repoName, context.loginAccount))