diff --git a/src/main/scala/app/PullRequestsController.scala b/src/main/scala/app/PullRequestsController.scala index bbe7d57..81eef60 100644 --- a/src/main/scala/app/PullRequestsController.scala +++ b/src/main/scala/app/PullRequestsController.scala @@ -46,60 +46,74 @@ val issueId = params("id").toInt getPullRequest(owner, name, issueId) map { case(issue, pullreq) => - pulls.html.pullreq( - issue, pullreq, - getComments(owner, name, issueId.toInt), - (getCollaborators(owner, name) :+ owner).sorted, - getMilestones(owner, name), - hasWritePermission(owner, name, context.loginAccount), - repository, - s"${baseUrl}${context.path}/git/${pullreq.requestUserName}/${pullreq.requestRepositoryName}.git") - } getOrElse NotFound - }) - - // TODO display in single page? - get("/:owner/:repository/pulls/:id/commits")(referrersOnly { repository => - val owner = repository.owner - val name = repository.name - val issueId = params("id").toInt - - getPullRequest(owner, name, issueId) map { case(issue, pullreq) => - pulls.html.commits( - issue, pullreq, - (if(pullreq.mergeStartId.isDefined){ - getCompareInfo(owner, name, pullreq.mergeStartId.get, owner, name, pullreq.mergeEndId.get)._1 - } else { - getCompareInfo(owner, name, pullreq.branch, pullreq.requestUserName, pullreq.requestRepositoryName, pullreq.requestBranch)._1 - }), - hasWritePermission(owner, name, context.loginAccount), - repository) - } getOrElse NotFound - }) - - // TODO display in single page? - get("/:owner/:repository/pulls/:id/files")(referrersOnly { repository => - val owner = repository.owner - val name = repository.name - val issueId = params("id").toInt - - getPullRequest(owner, name, issueId) map { case(issue, pullreq) => JGitUtil.withGit(getRepositoryDir(owner, name)){ git => - val newId = git.getRepository.resolve(pullreq.requestBranch) + val requestCommitId = git.getRepository.resolve(pullreq.requestBranch) - pulls.html.files( + val (commits, diffs) = if(pullreq.mergeStartId.isDefined){ + getCompareInfo(owner, name, pullreq.mergeStartId.get, owner, name, pullreq.mergeEndId.get) + } else { + getCompareInfo(owner, name, pullreq.branch, pullreq.requestUserName, pullreq.requestRepositoryName, pullreq.requestBranch) + } + + pulls.html.pullreq( issue, pullreq, - (if(pullreq.mergeStartId.isDefined){ - getCompareInfo(owner, name, pullreq.mergeStartId.get, owner, name, pullreq.mergeEndId.get)._2 - } else { - getCompareInfo(owner, name, pullreq.branch, pullreq.requestUserName, pullreq.requestRepositoryName, pullreq.requestBranch)._2 - }), - newId.getName, + getComments(owner, name, issueId.toInt), + (getCollaborators(owner, name) :+ owner).sorted, + getMilestones(owner, name), + commits, + diffs, + requestCommitId.getName, hasWritePermission(owner, name, context.loginAccount), - repository) + repository, + s"${baseUrl}${context.path}/git/${pullreq.requestUserName}/${pullreq.requestRepositoryName}.git") } + } getOrElse NotFound }) +// // TODO display in single page? +// get("/:owner/:repository/pulls/:id/commits")(referrersOnly { repository => +// val owner = repository.owner +// val name = repository.name +// val issueId = params("id").toInt +// +// getPullRequest(owner, name, issueId) map { case(issue, pullreq) => +// pulls.html.commits( +// issue, pullreq, +// (if(pullreq.mergeStartId.isDefined){ +// getCompareInfo(owner, name, pullreq.mergeStartId.get, owner, name, pullreq.mergeEndId.get)._1 +// } else { +// getCompareInfo(owner, name, pullreq.branch, pullreq.requestUserName, pullreq.requestRepositoryName, pullreq.requestBranch)._1 +// }), +// hasWritePermission(owner, name, context.loginAccount), +// repository) +// } getOrElse NotFound +// }) + +// // TODO display in single page? +// get("/:owner/:repository/pulls/:id/files")(referrersOnly { repository => +// val owner = repository.owner +// val name = repository.name +// val issueId = params("id").toInt +// +// getPullRequest(owner, name, issueId) map { case(issue, pullreq) => +// JGitUtil.withGit(getRepositoryDir(owner, name)){ git => +// val newId = git.getRepository.resolve(pullreq.requestBranch) +// +// pulls.html.files( +// issue, pullreq, +// (if(pullreq.mergeStartId.isDefined){ +// getCompareInfo(owner, name, pullreq.mergeStartId.get, owner, name, pullreq.mergeEndId.get)._2 +// } else { +// getCompareInfo(owner, name, pullreq.branch, pullreq.requestUserName, pullreq.requestRepositoryName, pullreq.requestBranch)._2 +// }), +// newId.getName, +// hasWritePermission(owner, name, context.loginAccount), +// repository) +// } +// } getOrElse NotFound +// }) + post("/:owner/:repository/pulls/:id/merge", mergeForm)(collaboratorsOnly { (form, repository) => val issueId = params("id").toInt diff --git a/src/main/twirl/pulls/commits.scala.html b/src/main/twirl/pulls/commits.scala.html index 64bead2..0a883f4 100644 --- a/src/main/twirl/pulls/commits.scala.html +++ b/src/main/twirl/pulls/commits.scala.html @@ -5,28 +5,24 @@ repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context) @import context._ @import view.helpers._ -@html.main("%s - Issue #%d - %s/%s".format(issue.title, issue.issueId, repository.owner, repository.name)){ - @html.header("issues", repository) - @tab("commits", issue.issueId, repository) -
- - @commits.map { day => +
+
+ @commits.map { day => + + + + @day.map { commit => - + + + - @day.map { commit => - - - - - - } } -
@date(day.head.time)
@date(day.head.time) + @avatar(commit.committer, 20) + @commit.committer + @commit.shortMessage + @commit.id.substring(0, 7) +
- @avatar(commit.committer, 20) - @commit.committer - @commit.shortMessage - @commit.id.substring(0, 7) -
-
-} \ No newline at end of file + } + + diff --git a/src/main/twirl/pulls/discussion.scala.html b/src/main/twirl/pulls/discussion.scala.html new file mode 100644 index 0000000..426c2ad --- /dev/null +++ b/src/main/twirl/pulls/discussion.scala.html @@ -0,0 +1,267 @@ +@(issue: model.Issue, + pullreq: model.PullRequest, + comments: List[model.IssueComment], + collaborators: List[String], + milestones: List[model.Milestone], + hasWritePermission: Boolean, + repository: service.RepositoryService.RepositoryInfo, + requestRepositoryUrl: String)(implicit context: app.Context) +@import context._ +@import view.helpers._ +
+
+
@avatar(issue.openedUserName, 48)
+
+
+
+ @if(hasWritePermission || loginAccount.map(_.userName == issue.openedUserName).getOrElse(false)){ + Edit + } +
+ @issue.openedUserName opened this issue @datetime(issue.registeredDate) +
+

@issue.title

+
+
+ + @issue.assignedUserName.map { userName => + @avatar(userName, 20) @userName is assigned + }.getOrElse("No one is assigned") + + @if(hasWritePermission){ + @helper.html.dropdown() { +
  • Clear assignee
  • +
  • + @collaborators.map { collaborator => +
  • @avatar(collaborator, 20) @collaborator
  • + } + } + } +
    + + @issue.milestoneId.map { milestoneId => + @milestones.find(_.milestoneId == milestoneId).map { milestone => + Milestone: @milestone.title + } + }.getOrElse("No milestone") + + @if(hasWritePermission){ + @helper.html.dropdown() { +
  • No milestone
  • +
  • + @milestones.map { milestone => +
  • @milestone.title
  • + } + } + } +
    +
    +
    + @markdown(issue.content getOrElse "No description given.", repository, false, true) +
    +
    +
    + @comments.map { comment => +
    @avatar(comment.commentedUserName, 48)
    +
    +
    + + @comment.commentedUserName commented + + @datetime(comment.registeredDate) + @if(hasWritePermission || loginAccount.map(_.userName == comment.commentedUserName).getOrElse(false)){ + + } + +
    +
    + @markdown(comment.content, repository, false, true) +
    +
    + @comment.action.map { action => +
    + @if(action == "close"){ + Closed + @comment.commentedUserName closed the issue @datetime(comment.registeredDate) + } else { + Reopened + @comment.commentedUserName reopened the issue @datetime(comment.registeredDate) + } +
    + } + } + @if(hasWritePermission){ +
    +
    +
    +
    + +
    +
    + This pull request can be automatically merged. +
    +
    + You can also merge branches on the command line. +
    + +
    + +
    +
    + } + @if(loginAccount.isDefined){ +
    +
    @avatar(loginAccount.get.userName, 48)
    +
    +
    + @helper.html.preview(repository, "", false, true, "width: 680px; height: 100px;") +
    +
    +
    + + + @if(hasWritePermission || issue.openedUserName == loginAccount.get.userName){ + + } +
    +
    + } +
    +
    + @if(issue.closed) { + Closed + } else { + Open + } +
    + @comments.size @plural(comments.size, "comment") +
    +
    +
    +
    + \ No newline at end of file diff --git a/src/main/twirl/pulls/files.scala.html b/src/main/twirl/pulls/files.scala.html index 4eba38b..a2f20d1 100644 --- a/src/main/twirl/pulls/files.scala.html +++ b/src/main/twirl/pulls/files.scala.html @@ -7,37 +7,33 @@ @import context._ @import view.helpers._ @import org.eclipse.jgit.diff.DiffEntry.ChangeType -@html.main("%s - Issue #%d - %s/%s".format(issue.title, issue.issueId, repository.owner, repository.name)){ - @html.header("issues", repository) - @tab("files", issue.issueId, repository) -
    -
    - -
    - Showing @diffs.size changed @plural(diffs.size, "file") +
    +
    +
    - - @helper.html.diff(diffs, repository, Some(commitId)) + Showing @diffs.size changed @plural(diffs.size, "file") +
    + +@helper.html.diff(diffs, repository, Some(commitId)) \ No newline at end of file diff --git a/src/main/twirl/pulls/tab.scala.html b/src/main/twirl/pulls/tab.scala.html deleted file mode 100644 index 3462022..0000000 --- a/src/main/twirl/pulls/tab.scala.html +++ /dev/null @@ -1,17 +0,0 @@ -@(active: String, issueId: Int, repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context) -@import context._ -@import view.helpers._ -