2019-03-19 05:33:20 +03:00
// 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 (
2020-03-09 01:08:05 +03:00
// tplAdminHooks template path to render hook settings
2019-03-19 05:33:20 +03:00
tplAdminHooks base . TplName = "admin/hooks"
)
2020-03-09 01:08:05 +03:00
// DefaultOrSystemWebhooks renders both admin default and system webhook list pages
func DefaultOrSystemWebhooks ( ctx * context . Context ) {
var err error
2021-01-15 02:24:03 +03:00
ctx . Data [ "PageIsAdminSystemHooks" ] = true
ctx . Data [ "PageIsAdminDefaultHooks" ] = true
def := make ( map [ string ] interface { } , len ( ctx . Data ) )
sys := make ( map [ string ] interface { } , len ( ctx . Data ) )
for k , v := range ctx . Data {
def [ k ] = v
sys [ k ] = v
}
sys [ "Title" ] = ctx . Tr ( "admin.systemhooks" )
sys [ "Description" ] = ctx . Tr ( "admin.systemhooks.desc" )
sys [ "Webhooks" ] , err = models . GetSystemWebhooks ( )
sys [ "BaseLink" ] = setting . AppSubURL + "/admin/hooks"
sys [ "BaseLinkNew" ] = setting . AppSubURL + "/admin/system-hooks"
if err != nil {
ctx . ServerError ( "GetWebhooksAdmin" , err )
return
2020-03-09 01:08:05 +03:00
}
2019-03-19 05:33:20 +03:00
2021-01-15 02:24:03 +03:00
def [ "Title" ] = ctx . Tr ( "admin.defaulthooks" )
def [ "Description" ] = ctx . Tr ( "admin.defaulthooks.desc" )
def [ "Webhooks" ] , err = models . GetDefaultWebhooks ( )
def [ "BaseLink" ] = setting . AppSubURL + "/admin/hooks"
def [ "BaseLinkNew" ] = setting . AppSubURL + "/admin/default-hooks"
2019-03-19 05:33:20 +03:00
if err != nil {
2020-03-09 01:08:05 +03:00
ctx . ServerError ( "GetWebhooksAdmin" , err )
2019-03-19 05:33:20 +03:00
return
}
2021-01-15 02:24:03 +03:00
ctx . Data [ "DefaultWebhooks" ] = def
ctx . Data [ "SystemWebhooks" ] = sys
2019-03-19 05:33:20 +03:00
ctx . HTML ( 200 , tplAdminHooks )
}
2020-03-09 01:08:05 +03:00
// 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 {
2019-03-19 05:33:20 +03:00
ctx . Flash . Error ( "DeleteDefaultWebhook: " + err . Error ( ) )
} else {
ctx . Flash . Success ( ctx . Tr ( "repo.settings.webhook_deletion_success" ) )
}
2021-01-15 02:24:03 +03:00
ctx . JSON ( 200 , map [ string ] interface { } {
"redirect" : setting . AppSubURL + "/admin/hooks" ,
} )
2019-03-19 05:33:20 +03:00
}