Added the index page which is used while in development.

This commit is contained in:
takezoe
2013-05-03 14:04:31 +09:00
parent 8fa1b36aa0
commit 0c3a301f24
8 changed files with 35 additions and 13 deletions

View File

@@ -4,8 +4,9 @@ import javax.servlet._
class ScalatraBootstrap extends LifeCycle { class ScalatraBootstrap extends LifeCycle {
override def init(context: ServletContext) { override def init(context: ServletContext) {
context.mount(new CreateRepositoryController, "/new") context.mount(new IndexController, "/")
context.mount(new WikiController, "/*") context.mount(new WikiController, "/*")
context.mount(new CreateRepositoryController, "/*")
context.mount(new RepositoryViewerController, "/*") context.mount(new RepositoryViewerController, "/*")
context.addListener(new ServletContextListener(){ context.addListener(new ServletContextListener(){

View File

@@ -13,11 +13,11 @@ abstract class ControllerBase extends ScalatraFilter with ClientSideValidationFo
implicit val jsonFormats = DefaultFormats implicit val jsonFormats = DefaultFormats
implicit def context: Context = Context(servletContext.getContextPath) implicit def context: Context = Context(servletContext.getContextPath, LoginUser)
// TODO get from session // TODO get from session
val LoginUser = System.getProperty("user.name") private val LoginUser = System.getProperty("user.name")
} }
case class Context(path: String) case class Context(path: String, loginUser: String)

View File

@@ -23,15 +23,15 @@ class CreateRepositoryController extends ControllerBase {
/** /**
* Show the new repository form. * Show the new repository form.
*/ */
get("/") { get("/new") {
html.newrepo() html.newrepo()
} }
/** /**
* Create new repository. * Create new repository.
*/ */
post("/", form) { form => post("/new", form) { form =>
val gitdir = getRepositoryDir(LoginUser, form.name) val gitdir = getRepositoryDir(context.loginUser, form.name)
val repository = new RepositoryBuilder().setGitDir(gitdir).setBare.build val repository = new RepositoryBuilder().setGitDir(gitdir).setBare.build
repository.create repository.create
@@ -40,7 +40,7 @@ class CreateRepositoryController extends ControllerBase {
config.setBoolean("http", null, "receivepack", true) config.setBoolean("http", null, "receivepack", true)
config.save config.save
val tmpdir = getInitRepositoryDir(LoginUser, form.name) val tmpdir = getInitRepositoryDir(context.loginUser, form.name)
try { try {
// Clone the repository // Clone the repository
Git.cloneRepository.setURI(gitdir.toURI.toString).setDirectory(tmpdir).call Git.cloneRepository.setURI(gitdir.toURI.toString).setDirectory(tmpdir).call
@@ -62,7 +62,7 @@ class CreateRepositoryController extends ControllerBase {
} }
// redirect to the repository // redirect to the repository
redirect("/%s/%s".format(LoginUser, form.name)) redirect("/%s/%s".format(context.loginUser, form.name))
} }
/** /**
@@ -72,7 +72,7 @@ class CreateRepositoryController extends ControllerBase {
def validate(name: String, value: String): Option[String] = { def validate(name: String, value: String): Option[String] = {
if(!value.matches("^[a-z0-9\\-_]+$")){ if(!value.matches("^[a-z0-9\\-_]+$")){
Some("Repository name contains invalid character.") Some("Repository name contains invalid character.")
} else if(getRepositories(LoginUser).contains(value)){ } else if(getRepositories(context.loginUser).contains(value)){
Some("Repository already exists.") Some("Repository already exists.")
} else { } else {
None None

View File

@@ -0,0 +1,9 @@
package app
class IndexController extends ControllerBase {
get("/"){
html.index()
}
}

View File

@@ -63,7 +63,7 @@ class WikiController extends ControllerBase {
val repository = params("repository") val repository = params("repository")
WikiUtil.savePage(owner, repository, form.currentPageName, form.pageName, WikiUtil.savePage(owner, repository, form.currentPageName, form.pageName,
form.content, LoginUser, form.message.getOrElse("")) form.content, context.loginUser, form.message.getOrElse(""))
redirect("%s/%s/wiki/%s".format(owner, repository, form.pageName)) redirect("%s/%s/wiki/%s".format(owner, repository, form.pageName))
} }

View File

@@ -0,0 +1,9 @@
@()(implicit context: app.Context)
@import context._
@main("GitBucket"){
<h1>GitBucket</h1>
<ul>
<li><a href="@path/@context.loginUser">User page</a></li>
<li><a href="@path/new">Create new repository</a></li>
</ul>
}

View File

@@ -31,7 +31,7 @@
<div class="nav-collapse collapse"> <div class="nav-collapse collapse">
<ul class="nav pull-right"> <ul class="nav pull-right">
<li><a href="@path/new">New repo</a></li> <li><a href="@path/new">New repo</a></li>
<li><a href="#about">Account</a></li> <li><a href="@path/@context.loginUser">Account</a></li>
<li><a href="#users">Users</a></li> <li><a href="#users">Users</a></li>
<li><a href="#contact">Sign out</a></li> <li><a href="#contact">Sign out</a></li>
</ul> </ul>
@@ -39,7 +39,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="container"> <div class="container body">
@body @body
</div> </div>
</body> </body>

View File

@@ -9,6 +9,9 @@ div.head a {
div.container { div.container {
width: 920px; width: 920px;
}
div.body {
margin-bottom: 40px; margin-bottom: 40px;
} }