mirror of https://github.com/go-gitea/gitea
Implement Default Webhooks (#4299)
Partially implement #770. Add "Default Webhooks" page in site admin UI. Persist to the existing webhooks table, but store with RepoID=0 and OrgID=0. Upon repo creation, copy the set of default webhooks into the new repo.pull/6365/head
parent
cac9e6e760
commit
b34996a629
@ -0,0 +1,47 @@ |
||||
// Copyright 2018 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package admin |
||||
|
||||
import ( |
||||
"code.gitea.io/gitea/models" |
||||
"code.gitea.io/gitea/modules/base" |
||||
"code.gitea.io/gitea/modules/context" |
||||
"code.gitea.io/gitea/modules/setting" |
||||
) |
||||
|
||||
const ( |
||||
// tplAdminHooks template path for render hook settings
|
||||
tplAdminHooks base.TplName = "admin/hooks" |
||||
) |
||||
|
||||
// DefaultWebhooks render admin-default webhook list page
|
||||
func DefaultWebhooks(ctx *context.Context) { |
||||
ctx.Data["Title"] = ctx.Tr("admin.hooks") |
||||
ctx.Data["PageIsAdminHooks"] = true |
||||
ctx.Data["BaseLink"] = setting.AppSubURL + "/admin/hooks" |
||||
ctx.Data["Description"] = ctx.Tr("admin.hooks.desc") |
||||
|
||||
ws, err := models.GetDefaultWebhooks() |
||||
if err != nil { |
||||
ctx.ServerError("GetWebhooksDefaults", err) |
||||
return |
||||
} |
||||
|
||||
ctx.Data["Webhooks"] = ws |
||||
ctx.HTML(200, tplAdminHooks) |
||||
} |
||||
|
||||
// DeleteDefaultWebhook response for delete admin-default webhook
|
||||
func DeleteDefaultWebhook(ctx *context.Context) { |
||||
if err := models.DeleteDefaultWebhook(ctx.QueryInt64("id")); err != nil { |
||||
ctx.Flash.Error("DeleteDefaultWebhook: " + err.Error()) |
||||
} else { |
||||
ctx.Flash.Success(ctx.Tr("repo.settings.webhook_deletion_success")) |
||||
} |
||||
|
||||
ctx.JSON(200, map[string]interface{}{ |
||||
"redirect": setting.AppSubURL + "/admin/hooks", |
||||
}) |
||||
} |
@ -0,0 +1,37 @@ |
||||
{{template "base/head" .}} |
||||
<div class="admin new webhook"> |
||||
{{template "admin/navbar" .}} |
||||
<div class="ui container"> |
||||
{{template "base/alert" .}} |
||||
<h4 class="ui top attached header"> |
||||
{{if .PageIsAdminHooksNew}} |
||||
{{.i18n.Tr "admin.hooks.add_webhook"}} |
||||
{{else}} |
||||
{{.i18n.Tr "admin.hooks.update_webhook"}} |
||||
{{end}} |
||||
<div class="ui right"> |
||||
{{if eq .HookType "gitea"}} |
||||
<img class="img-13" src="{{AppSubUrl}}/img/gitea-sm.png"> |
||||
{{else if eq .HookType "gogs"}} |
||||
<img class="img-13" src="{{AppSubUrl}}/img/gogs.ico"> |
||||
{{else if eq .HookType "slack"}} |
||||
<img class="img-13" src="{{AppSubUrl}}/img/slack.png"> |
||||
{{else if eq .HookType "discord"}} |
||||
<img class="img-13" src="{{AppSubUrl}}/img/discord.png"> |
||||
{{else if eq .HookType "dingtalk"}} |
||||
<img class="img-13" src="{{AppSubUrl}}/img/dingtalk.ico"> |
||||
{{end}} |
||||
</div> |
||||
</h4> |
||||
<div class="ui attached segment"> |
||||
{{template "repo/settings/webhook/gitea" .}} |
||||
{{template "repo/settings/webhook/gogs" .}} |
||||
{{template "repo/settings/webhook/slack" .}} |
||||
{{template "repo/settings/webhook/discord" .}} |
||||
{{template "repo/settings/webhook/dingtalk" .}} |
||||
</div> |
||||
|
||||
{{template "repo/settings/webhook/history" .}} |
||||
</div> |
||||
</div> |
||||
{{template "base/footer" .}} |
@ -0,0 +1,8 @@ |
||||
{{template "base/head" .}} |
||||
<div class="admin hooks"> |
||||
{{template "admin/navbar" .}} |
||||
<div class="ui container"> |
||||
{{template "repo/settings/webhook/list" .}} |
||||
</div> |
||||
</div> |
||||
{{template "base/footer" .}} |
Loading…
Reference in new issue