diff --git a/src/main/scala/app/IndexController.scala b/src/main/scala/app/IndexController.scala index 12728b6..e2c0642 100644 --- a/src/main/scala/app/IndexController.scala +++ b/src/main/scala/app/IndexController.scala @@ -43,9 +43,16 @@ } get("/:owner/:repository/search")(referrersOnly { repository => - import SearchCache._ + import RepositorySearch._ val query = params("q").trim val target = params.getOrElse("type", "code") + val page = try { + val i = params.getOrElse("page", "1").toInt + if(i <= 0) 1 else i + } catch { + case e: NumberFormatException => 1 + } + val SearchResult(files, issues) = cache.get(repository.owner, repository.name, query) @@ -59,15 +66,19 @@ issue.registeredDate, commentCount, getHighlightText(content, query)._1) - }, files.size, query, repository) + }, files.size, query, page, repository) case _ => JGitUtil.withGit(getRepositoryDir(repository.owner, repository.name)){ git => val commits = JGitUtil.getLatestCommitFromPaths(git, files.toList.map(_._1), "HEAD") search.html.code(files.toList.map { case (path, text) => val (highlightText, lineNumber) = getHighlightText(text, query) - FileSearchResult(path, commits(path).getCommitterIdent.getWhen, highlightText, lineNumber) - }, issues.size, query, repository) + FileSearchResult( + path, + commits(path).getCommitterIdent.getWhen, + highlightText, + lineNumber) + }, issues.size, query, page, repository) } } }) @@ -104,7 +115,10 @@ highlightText: String, highlightLineNumber: Int) -object SearchCache extends IssuesService { +object RepositorySearch extends IssuesService { + + val CodeLimit = 10 + val IssueLimit = 10 case class SearchResult( files: List[(String, String)], @@ -117,7 +131,6 @@ .build( new CacheLoader[(String, String, String), SearchResult]() { override def load(key: (String, String, String)) = { - println("** Cache is reloaded! **") val (owner, repository, query) = key val issues = if(query.isEmpty) Nil else searchIssuesByKeyword(owner, repository, query) val files = if(query.isEmpty) Nil else searchRepositoryFiles(owner, repository, query) diff --git a/src/main/twirl/helper/paginator.scala.html b/src/main/twirl/helper/paginator.scala.html index 4a37d81..0925004 100644 --- a/src/main/twirl/helper/paginator.scala.html +++ b/src/main/twirl/helper/paginator.scala.html @@ -1,32 +1,32 @@ @(page: Int, count: Int, limit: Int, width: Int, baseURL: String) -@defining(view.Pagination(page, count, service.IssuesService.IssueLimit, width)){ p => +@defining(view.Pagination(page, count, limit, width)){ p => @if(p.count > p.limit){
@Html(issue.highlightText)