diff --git a/src/main/scala/gitbucket/core/controller/WikiController.scala b/src/main/scala/gitbucket/core/controller/WikiController.scala index a587c8e..1c16def 100644 --- a/src/main/scala/gitbucket/core/controller/WikiController.scala +++ b/src/main/scala/gitbucket/core/controller/WikiController.scala @@ -39,7 +39,8 @@ 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 @@ 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 @@ } } - 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] = { diff --git a/src/main/twirl/gitbucket/core/wiki/page.scala.html b/src/main/twirl/gitbucket/core/wiki/page.scala.html index e9700d9..74e9690 100644 --- a/src/main/twirl/gitbucket/core/wiki/page.scala.html +++ b/src/main/twirl/gitbucket/core/wiki/page.scala.html @@ -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){ -
+
Add a custom sidebar
@@ -82,6 +83,25 @@
@markdown(page.content, repository, true, false, false, false, pages)
+ @footer.map { footerPage => +
+ }.getOrElse{ + @if(hasWritePermission){ + +
+ + Add a custom footer +
+
+ } + }
} } diff --git a/src/main/webapp/assets/common/css/gitbucket.css b/src/main/webapp/assets/common/css/gitbucket.css index f1bb307..2053f0f 100644 --- a/src/main/webapp/assets/common/css/gitbucket.css +++ b/src/main/webapp/assets/common/css/gitbucket.css @@ -1195,6 +1195,22 @@ 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;