mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-05 04:56:02 +01:00
Add link to clear issue filter.
This commit is contained in:
@@ -29,24 +29,22 @@ trait IssuesControllerBase extends ControllerBase {
|
|||||||
get("/:owner/:repository/issues"){
|
get("/:owner/:repository/issues"){
|
||||||
val owner = params("owner")
|
val owner = params("owner")
|
||||||
val repository = params("repository")
|
val repository = params("repository")
|
||||||
val condition = IssueSearchCondition(request)
|
val sessionKey = "%s/%s/issues".format(owner, repository)
|
||||||
|
|
||||||
println(condition)
|
// retreive search condition
|
||||||
|
val condition = if(request.getQueryString == null){
|
||||||
|
session.get(sessionKey).getOrElse(IssueSearchCondition()).asInstanceOf[IssueSearchCondition]
|
||||||
|
} else IssueSearchCondition(request)
|
||||||
|
|
||||||
getRepository(owner, repository, baseUrl) match {
|
session.put(sessionKey, condition)
|
||||||
case None => NotFound()
|
|
||||||
case Some(repositoryInfo) => {
|
|
||||||
// search condition
|
|
||||||
val closed = params.get("state") collect {
|
|
||||||
case "closed" => true
|
|
||||||
} getOrElse false
|
|
||||||
|
|
||||||
issues.html.issues(searchIssue(owner, repository, closed),
|
getRepository(owner, repository, baseUrl).map { repositoryInfo =>
|
||||||
getLabels(owner, repository),
|
issues.html.issues(searchIssue(owner, repository, condition.state == "closed"),
|
||||||
getMilestones(owner, repository).filter(_.closedDate.isEmpty),
|
getLabels(owner, repository),
|
||||||
condition, repositoryInfo, isWritable(owner, repository, context.loginAccount))
|
getMilestones(owner, repository).filter(_.closedDate.isEmpty),
|
||||||
}
|
condition, repositoryInfo, isWritable(owner, repository, context.loginAccount))
|
||||||
}
|
|
||||||
|
} getOrElse NotFound
|
||||||
}
|
}
|
||||||
|
|
||||||
get("/:owner/:repository/issues/:id"){
|
get("/:owner/:repository/issues/:id"){
|
||||||
|
|||||||
@@ -75,7 +75,13 @@ object IssuesService {
|
|||||||
import java.net.URLEncoder
|
import java.net.URLEncoder
|
||||||
import javax.servlet.http.HttpServletRequest
|
import javax.servlet.http.HttpServletRequest
|
||||||
|
|
||||||
case class IssueSearchCondition(labels: Set[String], milestoneId: Option[Int], state: String, sort: String, direction: String){
|
case class IssueSearchCondition(
|
||||||
|
labels: Set[String] = Set.empty,
|
||||||
|
milestoneId: Option[Int] = None,
|
||||||
|
state: String = "open",
|
||||||
|
sort: String = "created",
|
||||||
|
direction: String = "desc"){
|
||||||
|
|
||||||
import IssueSearchCondition._
|
import IssueSearchCondition._
|
||||||
|
|
||||||
def toURL(repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context): String = {
|
def toURL(repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context): String = {
|
||||||
|
|||||||
@@ -72,6 +72,11 @@
|
|||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="span9">
|
<div class="span9">
|
||||||
|
@if(condition.labels.nonEmpty || condition.milestoneId.isDefined){
|
||||||
|
<a href="@(new service.IssuesService.IssueSearchCondition().toURL(repository))" id="clear-filter">
|
||||||
|
<i class="icon-remove-circle"></i> Clear milestone and label filters
|
||||||
|
</a>
|
||||||
|
}
|
||||||
<div class="pagination pull-right">
|
<div class="pagination pull-right">
|
||||||
<ul>
|
<ul>
|
||||||
<li class="disabled"><span>◀</span></li>
|
<li class="disabled"><span>◀</span></li>
|
||||||
@@ -162,4 +167,11 @@ span.label-color {
|
|||||||
-webkit-border-radius: 2px;
|
-webkit-border-radius: 2px;
|
||||||
-moz-border-radius: 2px;
|
-moz-border-radius: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a#clear-filter {
|
||||||
|
display: block;
|
||||||
|
color: #444;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
Reference in New Issue
Block a user