mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-20 20:07:03 +01:00
add webhooks page ui
This commit is contained in:
parent
8bbaf9550a
commit
3e856928a2
6 changed files with 148 additions and 14 deletions
|
@ -152,6 +152,8 @@ func runWeb(*cli.Context) {
|
|||
r.Post("/settings", repo.SettingPost)
|
||||
r.Get("/settings/collaboration", repo.Collaboration)
|
||||
r.Post("/settings/collaboration", repo.CollaborationPost)
|
||||
r.Get("/settings/hooks", repo.WebHooks)
|
||||
r.Get("/settings/hooks/add",repo.WebHooksAdd)
|
||||
r.Get("/action/:action", repo.Action)
|
||||
r.Get("/issues/new", repo.CreateIssue)
|
||||
r.Post("/issues/new", bindIgnErr(auth.CreateIssueForm{}), repo.CreateIssuePost)
|
||||
|
|
|
@ -467,7 +467,7 @@ html, body {
|
|||
color: #444;
|
||||
}
|
||||
|
||||
#repo-collab-list .remove-collab{
|
||||
#repo-collab-list .remove-collab, #repo-hooks-list .remove-hook {
|
||||
color: #DD4B39;
|
||||
}
|
||||
|
||||
|
@ -500,6 +500,22 @@ html, body {
|
|||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#repo-hooks-list li {
|
||||
line-height: 40px;
|
||||
border-top: 1px solid #DDD;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#repo-hooks-list .link {
|
||||
display: inline-block;
|
||||
max-width: 360px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* gogits user ssh keys */
|
||||
|
||||
#ssh-keys .list-group-item {
|
||||
|
|
|
@ -204,3 +204,25 @@ func CollaborationPost(ctx *middleware.Context) {
|
|||
ctx.Flash.Success("New collaborator has been added.")
|
||||
ctx.Redirect(ctx.Req.RequestURI)
|
||||
}
|
||||
|
||||
func WebHooks(ctx *middleware.Context) {
|
||||
if !ctx.Repo.IsOwner {
|
||||
ctx.Handle(404, "repo.WebHooks", nil)
|
||||
return
|
||||
}
|
||||
|
||||
ctx.Data["IsRepoToolbarWebHooks"] = true
|
||||
ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Web Hooks"
|
||||
ctx.HTML(200, "repo/hooks")
|
||||
}
|
||||
|
||||
func WebHooksAdd(ctx *middleware.Context) {
|
||||
if !ctx.Repo.IsOwner {
|
||||
ctx.Handle(404, "repo.WebHooksAdd", nil)
|
||||
return
|
||||
}
|
||||
|
||||
ctx.Data["IsRepoToolbarWebHooks"] = true
|
||||
ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Add Web Hook"
|
||||
ctx.HTML(200, "repo/hooks_add")
|
||||
}
|
||||
|
|
37
templates/repo/hooks.tmpl
Normal file
37
templates/repo/hooks.tmpl
Normal file
|
@ -0,0 +1,37 @@
|
|||
{{template "base/head" .}}
|
||||
{{template "base/navbar" .}}
|
||||
{{template "repo/nav" .}}
|
||||
{{template "repo/toolbar" .}}
|
||||
<div id="body" class="container">
|
||||
{{template "repo/setting_nav" .}}
|
||||
<div id="repo-setting-container" class="col-md-10">
|
||||
{{template "base/alert" .}}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
Webhooks
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>Webhooks allow external services to be notified when certain events happen on GitHub. When the specified events happen, we'll send a POST request to each of the URLs you provide. Learn more in our Webhooks Guide.<br/> </p>
|
||||
<ul id="repo-hooks-list" class="list-unstyled">
|
||||
<li>
|
||||
<span class="pull-left status text-success"><i class="fa fa-check"></i></span>
|
||||
<a class="link" href="#">https://inbox-app.wercker.com/commits/11aea6e535af5eefc2a29bc25a23e89a</a>
|
||||
<a href="{{$.RepoLink}}/settings/hooks?remove=" class="remove-hook pull-right"><i class="fa fa-times"></i></a>
|
||||
<a href="{{$.RepoLink}}/settings/hooks/id" class="edit-hook pull-right"><i class="fa fa-pencil"></i></a>
|
||||
</li>
|
||||
<li>
|
||||
<span class="pull-left status text-success"><i class="fa fa-check"></i></span>
|
||||
<a class="link" href="#">https://inbox-app.wercker.com/commits/11aea6e535af5eefc2a29bc25a23e89a</a>
|
||||
<a href="{{$.RepoLink}}/settings/hooks?remove=" class="remove-hook pull-right"><i class="fa fa-times"></i></a>
|
||||
<a href="{{$.RepoLink}}/settings/hooks/id" class="edit-hook pull-right"><i class="fa fa-pencil"></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
<a href="/{{.Owner.Name}}/{{.Repository.Name}}/settings/hooks/add"><button class="btn btn-primary">Add Webhook</button></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{{template "base/footer" .}}
|
57
templates/repo/hooks_add.tmpl
Normal file
57
templates/repo/hooks_add.tmpl
Normal file
|
@ -0,0 +1,57 @@
|
|||
{{template "base/head" .}}
|
||||
{{template "base/navbar" .}}
|
||||
{{template "repo/nav" .}}
|
||||
{{template "repo/toolbar" .}}
|
||||
<div id="body" class="container">
|
||||
{{template "repo/setting_nav" .}}
|
||||
<div id="repo-setting-container" class="col-md-10">
|
||||
{{template "base/alert" .}}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
Add Webhook
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>We’ll send a POST request to the URL below with details of any subscribed events.</p>
|
||||
<hr/>
|
||||
<form id="repo-hooks-add-form" action="/{{.Owner.Name}}/{{.Repository.Name}}/settings/hooks/add" method="post" class="col-md-7">
|
||||
<div class="form-group">
|
||||
<label for="payload-url">Payload URL</label>
|
||||
<input id="payload-url" class="form-control" type="url" required="required" name="url"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="payload-version">Payload Version</label>
|
||||
<select name="version" id="payload-version" class="form-control">
|
||||
<option value="json">application/json</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="payload-secret">Secret</label>
|
||||
<input id="payload-secret" class="form-control" type="text" required="required" name="secret"/>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="form-group">
|
||||
<label>Which events would you like to trigger this webhook?</label>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input class="form-control" type="radio" value="push" name="trigger"/> Just the <i>push</i> event.
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="form-group">
|
||||
<label>
|
||||
<input type="checkbox" name="active" value="Active" checked/>
|
||||
Active
|
||||
</label>
|
||||
<p class="help-block">We will deliver event details when this hook is triggered.</p>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
<a href="/{{.Owner.Name}}/{{.Repository.Name}}/settings/hooks"><button class="btn btn-primary">Webhooks List</button></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{{template "base/footer" .}}
|
|
@ -2,6 +2,6 @@
|
|||
<ul class="list-group">
|
||||
<li class="list-group-item{{if .IsRepoToolbarSetting}} active{{end}}"><a href="/{{.Owner.Name}}/{{.Repository.Name}}/settings">Options</a></li>
|
||||
<li class="list-group-item{{if .IsRepoToolbarCollaboration}} active{{end}}"><a href="/{{.Owner.Name}}/{{.Repository.Name}}/settings/collaboration">Collaborators</a></li>
|
||||
<!--<li class="list-group-item"><a href="#">Notifications</a></li>-->
|
||||
<li class="list-group-item{{if .IsRepoToolbarWebHooks}} active{{end}}"><a href="/{{.Owner.Name}}/{{.Repository.Name}}/settings/hooks">Webhooks</a></li>
|
||||
</ul>
|
||||
</div>
|
Loading…
Reference in a new issue