diff --git a/src/main/scala/gitbucket/core/controller/DashboardController.scala b/src/main/scala/gitbucket/core/controller/DashboardController.scala index 0f4648e..1227f24 100644 --- a/src/main/scala/gitbucket/core/controller/DashboardController.scala +++ b/src/main/scala/gitbucket/core/controller/DashboardController.scala @@ -15,20 +15,7 @@ with UsersAuthenticator => get("/dashboard/issues")(usersOnly { - val q = request.getParameter("q") - val account = context.loginAccount.get - Option(q).map { q => - val condition = IssueSearchCondition(q, Map[String, Int]()) - q match { - case q if(q.contains("is:pr")) => redirect(s"/dashboard/pulls?q=${StringUtil.urlEncode(q)}") - case q if(q.contains(s"author:${account.userName}")) => redirect(s"/dashboard/issues/created_by${condition.toURL}") - case q if(q.contains(s"assignee:${account.userName}")) => redirect(s"/dashboard/issues/assigned${condition.toURL}") - case q if(q.contains(s"mentions:${account.userName}")) => redirect(s"/dashboard/issues/mentioned${condition.toURL}") - case _ => searchIssues("created_by") - } - } getOrElse { - searchIssues("created_by") - } + searchIssues("created_by") }) get("/dashboard/issues/assigned")(usersOnly { @@ -44,20 +31,7 @@ }) get("/dashboard/pulls")(usersOnly { - val q = request.getParameter("q") - val account = context.loginAccount.get - Option(q).map { q => - val condition = IssueSearchCondition(q, Map[String, Int]()) - q match { - case q if(q.contains("is:issue")) => redirect(s"/dashboard/issues?q=${StringUtil.urlEncode(q)}") - case q if(q.contains(s"author:${account.userName}")) => redirect(s"/dashboard/pulls/created_by${condition.toURL}") - case q if(q.contains(s"assignee:${account.userName}")) => redirect(s"/dashboard/pulls/assigned${condition.toURL}") - case q if(q.contains(s"mentions:${account.userName}")) => redirect(s"/dashboard/pulls/mentioned${condition.toURL}") - case _ => searchPullRequests("created_by") - } - } getOrElse { - searchPullRequests("created_by") - } + searchPullRequests("created_by") }) get("/dashboard/pulls/created_by")(usersOnly { @@ -73,14 +47,7 @@ }) private def getOrCreateCondition(key: String, filter: String, userName: String) = { - val condition = session.putAndGet(key, if(request.hasQueryString){ - val q = request.getParameter("q") - if(q == null){ - IssueSearchCondition(request) - } else { - IssueSearchCondition(q, Map[String, Int]()) - } - } else session.getAs[IssueSearchCondition](key).getOrElse(IssueSearchCondition())) + val condition = IssueSearchCondition(request) filter match { case "assigned" => condition.copy(assigned = Some(Some(userName)), author = None, mentioned = None) diff --git a/src/main/scala/gitbucket/core/controller/IssuesController.scala b/src/main/scala/gitbucket/core/controller/IssuesController.scala index 4bdfac2..f425b60 100644 --- a/src/main/scala/gitbucket/core/controller/IssuesController.scala +++ b/src/main/scala/gitbucket/core/controller/IssuesController.scala @@ -363,16 +363,7 @@ val sessionKey = Keys.Session.Issues(owner, repoName) // retrieve search condition - val condition = session.putAndGet(sessionKey, - if(request.hasQueryString){ - val q = request.getParameter("q") - if(q == null || q.trim.isEmpty){ - IssueSearchCondition(request) - } else { - IssueSearchCondition(q, getMilestones(owner, repoName).map(x => (x.title, x.milestoneId)).toMap) - } - } else session.getAs[IssueSearchCondition](sessionKey).getOrElse(IssueSearchCondition()) - ) + val condition = IssueSearchCondition(request) html.list( "issues", diff --git a/src/main/scala/gitbucket/core/controller/PullRequestsController.scala b/src/main/scala/gitbucket/core/controller/PullRequestsController.scala index ed5810b..803ab51 100644 --- a/src/main/scala/gitbucket/core/controller/PullRequestsController.scala +++ b/src/main/scala/gitbucket/core/controller/PullRequestsController.scala @@ -520,10 +520,7 @@ val sessionKey = Keys.Session.Pulls(owner, repoName) // retrieve search condition - val condition = session.putAndGet(sessionKey, - if(request.hasQueryString) IssueSearchCondition(request) - else session.getAs[IssueSearchCondition](sessionKey).getOrElse(IssueSearchCondition()) - ) + val condition = IssueSearchCondition(request) gitbucket.core.issues.html.list( "pulls", diff --git a/src/main/scala/gitbucket/core/service/IssuesService.scala b/src/main/scala/gitbucket/core/service/IssuesService.scala index 911e3ca..37f7deb 100644 --- a/src/main/scala/gitbucket/core/service/IssuesService.scala +++ b/src/main/scala/gitbucket/core/service/IssuesService.scala @@ -519,50 +519,6 @@ } /** - * Restores IssueSearchCondition instance from filter query. - */ - def apply(filter: String, milestones: Map[String, Int]): IssueSearchCondition = { - val conditions = filter.split("[  \t]+").flatMap { x => - x.split(":") match { - case Array(key, value) => Some((key, value)) - case _ => None - } - }.groupBy(_._1).map { case (key, values) => - key -> values.map(_._2).toSeq - } - - val (sort, direction) = conditions.get("sort").flatMap(_.headOption).getOrElse("created-desc") match { - case "created-asc" => ("created" , "asc" ) - case "comments-desc" => ("comments", "desc") - case "comments-asc" => ("comments", "asc" ) - case "updated-desc" => ("comments", "desc") - case "updated-asc" => ("comments", "asc" ) - case _ => ("created" , "desc") - } - - IssueSearchCondition( - conditions.get("label").map(_.toSet).getOrElse(Set.empty), - conditions.get("milestone").flatMap(_.headOption) match { - case None => None - case Some("none") => Some(None) - case Some(x) => Some(Some(x)) - }, - conditions.get("author").flatMap(_.headOption), - conditions.get("assignee").flatMap(_.headOption) match { - case None => None - case Some("none") => Some(None) - case Some(x) => Some(Some(x)) - }, - conditions.get("mentions").flatMap(_.headOption), - conditions.get("is").getOrElse(Seq.empty).find(x => x == "open" || x == "closed").getOrElse("open"), - sort, - direction, - conditions.get("visibility").flatMap(_.headOption), - conditions.get("group").map(_.toSet).getOrElse(Set.empty) - ) - } - - /** * Restores IssueSearchCondition instance from request parameters. */ def apply(request: HttpServletRequest): IssueSearchCondition = diff --git a/src/main/scala/gitbucket/core/util/Implicits.scala b/src/main/scala/gitbucket/core/util/Implicits.scala index 12623a4..d93ebe2 100644 --- a/src/main/scala/gitbucket/core/util/Implicits.scala +++ b/src/main/scala/gitbucket/core/util/Implicits.scala @@ -85,12 +85,6 @@ } implicit class RichSession(session: HttpSession){ - - def putAndGet[T](key: String, value: T): T = { - session.setAttribute(key, value) - value - } - def getAndRemove[T](key: String): Option[T] = { val value = session.getAttribute(key).asInstanceOf[T] if(value == null){