@(issues: List[service.IssuesService.IssueInfo],
page: Int,
openCount: Int,
closedCount: Int,
condition: service.IssuesService.IssueSearchCondition,
collaborators: List[String] = Nil,
milestones: List[model.Milestone] = Nil,
labels: List[model.Label] = Nil,
repository: Option[service.RepositoryService.RepositoryInfo] = None,
hasWritePermission: Boolean = false)(implicit context: app.Context)
@import context._
@import view.helpers._
@import service.IssuesService.IssueInfo
@*
@if(condition.labels.nonEmpty || condition.milestoneId.isDefined){
Clear milestone and label filters
}
@if(condition.repo.isDefined){
Clear filter on @condition.repo
}
@helper.html.paginator(page, (if(condition.state == "open") openCount else closedCount), service.IssuesService.IssueLimit, 7, condition.toURL)
@helper.html.dropdown(
value = (condition.sort, condition.direction) match {
case ("created" , "desc") => "Newest"
case ("created" , "asc" ) => "Oldest"
case ("comments", "desc") => "Most commented"
case ("comments", "asc" ) => "Least commented"
case ("updated" , "desc") => "Recently updated"
case ("updated" , "asc" ) => "Least recently updated"
},
prefix = "Sort",
mini = false
){
@helper.html.checkicon(condition.sort == "created" && condition.direction == "desc") Newest
@helper.html.checkicon(condition.sort == "created" && condition.direction == "asc") Oldest
@helper.html.checkicon(condition.sort == "comments" && condition.direction == "desc") Most commented
@helper.html.checkicon(condition.sort == "comments" && condition.direction == "asc") Least commented
@helper.html.checkicon(condition.sort == "updated" && condition.direction == "desc") Recently updated
@helper.html.checkicon(condition.sort == "updated" && condition.direction == "asc") Least recently updated
}
*@
@if(condition.nonEmpty){
Clear current search query, filters, and sorts
}
@openCount Open
@closedCount Closed
@helper.html.dropdown("Author", flat = true) {
@collaborators.map { collaborator =>
@helper.html.checkicon(condition.author == Some(collaborator))
@avatar(collaborator, 20) @collaborator
}
}
@helper.html.dropdown("Label", flat = true) {
@labels.map { label =>
@helper.html.checkicon(condition.labels.contains(label.labelName))
@label.labelName
}
}
@helper.html.dropdown("Milestone", flat = true) {
@helper.html.checkicon(condition.milestoneId == Some(None)) Issues with no milestone
@milestones.filter(_.closedDate.isEmpty).map { milestone =>
@helper.html.checkicon(condition.milestoneId == Some(Some(milestone.milestoneId))) @milestone.title
}
}
@helper.html.dropdown("Assignee", flat = true) {
@collaborators.map { collaborator =>
@helper.html.checkicon(condition.assigned == Some(collaborator))
@avatar(collaborator, 20) @collaborator
}
}
@helper.html.dropdown(
value = (condition.sort, condition.direction) match {
case ("created" , "desc") => "Newest"
case ("created" , "asc" ) => "Oldest"
case ("comments", "desc") => "Most commented"
case ("comments", "asc" ) => "Least commented"
case ("updated" , "desc") => "Recently updated"
case ("updated" , "asc" ) => "Least recently updated"
},
prefix = "Sort",
flat = true
){
@helper.html.checkicon(condition.sort == "created" && condition.direction == "desc") Newest
@helper.html.checkicon(condition.sort == "created" && condition.direction == "asc") Oldest
@helper.html.checkicon(condition.sort == "comments" && condition.direction == "desc") Most commented
@helper.html.checkicon(condition.sort == "comments" && condition.direction == "asc") Least commented
@helper.html.checkicon(condition.sort == "updated" && condition.direction == "desc") Recently updated
@helper.html.checkicon(condition.sort == "updated" && condition.direction == "asc") Least recently updated
}
@if(issues.isEmpty){
No issues to show.
@if(condition.labels.nonEmpty || condition.milestoneId.isDefined){
Clear active filters.
} else {
@if(repository.isDefined){
Create a new issue.
}
}
} else {
@*
@if(hasWritePermission){
@{if(condition.state == "open") "Close" else "Reopen"}
@helper.html.dropdown("Label") {
@labels.map { label =>
@label.labelName
}
}
@helper.html.dropdown("Assignee") {
Clear assignee
@collaborators.map { collaborator =>
@avatar(collaborator, 20) @collaborator
}
}
@helper.html.dropdown("Milestone") {
Clear this milestone
@milestones.map { milestone =>
@milestone.title
@milestone.dueDate.map { dueDate =>
@if(isPast(dueDate)){
Due in @date(dueDate)
} else {
Due in @date(dueDate)
}
}.getOrElse {
No due date
}
}
}
}
*@
}
@issues.map { case IssueInfo(issue, labels, milestone, commentCount) =>
@if(hasWritePermission){
}
@if(issue.isPullRequest){
} else {
}
@if(repository.isEmpty){
@issue.repositoryName ・
}
@if(issue.isPullRequest){
@issue.title
} else {
@issue.title
}
@labels.map { label =>
@label.labelName
}
@issue.assignedUserName.map { userName =>
@avatar(userName, 20, tooltip = true)
}
#@issue.issueId opened by @user(issue.openedUserName, styleClass="username") @datetime(issue.registeredDate)
@milestone
@if(hasWritePermission){
}
}
@helper.html.paginator(page, (if(condition.state == "open") openCount else closedCount), service.IssuesService.IssueLimit, 10, condition.toURL)