mirror of
https://github.com/gitbucket/gitbucket.git
synced 2026-07-05 06:48:44 +02:00
Keyword search for issues and pull requests using search box (#3429)
This commit is contained in:
@@ -93,7 +93,13 @@ trait IssuesControllerBase extends ControllerBase {
|
||||
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))
|
||||
}
|
||||
|
||||
@@ -106,7 +106,13 @@ trait PullRequestsControllerBase extends ControllerBase {
|
||||
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))
|
||||
}
|
||||
|
||||
@@ -975,15 +975,15 @@ object IssuesService {
|
||||
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 @@ object IssuesService {
|
||||
} ++
|
||||
groups.map(group => s"group:${group}")
|
||||
).mkString(" ")
|
||||
}
|
||||
|
||||
def toURL: String = {
|
||||
"?" + (Seq(
|
||||
|
||||
Reference in New Issue
Block a user