mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-08 22:45:51 +01:00
(refs #529)Organization filter
This commit is contained in:
@@ -9,7 +9,8 @@ class DashboardController extends DashboardControllerBase
|
||||
with UsersAuthenticator
|
||||
|
||||
trait DashboardControllerBase extends ControllerBase {
|
||||
self: IssuesService with PullRequestService with RepositoryService with UsersAuthenticator =>
|
||||
self: IssuesService with PullRequestService with RepositoryService with AccountService
|
||||
with UsersAuthenticator =>
|
||||
|
||||
get("/dashboard/issues/repos")(usersOnly {
|
||||
searchIssues("created_by")
|
||||
@@ -59,7 +60,8 @@ trait DashboardControllerBase extends ControllerBase {
|
||||
countIssue(condition.copy(state = "open" ), filterUser, false, userRepos: _*),
|
||||
countIssue(condition.copy(state = "closed"), filterUser, false, userRepos: _*),
|
||||
condition,
|
||||
filter)
|
||||
filter,
|
||||
getGroupNames(userName))
|
||||
}
|
||||
|
||||
private def searchPullRequests(filter: String, repository: Option[String]) = {
|
||||
@@ -83,7 +85,8 @@ trait DashboardControllerBase extends ControllerBase {
|
||||
countIssue(condition.copy(state = "open" ), filterUser, true, allRepos: _*),
|
||||
countIssue(condition.copy(state = "closed"), filterUser, true, allRepos: _*),
|
||||
condition,
|
||||
filter)
|
||||
filter,
|
||||
getGroupNames(userName))
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -168,6 +168,11 @@ trait AccountService {
|
||||
Repositories.filter(_.userName === userName.bind).delete
|
||||
}
|
||||
|
||||
def getGroupNames(userName: String)(implicit s: Session): List[String] = {
|
||||
List(userName) ++
|
||||
Collaborators.filter(_.collaboratorName === userName.bind).sortBy(_.userName).map(_.userName).list
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
object AccountService extends AccountService
|
||||
|
||||
@@ -186,7 +186,8 @@ trait IssuesService {
|
||||
(Repositories filter { t3 =>
|
||||
(t3.byRepository(t1.userName, t1.repositoryName)) &&
|
||||
(t3.isPrivate === (condition.visibility == Some("private")).bind)
|
||||
} exists, condition.visibility.nonEmpty)
|
||||
} exists, condition.visibility.nonEmpty) &&
|
||||
(t1.userName inSetBind condition.groups, condition.groups.nonEmpty)
|
||||
}
|
||||
|
||||
def createIssue(owner: String, repository: String, loginUser: String, title: String, content: Option[String],
|
||||
@@ -349,7 +350,8 @@ object IssuesService {
|
||||
state: String = "open",
|
||||
sort: String = "created",
|
||||
direction: String = "desc",
|
||||
visibility: Option[String] = None){
|
||||
visibility: Option[String] = None,
|
||||
groups: Set[String] = Set.empty){
|
||||
|
||||
def isEmpty: Boolean = {
|
||||
labels.isEmpty && milestoneId.isEmpty && author.isEmpty && assigned.isEmpty &&
|
||||
@@ -371,7 +373,8 @@ object IssuesService {
|
||||
Some("state=" + urlEncode(state)),
|
||||
Some("sort=" + urlEncode(sort)),
|
||||
Some("direction=" + urlEncode(direction)),
|
||||
visibility.map(x => "visibility=" + urlEncode(x))
|
||||
visibility.map(x => "visibility=" + urlEncode(x)),
|
||||
if(groups.isEmpty) None else Some("groups=" + urlEncode(groups.mkString(",")))
|
||||
).flatten.mkString("&")
|
||||
|
||||
}
|
||||
@@ -396,7 +399,8 @@ object IssuesService {
|
||||
param(request, "state", Seq("open", "closed")).getOrElse("open"),
|
||||
param(request, "sort", Seq("created", "comments", "updated")).getOrElse("created"),
|
||||
param(request, "direction", Seq("asc", "desc")).getOrElse("desc"),
|
||||
param(request, "visibility")
|
||||
param(request, "visibility"),
|
||||
param(request, "groups").map(_.split(",").toSet).getOrElse(Set.empty)
|
||||
)
|
||||
|
||||
def page(request: HttpServletRequest) = try {
|
||||
|
||||
Reference in New Issue
Block a user