diff --git a/README.md b/README.md index 612bc43..82fb685 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ GitBucket [![Gitter chat](https://badges.gitter.im/gitbucket/gitbucket.png)](https://gitter.im/gitbucket/gitbucket) [![Build Status](https://travis-ci.org/gitbucket/gitbucket.svg?branch=master)](https://travis-ci.org/gitbucket/gitbucket) ========= -GitBucket is the easily installable GitHub clone powered by Scala. - +GitBucket is a GitHub clone powered by Scala which has easy installation and high extensibility. Features -------- diff --git a/project/build.scala b/project/build.scala index a311c75..3fe6111 100644 --- a/project/build.scala +++ b/project/build.scala @@ -49,7 +49,7 @@ "org.scalatra" %% "scalatra-specs2" % ScalatraVersion % "test", "org.scalatra" %% "scalatra-json" % ScalatraVersion, "org.json4s" %% "json4s-jackson" % "3.2.11", - "jp.sf.amateras" %% "scalatra-forms" % "0.1.0", + "jp.sf.amateras" %% "scalatra-forms" % "0.2.0", "commons-io" % "commons-io" % "2.4", "io.github.gitbucket" % "markedj" % "1.0.5-SNAPSHOT", "org.apache.commons" % "commons-compress" % "1.9", diff --git a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala index 916f6d4..883259b 100644 --- a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala @@ -47,7 +47,7 @@ case class WebHookForm(url: String, events: Set[WebHook.Event]) def webHookForm(update:Boolean) = mapping( - "url" -> trim(label("url", text(required, webHook(update)))), + "url" -> trim(label("url", text(required, webHook(update)))), "events" -> webhookEvents )(WebHookForm.apply) @@ -149,7 +149,7 @@ */ get("/:owner/:repository/settings/hooks/new")(ownerOnly { repository => val webhook = WebHook(repository.owner, repository.name, "") - html.editHooks(webhook, Set(WebHook.Push), repository, flash.get("info"), true) + html.edithooks(webhook, Set(WebHook.Push), repository, flash.get("info"), true) }) /** @@ -226,7 +226,7 @@ */ get("/:owner/:repository/settings/hooks/edit/:url")(ownerOnly { repository => getWebHook(repository.owner, repository.name, params("url")).map{ case (webhook, events) => - html.editHooks(webhook, events, repository, flash.get("info"), false) + html.edithooks(webhook, events, repository, flash.get("info"), false) } getOrElse NotFound }) @@ -290,7 +290,7 @@ if(getWebHook(params("owner"), params("repository"), value).isDefined != needExists){ Some(if(needExists){ "URL had not been registered yet." - }else{ + } else { "URL had been registered already." }) } else { @@ -299,12 +299,14 @@ } private def webhookEvents = new ValueType[Set[WebHook.Event]]{ - def convert(name: String, params: Map[String, String], messages: Messages): Set[WebHook.Event] = WebHook.Event.values.flatMap{ t => - params.get(name+"."+t.name).map(_ => t) - }.toSet + def convert(name: String, params: Map[String, String], messages: Messages): Set[WebHook.Event] = { + WebHook.Event.values.flatMap { t => + params.get(name + "." + t.name).map(_ => t) + }.toSet + } def validate(name: String, params: Map[String, String], messages: Messages): Seq[(String, String)] = if(convert(name,params,messages).isEmpty){ Seq(name -> messages("error.required").format(name)) - }else{ + } else { Nil } } diff --git a/src/main/scala/gitbucket/core/service/RepositoryService.scala b/src/main/scala/gitbucket/core/service/RepositoryService.scala index 6c3263f..971ff4a 100644 --- a/src/main/scala/gitbucket/core/service/RepositoryService.scala +++ b/src/main/scala/gitbucket/core/service/RepositoryService.scala @@ -47,6 +47,7 @@ Repositories insert repository.copy(userName = newUserName, repositoryName = newRepositoryName) val webHooks = WebHooks .filter(_.byRepository(oldUserName, oldRepositoryName)).list + val webHookEvents = WebHookEvents .filter(_.byRepository(oldUserName, oldRepositoryName)).list val milestones = Milestones .filter(_.byRepository(oldUserName, oldRepositoryName)).list val issueId = IssueId .filter(_.byRepository(oldUserName, oldRepositoryName)).list val issues = Issues .filter(_.byRepository(oldUserName, oldRepositoryName)).list @@ -75,9 +76,10 @@ deleteRepository(oldUserName, oldRepositoryName) - WebHooks .insertAll(webHooks .map(_.copy(userName = newUserName, repositoryName = newRepositoryName)) :_*) - Milestones.insertAll(milestones .map(_.copy(userName = newUserName, repositoryName = newRepositoryName)) :_*) - IssueId .insertAll(issueId .map(_.copy(_1 = newUserName, _2 = newRepositoryName)) :_*) + WebHooks .insertAll(webHooks .map(_.copy(userName = newUserName, repositoryName = newRepositoryName)) :_*) + WebHookEvents.insertAll(webHookEvents .map(_.copy(userName = newUserName, repositoryName = newRepositoryName)) :_*) + Milestones .insertAll(milestones .map(_.copy(userName = newUserName, repositoryName = newRepositoryName)) :_*) + IssueId .insertAll(issueId .map(_.copy(_1 = newUserName, _2 = newRepositoryName)) :_*) val newMilestones = Milestones.filter(_.byRepository(newUserName, newRepositoryName)).list Issues.insertAll(issues.map { x => x.copy( @@ -146,6 +148,7 @@ IssueId .filter(_.byRepository(userName, repositoryName)).delete Milestones .filter(_.byRepository(userName, repositoryName)).delete WebHooks .filter(_.byRepository(userName, repositoryName)).delete + WebHookEvents .filter(_.byRepository(userName, repositoryName)).delete Repositories .filter(_.byRepository(userName, repositoryName)).delete // Update ORIGIN_USER_NAME and ORIGIN_REPOSITORY_NAME diff --git a/src/main/twirl/gitbucket/core/repo/blob.scala.html b/src/main/twirl/gitbucket/core/repo/blob.scala.html index 428d168..fad8948 100644 --- a/src/main/twirl/gitbucket/core/repo/blob.scala.html +++ b/src/main/twirl/gitbucket/core/repo/blob.scala.html @@ -69,7 +69,7 @@ @if(content.viewType == "text"){ @defining(isRenderable(pathList.reverse.head)){ isRrenderable => @if(!isBlame && isRrenderable) { -
+
@renderMarkup(pathList, content.content.get, branch, repository, false, false, true)
} else { diff --git a/src/main/twirl/gitbucket/core/repo/editor.scala.html b/src/main/twirl/gitbucket/core/repo/editor.scala.html index fc5b7c6..0bbc1f0 100644 --- a/src/main/twirl/gitbucket/core/repo/editor.scala.html +++ b/src/main/twirl/gitbucket/core/repo/editor.scala.html @@ -130,7 +130,7 @@ enableTaskList : false }, function(data){ $('#preview').empty().append( - $('
').html(data)); + $('
').html(data)); prettyPrint(); }); } else { diff --git a/src/main/twirl/gitbucket/core/repo/files.scala.html b/src/main/twirl/gitbucket/core/repo/files.scala.html index 7512341..e10309b 100644 --- a/src/main/twirl/gitbucket/core/repo/files.scala.html +++ b/src/main/twirl/gitbucket/core/repo/files.scala.html @@ -127,7 +127,7 @@ @readme.map { case(filePath, content) =>
@filePath.reverse.head
-
@renderMarkup(filePath, content, branch, repository, false, false, true)
+
@renderMarkup(filePath, content, branch, repository, false, false, true)
} } diff --git a/src/main/twirl/gitbucket/core/settings/danger.scala.html b/src/main/twirl/gitbucket/core/settings/danger.scala.html index 91ef578..260bb06 100644 --- a/src/main/twirl/gitbucket/core/settings/danger.scala.html +++ b/src/main/twirl/gitbucket/core/settings/danger.scala.html @@ -6,7 +6,7 @@ @menu("danger", repository){
Danger Zone
-
+
diff --git a/src/main/twirl/gitbucket/core/settings/editHooks.scala.html b/src/main/twirl/gitbucket/core/settings/editHooks.scala.html deleted file mode 100644 index 85f453f..0000000 --- a/src/main/twirl/gitbucket/core/settings/editHooks.scala.html +++ /dev/null @@ -1,165 +0,0 @@ -@(webHook: gitbucket.core.model.WebHook, - events: Set[gitbucket.core.model.WebHook.Event], - repository: gitbucket.core.service.RepositoryService.RepositoryInfo, - info: Option[Any], - create: Boolean)(implicit context: gitbucket.core.controller.Context) -@import context._ -@import gitbucket.core.view.helpers._ -@import gitbucket.core.model.WebHook._ -@check(name: String, event: Event)={ -name="@(name).@event.name" value="on" @if(events(event)){checked} -} -@html.main("Settings", Some(repository)){ - @html.menu("settings", repository){ - @menu("hooks", repository){ - @helper.html.information(info) - -
-
- Webhook / Manage webhook -
-
- -
- -
- - @if(create){ - - }else{ - - - } - - -
-
- -
- - - - - - -
- @if(!create){ - - - Delete webhook - - }else{ - - } - -
-
- - - } - } -} - diff --git a/src/main/twirl/gitbucket/core/settings/edithooks.scala.html b/src/main/twirl/gitbucket/core/settings/edithooks.scala.html new file mode 100644 index 0000000..567d185 --- /dev/null +++ b/src/main/twirl/gitbucket/core/settings/edithooks.scala.html @@ -0,0 +1,164 @@ +@(webHook: gitbucket.core.model.WebHook, + events: Set[gitbucket.core.model.WebHook.Event], + repository: gitbucket.core.service.RepositoryService.RepositoryInfo, + info: Option[Any], + create: Boolean)(implicit context: gitbucket.core.controller.Context) +@import context._ +@import gitbucket.core.view.helpers._ +@import gitbucket.core.model.WebHook._ +@check(name: String, event: Event)={ + name="@(name).@event.name" value="on" @if(events(event)){checked} +} +@html.main("Settings", Some(repository)){ + @html.menu("settings", repository){ + @menu("hooks", repository){ + @helper.html.information(info) + +
+
+ Webhook / Manage webhook +
+
+
+
+ +
+ + @if(create){ + + } else { + + + } + + +
+
+ +
+ + + + + + +
+ @if(!create){ + + + Delete webhook + + } else { + + } +
+
+
+ + + } + } +} diff --git a/src/main/twirl/gitbucket/core/settings/hooks.scala.html b/src/main/twirl/gitbucket/core/settings/hooks.scala.html index aacf4a5..1ddcf93 100644 --- a/src/main/twirl/gitbucket/core/settings/hooks.scala.html +++ b/src/main/twirl/gitbucket/core/settings/hooks.scala.html @@ -10,10 +10,10 @@
- Add webhook + Add webhook Webhooks
-
+

Webhooks allow external services to be notified when certain events happen within your repository. When the specified events happen, we’ll send a POST request to each of the URLs you provide. @@ -28,7 +28,7 @@ (@events.map(_.name).mkString(", ")) -

+
diff --git a/src/main/twirl/gitbucket/core/settings/options.scala.html b/src/main/twirl/gitbucket/core/settings/options.scala.html index 1e03356..5287cb6 100644 --- a/src/main/twirl/gitbucket/core/settings/options.scala.html +++ b/src/main/twirl/gitbucket/core/settings/options.scala.html @@ -8,7 +8,7 @@
Settings
-
+
diff --git a/src/main/webapp/assets/common/css/gitbucket.css b/src/main/webapp/assets/common/css/gitbucket.css index 900c336..fba2d24 100644 --- a/src/main/webapp/assets/common/css/gitbucket.css +++ b/src/main/webapp/assets/common/css/gitbucket.css @@ -1715,15 +1715,13 @@ } .markdown-head { - left: -18px; - padding-left: 18px; position: relative; line-height: 1.7; } a.markdown-anchor-link { position: absolute; - left: 0px; + left: -18px; display: none; color: #999; /* From octicon style */