diff --git a/src/main/scala/app/IssuesController.scala b/src/main/scala/app/IssuesController.scala index 5947851..f47f480 100644 --- a/src/main/scala/app/IssuesController.scala +++ b/src/main/scala/app/IssuesController.scala @@ -234,8 +234,10 @@ post("/:owner/:repository/issues/batchedit/state")(collaboratorsOnly { repository => defining(params.get("value")){ action => - executeBatch(repository) { - handleComment(_, None, repository)( _ => action) + action match { + case Some("open") => executeBatch(repository) { handleComment(_, None, repository)( _ => Some("reopen")) } + case Some("close") => executeBatch(repository) { handleComment(_, None, repository)( _ => Some("close")) } + case _ => // TODO BadRequest } } }) @@ -311,15 +313,15 @@ val (action, recordActivity) = getAction(issue) .collect { - case "close" => true -> (Some("close") -> - Some(if(issue.isPullRequest) recordClosePullRequestActivity _ else recordCloseIssueActivity _)) - case "reopen" => false -> (Some("reopen") -> - Some(recordReopenIssueActivity _)) - } + case "close" if(!issue.closed) => true -> + (Some("close") -> Some(if(issue.isPullRequest) recordClosePullRequestActivity _ else recordCloseIssueActivity _)) + case "reopen" if(issue.closed) => false -> + (Some("reopen") -> Some(recordReopenIssueActivity _)) + } .map { case (closed, t) => - updateClosed(owner, name, issueId, closed) - t - } + updateClosed(owner, name, issueId, closed) + t + } .getOrElse(None -> None) val commentId = content @@ -329,7 +331,7 @@ case (content, action) => createComment(owner, name, userName, issueId, content, action) } - // record activity + // record comment activity if comment is entered content foreach { (if(issue.isPullRequest) recordCommentPullRequestActivity _ else recordCommentIssueActivity _) (owner, name, userName, issueId, _) diff --git a/src/main/scala/app/PullRequestsController.scala b/src/main/scala/app/PullRequestsController.scala index b620140..55a63ad 100644 --- a/src/main/scala/app/PullRequestsController.scala +++ b/src/main/scala/app/PullRequestsController.scala @@ -62,10 +62,6 @@ searchPullRequests(None, repository) }) - get("/:owner/:repository/pulls/:userName")(referrersOnly { repository => - searchPullRequests(Some(params("userName")), repository) - }) - get("/:owner/:repository/pull/:id")(referrersOnly { repository => params("id").toIntOpt.flatMap{ issueId => val owner = repository.owner diff --git a/src/main/twirl/issues/list.scala.html b/src/main/twirl/issues/list.scala.html index 2a9410f..024a2c0 100644 --- a/src/main/twirl/issues/list.scala.html +++ b/src/main/twirl/issues/list.scala.html @@ -18,121 +18,6 @@ @html.menu("issues", repository){ @tab("issues", false, repository)
- @* -
- -
- @if(condition.milestoneId.isEmpty){ - No milestone selected - } else { - @if(condition.milestoneId.get.isEmpty){ - Issues with no milestone - } else { - Milestone: @milestones.find(_.milestoneId == condition.milestoneId.get.get).map(_.title) - } - } - @helper.html.dropdown() { - @if(condition.milestoneId.isDefined){ -
  • - - Clear milestone filter - -
  • - } -
  • - - @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 -
    - @milestone.dueDate.map { dueDate => - @if(isPast(dueDate)){ - Due in @date(dueDate) - } else { - Due in @date(dueDate) - } - }.getOrElse { - No due date - } -
    -
    -
  • - } - } - @if(condition.milestoneId.isDefined && condition.milestoneId.get.isDefined){ - @milestones.find(_.milestoneId == condition.milestoneId.get.get).map { milestone => -
    - @_root_.issues.milestones.html.progress(openCount + closedCount, closedCount, false) -
    - @openCount open issues - @if(milestone.closedDate.isDefined){ - @milestone.closedDate.map { closedDate => - Closed in @date(closedDate) - } - } else { - @milestone.dueDate.map { dueDate => - @if(isPast(dueDate)){ - Due in @date(dueDate) - } else { - Due in @date(dueDate) - } - } - } - } - } -
    - Labels -
    - -
    - @if(hasWritePermission){ -
    - -
    - New label - @_root_.issues.labels.html.edit(None, repository) - } -
    - *@ - @***** show issue list *****@
    @listparts(issues, page, openCount, closedCount, condition, collaborators, milestones, labels, Some(repository), hasWritePermission)
    @@ -148,20 +33,14 @@ @if(hasWritePermission){ +} diff --git a/src/main/twirl/pulls/listparts.scala.html b/src/main/twirl/pulls/listparts.scala.html index fde7f88..35eb66f 100644 --- a/src/main/twirl/pulls/listparts.scala.html +++ b/src/main/twirl/pulls/listparts.scala.html @@ -11,138 +11,118 @@ @import context._ @import view.helpers._ @import service.IssuesService.IssueInfo -@* -
    - @openCount Open - @closedCount Closed -
    -@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 - -
  • -} -*@ @@ -158,7 +138,6 @@ }
    @openCount Open @closedCount Closed -
    +
    @helper.html.dropdown("Author", flat = true) { - @collaborators.map { collaborator => -
  • - - @helper.html.checkicon(condition.author == Some(collaborator)) - @avatar(collaborator, 20) @collaborator - -
  • - } + @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 - -
  • - } + @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.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 - -
  • - } + @collaborators.map { collaborator => +
  • + + @helper.html.checkicon(condition.assigned == Some(collaborator)) + @avatar(collaborator, 20) @collaborator + +
  • + } } @helper.html.dropdown("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 - -
  • +
  • + + @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 + +
  • + } +
    +
    + @helper.html.dropdown("Mark as", flat = true) { +
  • Open
  • +
  • Close
  • + } + @helper.html.dropdown("Label", flat = true) { + @labels.map { label => +
  • + + +   + @label.labelName + +
  • + } + } + @helper.html.dropdown("Milestone", flat = true) { +
  • No milestone
  • + @milestones.filter(_.closedDate.isEmpty).map { milestone => +
  • @milestone.title
  • + } + } + @helper.html.dropdown("Assignee", flat = true) { +
  • Clear assignee
  • + @collaborators.map { collaborator => +
  • @avatar(collaborator, 20) @collaborator
  • + } }
    @if(hasWritePermission){ - - }