diff --git a/src/main/resources/update/gitbucket-core_4.11.xml b/src/main/resources/update/gitbucket-core_4.11.xml index 6026a95..1c41d88 100644 --- a/src/main/resources/update/gitbucket-core_4.11.xml +++ b/src/main/resources/update/gitbucket-core_4.11.xml @@ -11,22 +11,4 @@ - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/update/gitbucket-core_4.14.xml b/src/main/resources/update/gitbucket-core_4.14.xml index 9f8a9a7..b73fa5b 100644 --- a/src/main/resources/update/gitbucket-core_4.14.xml +++ b/src/main/resources/update/gitbucket-core_4.14.xml @@ -19,4 +19,20 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/scala/gitbucket/core/controller/AccountController.scala b/src/main/scala/gitbucket/core/controller/AccountController.scala index 1ca84b7..9d45edb 100644 --- a/src/main/scala/gitbucket/core/controller/AccountController.scala +++ b/src/main/scala/gitbucket/core/controller/AccountController.scala @@ -170,13 +170,6 @@ context.loginAccount.exists(x => members.exists { member => member.userName == x.userName && member.isManager })) } - // Webhooks - case "webhooks" => - gitbucket.core.account.html.webhook(account, - if(account.isGroupAccount) Nil else getGroupsByUserName(userName), - getAccountWebHooks(account.userName) - ) - // Repositories case _ => { val members = getGroupMembers(account.userName) @@ -321,40 +314,50 @@ redirect(s"/${userName}/_application") }) + get("/:userName/_hooks")(oneselfOnly { + val userName = params("userName") + getAccountByUserName(userName).map { account => + gitbucket.core.account.html.webhook(account, + if(account.isGroupAccount) Nil else getGroupsByUserName(userName), + getAccountWebHooks(account.userName) + ) + } getOrElse NotFound() + }) + /** - * Display the account web hook edit page. - */ + * Display the account web hook edit page. + */ get("/:userName/_hooks/new")(oneselfOnly { val userName = params("userName") getAccountByUserName(userName).map { account => val webhook = AccountWebHook(userName, "", WebHookContentType.FORM, None) html.edithooks(webhook, Set(WebHook.Push), account, if (account.isGroupAccount) Nil else getGroupsByUserName(userName), flash.get("info"), true) - } + } getOrElse NotFound() }) /** - * Add the account web hook URL. - */ + * Add the account web hook URL. + */ post("/:userName/_hooks/new", accountWebHookForm(false))(oneselfOnly { form => val userName = params("userName") addAccountWebHook(userName, form.url, form.events, form.ctype, form.token) flash += "info" -> s"Webhook ${form.url} created" - redirect(s"/${userName}?tab=webhooks") + redirect(s"/${userName}/_hooks") }) /** - * Delete the account web hook URL. - */ + * Delete the account web hook URL. + */ get("/:userName/_hooks/delete")(oneselfOnly { val userName = params("userName") deleteAccountWebHook(userName, params("url")) flash += "info" -> s"Webhook ${params("url")} deleted" - redirect(s"/${userName}?tab=webhooks") + redirect(s"/${userName}/_hooks") }) /** - * Display the account web hook edit page. - */ + * Display the account web hook edit page. + */ get("/:userName/_hooks/edit")(oneselfOnly { val userName = params("userName") getAccountByUserName(userName).map { account => @@ -365,20 +368,20 @@ }) /** - * Update account web hook settings. - */ + * Update account web hook settings. + */ post("/:userName/_hooks/edit", accountWebHookForm(true))(oneselfOnly { form => val userName = params("userName") updateAccountWebHook(userName, form.url, form.events, form.ctype, form.token) flash += "info" -> s"webhook ${form.url} updated" - redirect(s"/${userName}?tab=webhooks") + redirect(s"/${userName}/_hooks") }) /** - * Send the test request to registered account web hook URLs. - */ + * Send the test request to registered account web hook URLs. + */ ajaxPost("/:userName/_hooks/test")(oneselfOnly { - import scala.collection.JavaConverters._ + // TODO copied & pasted?? import scala.concurrent.duration._ import scala.concurrent._ import scala.util.control.NonFatal @@ -413,7 +416,7 @@ "headers" -> _headers(req.getAllHeaders), "payload" -> json )).recover(toErrorMap), 20 seconds), - "responce" -> Await.result(resFuture.map(res => Map( + "response" -> Await.result(resFuture.map(res => Map( "status" -> res.getStatusLine(), "body" -> EntityUtils.toString(res.getEntity()), "headers" -> _headers(res.getAllHeaders()) diff --git a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala index 6a2795f..93fee33 100644 --- a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala @@ -297,7 +297,7 @@ "headers" -> _headers(req.getAllHeaders), "payload" -> json )).recover(toErrorMap), 20 seconds), - "responce" -> Await.result(resFuture.map(res => Map( + "response" -> Await.result(resFuture.map(res => Map( "status" -> res.getStatusLine(), "body" -> EntityUtils.toString(res.getEntity()), "headers" -> _headers(res.getAllHeaders()) diff --git a/src/main/twirl/gitbucket/core/account/edithooks.scala.html b/src/main/twirl/gitbucket/core/account/edithooks.scala.html index 4b33246..f2a49cb 100644 --- a/src/main/twirl/gitbucket/core/account/edithooks.scala.html +++ b/src/main/twirl/gitbucket/core/account/edithooks.scala.html @@ -1,128 +1,131 @@ @(webHook: gitbucket.core.model.AccountWebHook, -events: Set[gitbucket.core.model.WebHook.Event], -account: gitbucket.core.model.Account, -groupNames: List[String], -info: Option[Any], -create: Boolean)(implicit context: gitbucket.core.controller.Context) + events: Set[gitbucket.core.model.WebHook.Event], + account: gitbucket.core.model.Account, + groupNames: List[String], + info: Option[Any], + create: Boolean)(implicit context: gitbucket.core.controller.Context) @import gitbucket.core.view.helpers @import gitbucket.core.model.WebHook._ @import gitbucket.core.model.WebHookContentType @check(name: String, event: Event) = { -name="@(name).@event.name" value="on" @if(events(event)){checked} + name="@(name).@event.name" value="on" @if(events(event)){checked} } -@gitbucket.core.account.html.main(account, groupNames, "webhooks"){ -
-
Webhook / Manage webhook
-
-
-
- -
- -
- @if(create){ - - } else { - - - } - -
-
- -
- -
-
- -
- -
-
- -
- -
- - - - - - -
- @if(!create){ - - - Delete webhook - - } else { - - } -
-
-
-
-