New wiki page creation works.

This commit is contained in:
takezoe
2013-05-02 09:03:08 +09:00
parent 1909fc605a
commit ac1b42eb5d
4 changed files with 35 additions and 28 deletions

View File

@@ -11,7 +11,7 @@ class WikiController extends ControllerBase {
"pageName" -> trim(label("Page name" , text(required, maxlength(40)))), "pageName" -> trim(label("Page name" , text(required, maxlength(40)))),
"content" -> trim(label("Content" , text(required))), "content" -> trim(label("Content" , text(required))),
"message" -> trim(label("Message" , optional(text()))), "message" -> trim(label("Message" , optional(text()))),
"currentPageName" -> trim(label("Current page name" , text(required))) "currentPageName" -> trim(label("Current page name" , text()))
)(WikiPageEditForm.apply) )(WikiPageEditForm.apply)
get("/:owner/:repository/wiki"){ get("/:owner/:repository/wiki"){
@@ -43,14 +43,21 @@ class WikiController extends ControllerBase {
JGitUtil.getRepositoryInfo(owner, repository, servletContext)) JGitUtil.getRepositoryInfo(owner, repository, servletContext))
} }
post("/:owner/:repository/wiki/:page/_edit", form){ form => post("/:owner/:repository/wiki/_save", form){ form =>
val owner = params("owner") val owner = params("owner")
val repository = params("repository") val repository = params("repository")
val page = params("page")
WikiUtil.savePage(owner, repository, form.currentPageName, form.pageName, WikiUtil.savePage(owner, repository, form.currentPageName, form.pageName,
form.content, LoginUser, form.message.getOrElse("")) form.content, LoginUser, form.message.getOrElse(""))
redirect("%s/%s/wiki/%s".format(owner, repository, page)) redirect("%s/%s/wiki/%s".format(owner, repository, form.pageName))
}
get("/:owner/:repository/wiki/_new"){
val owner = params("owner")
val repository = params("repository")
html.wikiedit("", None,
JGitUtil.getRepositoryInfo(owner, repository, servletContext))
} }
} }

View File

@@ -98,7 +98,7 @@ object WikiUtil {
cloned.add.addFilepattern(file.getName).call cloned.add.addFilepattern(file.getName).call
// delete file // delete file
if(currentPageName != newPageName){ if(currentPageName != "" && currentPageName != newPageName){
cloned.rm.addFilepattern(currentPageName + ".md") cloned.rm.addFilepattern(currentPageName + ".md")
} }

View File

@@ -16,7 +16,7 @@
</li> </li>
<li class="pull-right"> <li class="pull-right">
<div class="btn-group"> <div class="btn-group">
<a class="btn" href="#">New Page</a> <a class="btn" href="@path/@repository.owner/@repository.name/wiki/_new">New Page</a>
<a class="btn" href="@path/@repository.owner/@repository.name/wiki/@pageName/_edit">Edit Page</a> <a class="btn" href="@path/@repository.owner/@repository.name/wiki/@pageName/_edit">Edit Page</a>
<a class="btn" href="#">Page History</a> <a class="btn" href="#">Page History</a>
</div> </div>

View File

@@ -1,7 +1,7 @@
@(pageName: String, page: Option[util.WikiUtil.WikiPageInfo], repository: app.RepositoryInfo)(implicit context: app.Context) @(pageName: String, page: Option[util.WikiUtil.WikiPageInfo], repository: app.RepositoryInfo)(implicit context: app.Context)
@import view.helpers @import view.helpers
@import context._ @import context._
@main(pageName + " - " + repository.owner + "/" + repository.name){ @main((if(pageName == "") "New Page" else pageName) + " - " + repository.owner + "/" + repository.name){
@header("wiki", repository) @header("wiki", repository)
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
<li><a href="">Home</a></li> <li><a href="">Home</a></li>
@@ -9,28 +9,28 @@
<li><a href="">Wiki History</a></li> <li><a href="">Wiki History</a></li>
<li><a href="">Git Access</a></li> <li><a href="">Git Access</a></li>
</ul> </ul>
@page.map { page =>
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
<li> <li>
<h1 class="wiki-title"><span class="description">Editing</span> @pageName</h1> <h1 class="wiki-title"><span class="description">Editing</span> @if(pageName == ""){New Page} else {@pageName}</h1>
</li> </li>
<li class="pull-right"> <li class="pull-right">
<div class="btn-group"> <div class="btn-group">
@if(pageName != ""){
<a class="btn" href="@path/@repository.owner/@repository.name/wiki/@pageName">View Page</a> <a class="btn" href="@path/@repository.owner/@repository.name/wiki/@pageName">View Page</a>
<a class="btn" href="#">Delete Page</a> <a class="btn" href="#">Delete Page</a>
<a class="btn" href="#">Page History</a> <a class="btn" href="#">Page History</a>
}
</div> </div>
</li> </li>
</ul> </ul>
<form action="_edit" method="POST" validate="true"> <form action="@path/@repository.owner/@repository.name/wiki/_save" method="POST" validate="true">
<span id="error-pageName" class="error-message"></span> <span id="error-pageName" class="error-message"></span>
<input type="text" name="pageName" value="@pageName" style="width: 900px; font-weight: bold;"/> <input type="text" name="pageName" value="@pageName" style="width: 900px; font-weight: bold;" placeholder="Input a page name."/>
<span id="error-content" class="error-message"></span> <span id="error-content" class="error-message"></span>
<textarea name="content" style="width: 900px; height: 400px;">@page.content</textarea> <textarea name="content" style="width: 900px; height: 400px;">@page.map(_.content)</textarea>
<input type="text" name="message" value="" style="width: 900px;" placeholder="Write a small message here explaining this change. (Optional)"/> <input type="text" name="message" value="" style="width: 900px;" placeholder="Write a small message here explaining this change. (Optional)"/>
<input type="hidden" name="currentPageName" value="@pageName"/> <input type="hidden" name="currentPageName" value="@pageName"/>
<input type="submit" value="Save" class="btn btn-primary"> <input type="submit" value="Save" class="btn btn-primary">
<input type="button" value="Preview" class="btn"> <input type="button" value="Preview" class="btn">
</form> </form>
}
} }