Don't search for undisplayed tabs

This commit is contained in:
Naoki Takezoe
2016-12-12 12:15:41 +09:00
parent 5d928b1a62
commit 9d69cc9d45
5 changed files with 31 additions and 40 deletions

View File

@@ -138,7 +138,7 @@ trait IndexControllerBase extends ControllerBase {
// TODO Move to RepositoryViwerController?
get("/:owner/:repository/search")(referrersOnly { repository =>
defining(params("q").trim, params.getOrElse("type", "code")){ case (query, target) =>
val page = try {
val page = try {
val i = params.getOrElse("page", "1").toInt
if(i <= 0) 1 else i
} catch {
@@ -147,21 +147,15 @@ trait IndexControllerBase extends ControllerBase {
target.toLowerCase match {
case "issue" => gitbucket.core.search.html.issues(
countFiles(repository.owner, repository.name, query),
searchIssues(repository.owner, repository.name, query),
countWikiPages(repository.owner, repository.name, query),
if(query.nonEmpty) searchIssues(repository.owner, repository.name, query) else Nil,
query, page, repository)
case "wiki" => gitbucket.core.search.html.wiki(
countFiles(repository.owner, repository.name, query),
countIssues(repository.owner, repository.name, query),
searchWikiPages(repository.owner, repository.name, query),
if(query.nonEmpty) searchWikiPages(repository.owner, repository.name, query) else Nil,
query, page, repository)
case _ => gitbucket.core.search.html.code(
searchFiles(repository.owner, repository.name, query),
countIssues(repository.owner, repository.name, query),
countWikiPages(repository.owner, repository.name, query),
if(query.nonEmpty) searchFiles(repository.owner, repository.name, query) else Nil,
query, page, repository)
}
}

View File

@@ -1,17 +1,19 @@
@(files: List[gitbucket.core.service.RepositorySearchService.FileSearchResult],
issueCount: Int,
wikiCount: Int,
query: String,
page: Int,
repository: gitbucket.core.service.RepositoryService.RepositoryInfo)(implicit context: gitbucket.core.controller.Context)
@import gitbucket.core.view.helpers
@import gitbucket.core.service.RepositorySearchService
@gitbucket.core.html.main("Search Results", Some(repository)){
@gitbucket.core.search.html.menu("code", files.size, issueCount, wikiCount, query, repository){
@if(files.isEmpty){
<h4>We couldn't find any code matching '@query'</h4>
@gitbucket.core.search.html.menu("code", query, repository){
@if(query.isEmpty) {
<h4>Input the search keyword</h4>
} else {
<h4>We've found @files.size code @helpers.plural(files.size, "result")</h4>
@if(files.isEmpty) {
<h4>We couldn't find any code matching '@query'</h4>
} else {
<h4>We've found @files.size code @helpers.plural(files.size, "result")</h4>
}
}
@files.drop((page - 1) * RepositorySearchService.CodeLimit).take(RepositorySearchService.CodeLimit).map { file =>
<div>

View File

@@ -1,17 +1,19 @@
@(fileCount: Int,
issues: List[gitbucket.core.service.RepositorySearchService.IssueSearchResult],
wikiCount: Int,
@(issues: List[gitbucket.core.service.RepositorySearchService.IssueSearchResult],
query: String,
page: Int,
repository: gitbucket.core.service.RepositoryService.RepositoryInfo)(implicit context: gitbucket.core.controller.Context)
@import gitbucket.core.view.helpers
@import gitbucket.core.service.RepositorySearchService
@gitbucket.core.html.main("Search Results", Some(repository)){
@gitbucket.core.search.html.menu("issue", fileCount, issues.size, wikiCount, query, repository){
@if(issues.isEmpty){
<h4>We couldn't find any code matching '@query'</h4>
@gitbucket.core.search.html.menu("issue", query, repository){
@if(query.isEmpty){
<h4>Input the search keyword</h4>
} else {
<h4>We've found @issues.size code @helpers.plural(issues.size, "result")</h4>
@if(issues.isEmpty) {
<h4>We couldn't find any code matching '@query'</h4>
} else {
<h4>We've found @issues.size code @helpers.plural(issues.size, "result")</h4>
}
}
@issues.drop((page - 1) * RepositorySearchService.IssueLimit).take(RepositorySearchService.IssueLimit).map { issue =>
<div class="block">

View File

@@ -1,4 +1,4 @@
@(active: String, fileCount: Int, issueCount: Int, wikiCount: Int, query: String,
@(active: String, query: String,
repository: gitbucket.core.service.RepositoryService.RepositoryInfo)(body: Html)(implicit context: gitbucket.core.controller.Context)
@import gitbucket.core.view.helpers
@gitbucket.core.html.menu("", repository){
@@ -6,25 +6,16 @@
<li@if(active=="code"){ class="active"}>
<a href="@helpers.url(repository)/search?q=@helpers.urlEncode(query)&type=code">
Files
@if(fileCount != 0){
<span class="badge">@fileCount</span>
}
</a>
</li>
<li@if(active=="issue"){ class="active"}>
<a href="@helpers.url(repository)/search?q=@helpers.urlEncode(query)&type=issue">
Issues
@if(issueCount != 0){
<span class="badge">@issueCount</span>
}
</a>
</li>
<li@if(active=="wiki"){ class="active"}>
<a href="@helpers.url(repository)/search?q=@helpers.urlEncode(query)&type=wiki">
Wiki
@if(wikiCount != 0){
<span class="badge">@wikiCount</span>
}
</a>
</li>
</ul>

View File

@@ -1,17 +1,19 @@
@(fileCount: Int,
issueCount: Int,
wikis: List[gitbucket.core.service.RepositorySearchService.FileSearchResult],
@(wikis: List[gitbucket.core.service.RepositorySearchService.FileSearchResult],
query: String,
page: Int,
repository: gitbucket.core.service.RepositoryService.RepositoryInfo)(implicit context: gitbucket.core.controller.Context)
@import gitbucket.core.view.helpers
@import gitbucket.core.service.RepositorySearchService
@gitbucket.core.html.main("Search Results", Some(repository)){
@gitbucket.core.search.html.menu("wiki", fileCount, issueCount, wikis.size, query, repository){
@if(wikis.isEmpty){
<h4>We couldn't find any code matching '@query'</h4>
@gitbucket.core.search.html.menu("wiki", query, repository){
@if(query.isEmpty){
<h4>Input the search keyword</h4>
} else {
<h4>We've found @wikis.size code @helpers.plural(wikis.size, "result")</h4>
@if(wikis.isEmpty) {
<h4>We couldn't find any code matching '@query'</h4>
} else {
<h4>We've found @wikis.size code @helpers.plural(wikis.size, "result")</h4>
}
}
@wikis.drop((page - 1) * RepositorySearchService.CodeLimit).take(RepositorySearchService.CodeLimit).map { file =>
<div>