diff --git a/src/main/scala/gitbucket/core/controller/IssuesController.scala b/src/main/scala/gitbucket/core/controller/IssuesController.scala index b9cc8fe..4e96b81 100644 --- a/src/main/scala/gitbucket/core/controller/IssuesController.scala +++ b/src/main/scala/gitbucket/core/controller/IssuesController.scala @@ -93,7 +93,13 @@ case Some(filter) if filter.contains("is:pr") => redirect(s"/${repository.owner}/${repository.name}/pulls?q=${StringUtil.urlEncode(q)}") case Some(filter) => - searchIssues(repository, IssueSearchCondition(filter), IssueSearchCondition.page(request)) + val condition = IssueSearchCondition(filter) + if (condition.isEmpty) { + // Redirect to keyword search + redirect(s"/${repository.owner}/${repository.name}/search?q=${StringUtil.urlEncode(q)}&type=issues") + } else { + searchIssues(repository, condition, IssueSearchCondition.page(request)) + } case None => searchIssues(repository, IssueSearchCondition(request), IssueSearchCondition.page(request)) } diff --git a/src/main/scala/gitbucket/core/controller/PullRequestsController.scala b/src/main/scala/gitbucket/core/controller/PullRequestsController.scala index d114072..988faa6 100644 --- a/src/main/scala/gitbucket/core/controller/PullRequestsController.scala +++ b/src/main/scala/gitbucket/core/controller/PullRequestsController.scala @@ -106,7 +106,13 @@ case Some(filter) if filter.contains("is:issue") => redirect(s"/${repository.owner}/${repository.name}/issues?q=${StringUtil.urlEncode(q)}") case Some(filter) => - searchPullRequests(repository, IssueSearchCondition(filter), IssueSearchCondition.page(request)) + val condition = IssueSearchCondition(filter) + if (condition.isEmpty) { + // Redirect to keyword search + redirect(s"/${repository.owner}/${repository.name}/search?q=${StringUtil.urlEncode(q)}&type=pulls") + } else { + searchPullRequests(repository, IssueSearchCondition(filter), IssueSearchCondition.page(request)) + } case None => searchPullRequests(repository, IssueSearchCondition(request), IssueSearchCondition.page(request)) } diff --git a/src/main/scala/gitbucket/core/service/IssuesService.scala b/src/main/scala/gitbucket/core/service/IssuesService.scala index a1f4102..d2a9d2f 100644 --- a/src/main/scala/gitbucket/core/service/IssuesService.scala +++ b/src/main/scala/gitbucket/core/service/IssuesService.scala @@ -975,15 +975,15 @@ groups: Set[String] = Set.empty, others: Seq[CustomFieldCondition] = Nil ) { - def isEmpty: Boolean = { labels.isEmpty && milestone.isEmpty && author.isEmpty && assigned.isEmpty && - state == "open" && sort == "created" && direction == "desc" && visibility.isEmpty + state == "open" && sort == "created" && direction == "desc" && visibility.isEmpty && others.isEmpty } def nonEmpty: Boolean = !isEmpty - def toFilterString: String = + def toFilterString: String = if (isEmpty) "" + else { ( List( Some(s"is:${state}"), @@ -1025,6 +1025,7 @@ } ++ groups.map(group => s"group:${group}") ).mkString(" ") + } def toURL: String = { "?" + (Seq(