| @@ -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) | |||
| @@ -311,17 +311,17 @@ html, body { | |||
| border-radius: 2px; | |||
| } | |||
| #user-name,#user-full-name { | |||
| #user-name, #user-full-name { | |||
| font-size: 1.6em; | |||
| font-weight: bold; | |||
| } | |||
| #user-name{ | |||
| #user-name { | |||
| margin-bottom: 20px; | |||
| margin-top: 10px; | |||
| } | |||
| #user-full-name{ | |||
| #user-full-name { | |||
| margin-top: 20px; | |||
| } | |||
| @@ -446,7 +446,7 @@ html, body { | |||
| border-left: 4px solid #DD4B39; | |||
| } | |||
| #repo-setting-container{ | |||
| #repo-setting-container { | |||
| padding-right: 0; | |||
| } | |||
| @@ -454,41 +454,41 @@ html, body { | |||
| line-height: 30px; | |||
| } | |||
| #repo-collab-list li.collab{ | |||
| #repo-collab-list li.collab { | |||
| margin-bottom: .6em; | |||
| } | |||
| #repo-collab-list .avatar{ | |||
| #repo-collab-list .avatar { | |||
| margin-right: 1em; | |||
| width: 40px; | |||
| } | |||
| #repo-collab-list a.member{ | |||
| #repo-collab-list a.member { | |||
| color: #444; | |||
| } | |||
| #repo-collab-list .remove-collab{ | |||
| #repo-collab-list .remove-collab, #repo-hooks-list .remove-hook { | |||
| color: #DD4B39; | |||
| } | |||
| #repo-collab-form .dropdown-menu{ | |||
| #repo-collab-form .dropdown-menu { | |||
| margin-left: 15px; | |||
| margin-top: 4px; | |||
| padding: 0; | |||
| } | |||
| #repo-collab-form .dropdown-menu li{ | |||
| #repo-collab-form .dropdown-menu li { | |||
| padding: 0 1em; | |||
| line-height: 36px; | |||
| cursor: pointer; | |||
| font-weight: bold; | |||
| } | |||
| #repo-collab-form .dropdown-menu li:hover{ | |||
| #repo-collab-form .dropdown-menu li:hover { | |||
| background-color: #e8f0ff; | |||
| } | |||
| #repo-collab-form .dropdown-menu img{ | |||
| #repo-collab-form .dropdown-menu img { | |||
| width: 28px; | |||
| height: 28px; | |||
| margin-right: 1em; | |||
| @@ -496,10 +496,26 @@ html, body { | |||
| margin-top: -3px; | |||
| } | |||
| #repo-collab-form .dropdown-menu ul{ | |||
| #repo-collab-form .dropdown-menu ul { | |||
| 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") | |||
| } | |||
| @@ -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" .}} | |||
| @@ -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> | |||