A simple wiki page (markdown file "_Footer.md") is used as footer for the wiki.

Github specification:
https://help.github.com/articles/creating-a-footer/

- the footer is rendered below the wiki page content.
- a direct link to edit the footer.
This commit is contained in:
Viliam Dias
2015-12-07 13:45:37 -02:00
parent 9777d543b1
commit ef3b02b718
3 changed files with 43 additions and 5 deletions

View File

@@ -39,7 +39,8 @@ trait WikiControllerBase extends ControllerBase {
getWikiPage(repository.owner, repository.name, "Home").map { page =>
html.page("Home", page, getWikiPageList(repository.owner, repository.name),
repository, hasWritePermission(repository.owner, repository.name, context.loginAccount),
getWikiPage(repository.owner, repository.name, "_Sidebar"))
getWikiPage(repository.owner, repository.name, "_Sidebar"),
getWikiPage(repository.owner, repository.name, "_Footer"))
} getOrElse redirect(s"/${repository.owner}/${repository.name}/wiki/Home/_edit")
})
@@ -49,7 +50,8 @@ trait WikiControllerBase extends ControllerBase {
getWikiPage(repository.owner, repository.name, pageName).map { page =>
html.page(pageName, page, getWikiPageList(repository.owner, repository.name),
repository, hasWritePermission(repository.owner, repository.name, context.loginAccount),
getWikiPage(repository.owner, repository.name, "_Sidebar"))
getWikiPage(repository.owner, repository.name, "_Sidebar"),
getWikiPage(repository.owner, repository.name, "_Footer"))
} getOrElse redirect(s"/${repository.owner}/${repository.name}/wiki/${StringUtil.urlEncode(pageName)}/_edit")
})
@@ -203,7 +205,7 @@ trait WikiControllerBase extends ControllerBase {
}
}
private def notReservedPageName(value: String) = value != "_Sidebar"
private def notReservedPageName(value: String) = ! (Array[String]("_Sidebar","_Footer") contains value)
private def conflictForNew: Constraint = new Constraint(){
override def validate(name: String, value: String, messages: Messages): Option[String] = {

View File

@@ -3,7 +3,8 @@
pages: List[String],
repository: gitbucket.core.service.RepositoryService.RepositoryInfo,
hasWritePermission: Boolean,
sidebar: Option[gitbucket.core.service.WikiService.WikiPageInfo])(implicit context: gitbucket.core.controller.Context)
sidebar: Option[gitbucket.core.service.WikiService.WikiPageInfo],
footer: Option[gitbucket.core.service.WikiService.WikiPageInfo])(implicit context: gitbucket.core.controller.Context)
@import context._
@import gitbucket.core.view.helpers._
@import gitbucket.core.service.WikiService._
@@ -59,7 +60,7 @@
}.getOrElse{
@if(hasWritePermission){
<a class="button-link" href="@url(repository)/wiki/_Sidebar/_edit" style="text-decoration: none;">
<div class="wiki-sidebar" style="text-align:center;">
<div class="wiki-sidebar-dotted" style="text-align:center;">
<i class="octicon octicon-plus" style="font-size: 16px;"></i>
Add a custom sidebar
</div>
@@ -82,6 +83,25 @@
<div class="markdown-body">
@markdown(page.content, repository, true, false, false, false, pages)
</div>
@footer.map { footerPage =>
<div class="wiki-sidebar wiki-footer">
@if(hasWritePermission){
<a href="@url(repository)/wiki/_Footer/_edit" style="text-decoration: none;">
<span class="octicon octicon-pencil" style="position: relative; float: right;"></span>
</a>
}
@markdown(footerPage.content, repository, true, false, false, false, pages)
</div>
}.getOrElse{
@if(hasWritePermission){
<a class="button-link" href="@url(repository)/wiki/_Footer/_edit" style="text-decoration: none;">
<div class="wiki-sidebar-dotted" style="text-align:center;">
<i class="octicon octicon-plus" style="font-size: 16px;"></i>
Add a custom footer
</div>
</a>
}
}
</div>
}
}

View File

@@ -1195,6 +1195,22 @@ div.wiki-sidebar {
margin-top: 20px;
}
div.wiki-sidebar-dotted {
background-color: white;
border: 1px dotted #d8d8d8;
padding: 4px;
border-bottom-left-radius: 3px;
border-bottom-right-radius: 3px;
margin-bottom: 20px;
margin-top: 20px;
}
div.wiki-footer {
margin-top: 50px;
background-color: #f5f5f5;
color: gray;
}
div.wiki-index-content {
background-color: white;
border: 1px solid #d8d8d8;