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"){
|
||||
val owner = params("owner")
|
||||
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 {
|
||||
case None => NotFound()
|
||||
case Some(repositoryInfo) => {
|
||||
// search condition
|
||||
val closed = params.get("state") collect {
|
||||
case "closed" => true
|
||||
} getOrElse false
|
||||
session.put(sessionKey, condition)
|
||||
|
||||
issues.html.issues(searchIssue(owner, repository, closed),
|
||||
getLabels(owner, repository),
|
||||
getMilestones(owner, repository).filter(_.closedDate.isEmpty),
|
||||
condition, repositoryInfo, isWritable(owner, repository, context.loginAccount))
|
||||
}
|
||||
}
|
||||
getRepository(owner, repository, baseUrl).map { repositoryInfo =>
|
||||
issues.html.issues(searchIssue(owner, repository, condition.state == "closed"),
|
||||
getLabels(owner, repository),
|
||||
getMilestones(owner, repository).filter(_.closedDate.isEmpty),
|
||||
condition, repositoryInfo, isWritable(owner, repository, context.loginAccount))
|
||||
|
||||
} getOrElse NotFound
|
||||
}
|
||||
|
||||
get("/:owner/:repository/issues/:id"){
|
||||
|
||||
@@ -75,7 +75,13 @@ object IssuesService {
|
||||
import java.net.URLEncoder
|
||||
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._
|
||||
|
||||
def toURL(repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context): String = {
|
||||
|
||||
@@ -72,6 +72,11 @@
|
||||
}
|
||||
</div>
|
||||
<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">
|
||||
<ul>
|
||||
<li class="disabled"><span>◀</span></li>
|
||||
@@ -162,4 +167,11 @@ span.label-color {
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
}
|
||||
|
||||
a#clear-filter {
|
||||
display: block;
|
||||
color: #444;
|
||||
font-weight: bold;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user