code.gitea.io/gitea@v1.21.7/routers/web/admin/hooks.go (about) 1 // Copyright 2018 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package admin 5 6 import ( 7 "net/http" 8 9 "code.gitea.io/gitea/models/webhook" 10 "code.gitea.io/gitea/modules/base" 11 "code.gitea.io/gitea/modules/context" 12 "code.gitea.io/gitea/modules/setting" 13 "code.gitea.io/gitea/modules/util" 14 ) 15 16 const ( 17 // tplAdminHooks template path to render hook settings 18 tplAdminHooks base.TplName = "admin/hooks" 19 ) 20 21 // DefaultOrSystemWebhooks renders both admin default and system webhook list pages 22 func DefaultOrSystemWebhooks(ctx *context.Context) { 23 var err error 24 25 ctx.Data["Title"] = ctx.Tr("admin.hooks") 26 ctx.Data["PageIsAdminSystemHooks"] = true 27 ctx.Data["PageIsAdminDefaultHooks"] = true 28 29 def := make(map[string]any, len(ctx.Data)) 30 sys := make(map[string]any, len(ctx.Data)) 31 for k, v := range ctx.Data { 32 def[k] = v 33 sys[k] = v 34 } 35 36 sys["Title"] = ctx.Tr("admin.systemhooks") 37 sys["Description"] = ctx.Tr("admin.systemhooks.desc") 38 sys["Webhooks"], err = webhook.GetSystemWebhooks(ctx, util.OptionalBoolNone) 39 sys["BaseLink"] = setting.AppSubURL + "/admin/hooks" 40 sys["BaseLinkNew"] = setting.AppSubURL + "/admin/system-hooks" 41 if err != nil { 42 ctx.ServerError("GetWebhooksAdmin", err) 43 return 44 } 45 46 def["Title"] = ctx.Tr("admin.defaulthooks") 47 def["Description"] = ctx.Tr("admin.defaulthooks.desc") 48 def["Webhooks"], err = webhook.GetDefaultWebhooks(ctx) 49 def["BaseLink"] = setting.AppSubURL + "/admin/hooks" 50 def["BaseLinkNew"] = setting.AppSubURL + "/admin/default-hooks" 51 if err != nil { 52 ctx.ServerError("GetWebhooksAdmin", err) 53 return 54 } 55 56 ctx.Data["DefaultWebhooks"] = def 57 ctx.Data["SystemWebhooks"] = sys 58 59 ctx.HTML(http.StatusOK, tplAdminHooks) 60 } 61 62 // DeleteDefaultOrSystemWebhook handler to delete an admin-defined system or default webhook 63 func DeleteDefaultOrSystemWebhook(ctx *context.Context) { 64 if err := webhook.DeleteDefaultSystemWebhook(ctx, ctx.FormInt64("id")); err != nil { 65 ctx.Flash.Error("DeleteDefaultWebhook: " + err.Error()) 66 } else { 67 ctx.Flash.Success(ctx.Tr("repo.settings.webhook_deletion_success")) 68 } 69 70 ctx.JSONRedirect(setting.AppSubURL + "/admin/hooks") 71 }