mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-08 14:35:52 +01:00
(refs #508)Start to add search filter box
This commit is contained in:
@@ -368,13 +368,34 @@ object IssuesService {
|
|||||||
|
|
||||||
def nonEmpty: Boolean = !isEmpty
|
def nonEmpty: Boolean = !isEmpty
|
||||||
|
|
||||||
|
def toFilterString: String =
|
||||||
|
(List(
|
||||||
|
Some(s"is:${state}"),
|
||||||
|
author.map(author => s"author:${author}"),
|
||||||
|
assigned.map(assignee => s"assignee:${assignee}")
|
||||||
|
).flatten ++ labels.map(label => s"label:${label}") ++
|
||||||
|
List(
|
||||||
|
milestoneId.map { _ match {
|
||||||
|
case Some(x) => s"milestone:${milestoneId}"
|
||||||
|
case None => "no:milestone"
|
||||||
|
}},
|
||||||
|
(sort, direction) match {
|
||||||
|
case ("created" , "desc") => None
|
||||||
|
case ("created" , "asc" ) => Some("sort:created-asc")
|
||||||
|
case ("comments", "desc") => Some("sort:comments-desc")
|
||||||
|
case ("comments", "asc" ) => Some("sort:comments-asc")
|
||||||
|
case ("updated" , "desc") => Some("sort:updated-desc")
|
||||||
|
case ("updated" , "asc" ) => Some("sort:updated-asc")
|
||||||
|
}
|
||||||
|
).flatten).mkString(" ")
|
||||||
|
|
||||||
def toURL: String =
|
def toURL: String =
|
||||||
"?" + List(
|
"?" + List(
|
||||||
if(labels.isEmpty) None else Some("labels=" + urlEncode(labels.mkString(","))),
|
if(labels.isEmpty) None else Some("labels=" + urlEncode(labels.mkString(","))),
|
||||||
milestoneId.map { id => "milestone=" + (id match {
|
milestoneId.map { _ match {
|
||||||
case Some(x) => x.toString
|
case Some(x) => "milestone=" + x
|
||||||
case None => "none"
|
case None => "milestone=none"
|
||||||
})},
|
}},
|
||||||
author .map(x => "author=" + urlEncode(x)),
|
author .map(x => "author=" + urlEncode(x)),
|
||||||
assigned.map(x => "assigned=" + urlEncode(x)),
|
assigned.map(x => "assigned=" + urlEncode(x)),
|
||||||
repo.map("for=" + urlEncode(_)),
|
repo.map("for=" + urlEncode(_)),
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
@import view.helpers._
|
@import view.helpers._
|
||||||
@html.main((if(target == "issues") "Issues" else "Pull requests") + s" - ${repository.owner}/${repository.name}", Some(repository)){
|
@html.main((if(target == "issues") "Issues" else "Pull requests") + s" - ${repository.owner}/${repository.name}", Some(repository)){
|
||||||
@html.menu(target, repository){
|
@html.menu(target, repository){
|
||||||
@tab(target, true, repository)
|
@tab(target, true, repository, Some(condition))
|
||||||
@listparts(target, issues, page, openCount, closedCount, condition, collaborators, milestones, labels, Some(repository), hasWritePermission)
|
@listparts(target, issues, page, openCount, closedCount, condition, collaborators, milestones, labels, Some(repository), hasWritePermission)
|
||||||
@if(hasWritePermission){
|
@if(hasWritePermission){
|
||||||
<form id="batcheditForm" method="POST">
|
<form id="batcheditForm" method="POST">
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
@(active: String, newButton: Boolean,
|
@(active: String,
|
||||||
repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context)
|
newButton: Boolean,
|
||||||
|
repository: service.RepositoryService.RepositoryInfo,
|
||||||
|
condition: Option[service.IssuesService.IssueSearchCondition] = None)(implicit context: app.Context)
|
||||||
@import context._
|
@import context._
|
||||||
@import view.helpers._
|
@import view.helpers._
|
||||||
<ul class="nav nav-pills-group pull-left fill-width">
|
<ul class="nav nav-pills-group pull-left fill-width">
|
||||||
@@ -7,24 +9,42 @@
|
|||||||
<li class="@if(active == "pulls" ){active}"><a href="@url(repository)/pulls">Pull requests</a></li>
|
<li class="@if(active == "pulls" ){active}"><a href="@url(repository)/pulls">Pull requests</a></li>
|
||||||
<li class="@if(active == "labels" ){active}"><a href="@url(repository)/issues/labels">Labels</a></li>
|
<li class="@if(active == "labels" ){active}"><a href="@url(repository)/issues/labels">Labels</a></li>
|
||||||
<li class="@if(active == "milestones"){active} last"><a href="@url(repository)/issues/milestones">Milestones</a></li>
|
<li class="@if(active == "milestones"){active} last"><a href="@url(repository)/issues/milestones">Milestones</a></li>
|
||||||
@if(loginAccount.isDefined){
|
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<div class="btn-group">
|
@condition.map { condition =>
|
||||||
@if(newButton){
|
<div class="input-prepend" style="margin-bottom: 0px;">
|
||||||
@if(active == "issues"){
|
<div class="btn-group">
|
||||||
<a class="btn btn-success" href="@url(repository)/issues/new">New issue</a>
|
<button class="btn dropdown-toggle" data-toggle="dropdown" style="height: 34px;">
|
||||||
|
Filter
|
||||||
|
<span class="caret"></span>
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="#">Open issues and pull requests</a></li>
|
||||||
|
<li><a href="#">Your issues</a></li>
|
||||||
|
<li><a href="#">Your pull requests</a></li>
|
||||||
|
<li><a href="#">Everything assigned to you</a></li>
|
||||||
|
<li><a href="#">Everything mentioning you</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<input type="text" class="input-xlarge" style="height: 24px;" value="@condition.toFilterString"/>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
@if(loginAccount.isDefined){
|
||||||
|
<div class="btn-group">
|
||||||
|
@if(newButton){
|
||||||
|
@if(active == "issues"){
|
||||||
|
<a class="btn btn-success" href="@url(repository)/issues/new" style="height: 24px;">New issue</a>
|
||||||
|
}
|
||||||
|
@if(active == "pulls"){
|
||||||
|
<a class="btn btn-success" href="@url(repository)/compare" style="height: 24px;">New pull request</a>
|
||||||
|
}
|
||||||
|
@if(active == "labels"){
|
||||||
|
<a class="btn btn-success" href="javascript:void(0);" id="new-label-button" style="height: 24px;">New label</a>
|
||||||
|
}
|
||||||
|
@if(active == "milestones"){
|
||||||
|
<a class="btn btn-success" href="@url(repository)/issues/milestones/new" style="height: 24px;">New milestone</a>
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@if(active == "pulls"){
|
</div>
|
||||||
<a class="btn btn-success" href="@url(repository)/compare">New pull request</a>
|
}
|
||||||
}
|
|
||||||
@if(active == "labels"){
|
|
||||||
<a class="btn btn-success" href="javascript:void(0);" id="new-label-button">New label</a>
|
|
||||||
}
|
|
||||||
@if(active == "milestones"){
|
|
||||||
<a class="btn btn-success" href="@url(repository)/issues/milestones/new">New milestone</a>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
</li>
|
</li>
|
||||||
}
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
Reference in New Issue
Block a user