diff --git a/src/main/scala/service/IssuesService.scala b/src/main/scala/service/IssuesService.scala index ef39a36..ad73ac0 100644 --- a/src/main/scala/service/IssuesService.scala +++ b/src/main/scala/service/IssuesService.scala @@ -368,13 +368,34 @@ 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 = "?" + List( if(labels.isEmpty) None else Some("labels=" + urlEncode(labels.mkString(","))), - milestoneId.map { id => "milestone=" + (id match { - case Some(x) => x.toString - case None => "none" - })}, + milestoneId.map { _ match { + case Some(x) => "milestone=" + x + case None => "milestone=none" + }}, author .map(x => "author=" + urlEncode(x)), assigned.map(x => "assigned=" + urlEncode(x)), repo.map("for=" + urlEncode(_)), diff --git a/src/main/twirl/issues/list.scala.html b/src/main/twirl/issues/list.scala.html index cd00ac3..45b3e18 100644 --- a/src/main/twirl/issues/list.scala.html +++ b/src/main/twirl/issues/list.scala.html @@ -13,7 +13,7 @@ @import view.helpers._ @html.main((if(target == "issues") "Issues" else "Pull requests") + s" - ${repository.owner}/${repository.name}", Some(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) @if(hasWritePermission){
diff --git a/src/main/twirl/issues/tab.scala.html b/src/main/twirl/issues/tab.scala.html index 80ee66f..1ed41b2 100644 --- a/src/main/twirl/issues/tab.scala.html +++ b/src/main/twirl/issues/tab.scala.html @@ -1,5 +1,7 @@ -@(active: String, newButton: Boolean, - repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context) +@(active: String, + newButton: Boolean, + repository: service.RepositoryService.RepositoryInfo, + condition: Option[service.IssuesService.IssueSearchCondition] = None)(implicit context: app.Context) @import context._ @import view.helpers._