(refs #69)Forked repositories tree is changed to flat list.

Because it can't render forked tree correctly if parent repository has been removed.
This commit is contained in:
takezoe
2013-08-09 21:43:30 +09:00
parent 709c8f32b5
commit 1e566f4a20
4 changed files with 13 additions and 32 deletions

View File

@@ -255,7 +255,7 @@ trait PullRequestsControllerBase extends ControllerBase {
commits, commits,
diffs, diffs,
repository.repository.originUserName.map { userName => repository.repository.originUserName.map { userName =>
getRepositoryNames(getForkedRepositoryTree(userName, repository.name)) getForkedRepositories(userName, repository.name)
} getOrElse Nil, } getOrElse Nil,
originBranch, originBranch,
forkedBranch, forkedBranch,

View File

@@ -184,7 +184,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
get("/:owner/:repository/network/members")(referrersOnly { repository => get("/:owner/:repository/network/members")(referrersOnly { repository =>
repo.html.forked( repo.html.forked(
getForkedRepositoryTree( getForkedRepositories(
repository.repository.originUserName.getOrElse(repository.owner), repository.repository.originUserName.getOrElse(repository.owner),
repository.repository.originRepositoryName.getOrElse(repository.name)), repository.repository.originRepositoryName.getOrElse(repository.name)),
repository) repository)

View File

@@ -201,17 +201,11 @@ trait RepositoryService { self: AccountService =>
}.list.length }.list.length
def getForkedRepositoryTree(userName: String, repositoryName: String): RepositoryTreeNode = { def getForkedRepositories(userName: String, repositoryName: String): List[String] =
RepositoryTreeNode(userName, repositoryName, Query(Repositories).filter { t =>
Query(Repositories).filter { t => (t.originUserName is userName.bind) && (t.originRepositoryName is repositoryName.bind)
(t.parentUserName is userName.bind) && (t.parentRepositoryName is repositoryName.bind) }
}.map { t => .sortBy(_.lastActivityDate desc).map(_.userName).list
t.userName ~ t.repositoryName
}.list.map { case (userName, repositoryName) =>
getForkedRepositoryTree(userName, repositoryName)
}
)
}
} }

View File

@@ -1,4 +1,4 @@
@(members: service.RepositoryService.RepositoryTreeNode, @(members: List[String],
repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context) repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context)
@import context._ @import context._
@import view.helpers._ @import view.helpers._
@@ -7,22 +7,9 @@
<li class="active"><a href="@url(repository)/network/members">Members</a></li> <li class="active"><a href="@url(repository)/network/members">Members</a></li>
</ul> </ul>
<h3>Members of the @repository.name Network</h3> <h3>Members of the @repository.name Network</h3>
<ul> @members.map { owner =>
@renderTree(members) <div class="block">
</ul> <a href="@url(owner)">@owner</a> / <a href="@path/@owner/@repository.name">@repository.name</a>
}
@renderTree(node: service.RepositoryService.RepositoryTreeNode) = {
<li>
<div style="font-size: 120%; margin-bottom: 8px;">
@avatar(node.owner, 20) <a href="@url(node.owner)">@node.owner</a> / <a href="@path/@node.owner/@node.name">@node.name</a>
</div> </div>
@if(node.children.nonEmpty){ }
<ul> }
@node.children.map { child =>
@renderTree(child)
}
</ul>
}
</li>
}