diff --git a/README.md b/README.md
index 4a44fce..a5f6406 100644
--- a/README.md
+++ b/README.md
@@ -80,6 +80,18 @@
Release Notes
--------
+### 2.6 - COMING SOON!
+- Search box at issues and pull requests
+- Information from administrator
+- Some bug fix and improvements
+
+### 2.5 - 4 Nov 2014
+- New Dashboard
+- Change datetime format
+- Create branch from Web UI
+- Task list in Markdown
+- Some bug fix and improvements
+
### 2.4.1 - 6 Oct 2014
- Bug fix
diff --git a/etc/icons.svg b/etc/icons.svg
index 1d50b97..9372a97 100644
--- a/etc/icons.svg
+++ b/etc/icons.svg
@@ -1,1844 +1,754 @@
-
-
-
-
+
+
+
+
+
+
diff --git a/src/main/twirl/admin/users/user.scala.html b/src/main/twirl/admin/users/user.scala.html
index fb022c0..1f25857 100644
--- a/src/main/twirl/admin/users/user.scala.html
+++ b/src/main/twirl/admin/users/user.scala.html
@@ -16,6 +16,9 @@
Disable
+
+
+
}
@if(account.map(_.password.nonEmpty).getOrElse(true)){
diff --git a/src/main/twirl/dashboard/header.scala.html b/src/main/twirl/dashboard/header.scala.html
new file mode 100644
index 0000000..01c5bfc
--- /dev/null
+++ b/src/main/twirl/dashboard/header.scala.html
@@ -0,0 +1,74 @@
+@(openCount: Int,
+ closedCount: Int,
+ condition: service.IssuesService.IssueSearchCondition,
+ groups: List[String])(implicit context: app.Context)
+@import context._
+@import view.helpers._
+
+
+
+ @openCount Open
+
+
+
+ @closedCount Closed
+
+
+
\ No newline at end of file
diff --git a/src/main/twirl/dashboard/issues.scala.html b/src/main/twirl/dashboard/issues.scala.html
index f6f9bbb..898ac6b 100644
--- a/src/main/twirl/dashboard/issues.scala.html
+++ b/src/main/twirl/dashboard/issues.scala.html
@@ -1,50 +1,16 @@
-@(listparts: play.twirl.api.Html,
- allCount: Int,
- assignedCount: Int,
- createdByCount: Int,
- repositories: List[(String, String, Int)],
+@(issues: List[service.IssuesService.IssueInfo],
+ page: Int,
+ openCount: Int,
+ closedCount: Int,
condition: service.IssuesService.IssueSearchCondition,
- filter: String)(implicit context: app.Context)
+ filter: String,
+ groups: List[String])(implicit context: app.Context)
@import context._
@import view.helpers._
-@html.main("Your Issues"){
-
+@html.main("Issues"){
@dashboard.html.tab("issues")
-
-
- @listparts
+
+ @issuesnavi(filter, "issues", condition)
+ @issueslist(issues, page, openCount, closedCount, condition, filter, groups)
-
}
diff --git a/src/main/twirl/dashboard/issueslist.scala.html b/src/main/twirl/dashboard/issueslist.scala.html
index 4f27ea8..16840b7 100644
--- a/src/main/twirl/dashboard/issueslist.scala.html
+++ b/src/main/twirl/dashboard/issueslist.scala.html
@@ -3,182 +3,65 @@
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)
+ filter: String,
+ groups: List[String])(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(issues.isEmpty){
-
-
- No issues to show.
- @if(condition.labels.nonEmpty || condition.milestoneId.isDefined){
- Clear active filters.
- } else {
- @if(repository.isDefined){
- Create a new issue.
- }
- }
- |
-
+@*
+
+*@
+
+
+
+ @dashboard.html.header(openCount, closedCount, condition, groups)
+ |
+
+ @issues.map { case IssueInfo(issue, labels, milestone, commentCount) =>
+
+
+ @if(issue.isPullRequest){
+
} else {
- @if(hasWritePermission){
- |
-
-
-
-
- @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 by @date(dueDate)
- } else {
- Due by @date(dueDate)
- }
- }.getOrElse {
- No due date
- }
-
-
-
- }
- }
- |
-
+
+ }
+ @issue.repositoryName ・
+ @if(issue.isPullRequest){
+ @issue.title
+ } else {
+ @issue.title
+ }
+ @labels.map { label =>
+ @label.labelName
+ }
+
+ @issue.assignedUserName.map { userName =>
+ @avatar(userName, 20, tooltip = true)
}
- }
- @issues.map { case IssueInfo(issue, labels, milestone, commentCount) =>
-
-
- @if(hasWritePermission){
-
- }
- |
-
- }
-
-
- @helper.html.paginator(page, (if(condition.state == "open") openCount else closedCount), service.IssuesService.IssueLimit, 10, condition.toURL)
+ @if(commentCount > 0){
+
+ } else {
+
+ }
+
+
+ #@issue.issueId opened by @user(issue.openedUserName, styleClass="username") @datetime(issue.registeredDate)
+ @milestone.map { milestone =>
+
@milestone
+ }
-
-
+
+
+ }
+
+
+ @helper.html.paginator(page, (if(condition.state == "open") openCount else closedCount), service.IssuesService.IssueLimit, 10, condition.toURL)
+
diff --git a/src/main/twirl/dashboard/issuesnavi.scala.html b/src/main/twirl/dashboard/issuesnavi.scala.html
new file mode 100644
index 0000000..ec15e74
--- /dev/null
+++ b/src/main/twirl/dashboard/issuesnavi.scala.html
@@ -0,0 +1,22 @@
+@(filter: String,
+ active: String,
+ condition: service.IssuesService.IssueSearchCondition)(implicit context: app.Context)
+@import context._
+@import view.helpers._
+
diff --git a/src/main/twirl/dashboard/pulls.scala.html b/src/main/twirl/dashboard/pulls.scala.html
index 25caafe..0e2eff6 100644
--- a/src/main/twirl/dashboard/pulls.scala.html
+++ b/src/main/twirl/dashboard/pulls.scala.html
@@ -1,42 +1,16 @@
-@(listparts: play.twirl.api.Html,
- counts: List[service.PullRequestService.PullRequestCount],
- repositories: List[(String, String, Int)],
+@(issues: List[service.IssuesService.IssueInfo],
+ page: Int,
+ openCount: Int,
+ closedCount: Int,
condition: service.IssuesService.IssueSearchCondition,
- filter: String)(implicit context: app.Context)
+ filter: String,
+ groups: List[String])(implicit context: app.Context)
@import context._
@import view.helpers._
-@html.main("Your Issues"){
-
+@html.main("Pull Requests"){
@dashboard.html.tab("pulls")
-
-
- @listparts
+
+ @issuesnavi(filter, "pulls", condition)
+ @pullslist(issues, page, openCount, closedCount, condition, filter, groups)
-
}
diff --git a/src/main/twirl/dashboard/pullslist.scala.html b/src/main/twirl/dashboard/pullslist.scala.html
index 46343b4..1208816 100644
--- a/src/main/twirl/dashboard/pullslist.scala.html
+++ b/src/main/twirl/dashboard/pullslist.scala.html
@@ -3,99 +3,65 @@
openCount: Int,
closedCount: Int,
condition: service.IssuesService.IssueSearchCondition,
- repository: Option[service.RepositoryService.RepositoryInfo],
- hasWritePermission: Boolean)(implicit context: app.Context)
+ filter: String,
+ groups: List[String])(implicit context: app.Context)
@import context._
@import view.helpers._
@import service.IssuesService.IssueInfo
-
- @repository.map { repository =>
- @if(hasWritePermission){
-
- @helper.html.paginator(page, (if(condition.state == "open") openCount else closedCount), service.PullRequestService.PullRequestLimit, 7, condition.toURL)
-
New pull request
+@*
+