diff options
Diffstat (limited to 'routers/admin/hooks.go')
-rw-r--r-- | routers/admin/hooks.go | 49 |
1 files changed, 34 insertions, 15 deletions
diff --git a/routers/admin/hooks.go b/routers/admin/hooks.go index b80ed3cc3c..4697c4d933 100644 --- a/routers/admin/hooks.go +++ b/routers/admin/hooks.go @@ -12,20 +12,32 @@ import ( ) const ( - // tplAdminHooks template path for render hook settings + // tplAdminHooks template path to 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") +// DefaultOrSystemWebhooks renders both admin default and system webhook list pages +func DefaultOrSystemWebhooks(ctx *context.Context) { + var ws []*models.Webhook + var err error + + // Are we looking at default webhooks? + if ctx.Params(":configType") == "hooks" { + ctx.Data["Title"] = ctx.Tr("admin.hooks") + ctx.Data["Description"] = ctx.Tr("admin.hooks.desc") + ctx.Data["PageIsAdminHooks"] = true + ctx.Data["BaseLink"] = setting.AppSubURL + "/admin/hooks" + ws, err = models.GetDefaultWebhooks() + } else { + ctx.Data["Title"] = ctx.Tr("admin.systemhooks") + ctx.Data["Description"] = ctx.Tr("admin.systemhooks.desc") + ctx.Data["PageIsAdminSystemHooks"] = true + ctx.Data["BaseLink"] = setting.AppSubURL + "/admin/system-hooks" + ws, err = models.GetSystemWebhooks() + } - ws, err := models.GetDefaultWebhooks() if err != nil { - ctx.ServerError("GetWebhooksDefaults", err) + ctx.ServerError("GetWebhooksAdmin", err) return } @@ -33,15 +45,22 @@ func DefaultWebhooks(ctx *context.Context) { 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 { +// DeleteDefaultOrSystemWebhook handler to delete an admin-defined system or default webhook +func DeleteDefaultOrSystemWebhook(ctx *context.Context) { + if err := models.DeleteDefaultSystemWebhook(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", - }) + // Are we looking at default webhooks? + if ctx.Params(":configType") == "hooks" { + ctx.JSON(200, map[string]interface{}{ + "redirect": setting.AppSubURL + "/admin/hooks", + }) + } else { + ctx.JSON(200, map[string]interface{}{ + "redirect": setting.AppSubURL + "/admin/system-hooks", + }) + } } |