|  | @@ -23,8 +23,8 @@ import (
 | 
											
												
													
														|  |  const (
 |  |  const (
 | 
											
												
													
														|  |  	SETTINGS_OPTIONS base.TplName = "repo/settings/options"
 |  |  	SETTINGS_OPTIONS base.TplName = "repo/settings/options"
 | 
											
												
													
														|  |  	COLLABORATION    base.TplName = "repo/settings/collaboration"
 |  |  	COLLABORATION    base.TplName = "repo/settings/collaboration"
 | 
											
												
													
														|  | 
 |  | +	HOOKS            base.TplName = "repo/settings/hooks"
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -	HOOKS     base.TplName = "repo/hooks"
 |  | 
 | 
											
												
													
														|  |  	HOOK_ADD  base.TplName = "repo/hook_add"
 |  |  	HOOK_ADD  base.TplName = "repo/hook_add"
 | 
											
												
													
														|  |  	HOOK_EDIT base.TplName = "repo/hook_edit"
 |  |  	HOOK_EDIT base.TplName = "repo/hook_edit"
 | 
											
												
													
														|  |  )
 |  |  )
 | 
											
										
											
												
													
														|  | @@ -215,69 +215,25 @@ func SettingsCollaboration(ctx *middleware.Context) {
 | 
											
												
													
														|  |  	ctx.HTML(200, COLLABORATION)
 |  |  	ctx.HTML(200, COLLABORATION)
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -func SettingsCollaborationPost(ctx *middleware.Context) {
 |  | 
 | 
											
												
													
														|  | -	repoLink := strings.TrimPrefix(ctx.Repo.RepoLink, "/")
 |  | 
 | 
											
												
													
														|  | -	name := strings.ToLower(ctx.Query("collaborator"))
 |  | 
 | 
											
												
													
														|  | -	if len(name) == 0 || ctx.Repo.Owner.LowerName == name {
 |  | 
 | 
											
												
													
														|  | -		ctx.Redirect(ctx.Req.RequestURI)
 |  | 
 | 
											
												
													
														|  | -		return
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -	has, err := models.HasAccess(name, repoLink, models.WRITABLE)
 |  | 
 | 
											
												
													
														|  | -	if err != nil {
 |  | 
 | 
											
												
													
														|  | -		ctx.Handle(500, "setting.CollaborationPost(HasAccess)", err)
 |  | 
 | 
											
												
													
														|  | -		return
 |  | 
 | 
											
												
													
														|  | -	} else if has {
 |  | 
 | 
											
												
													
														|  | -		ctx.Redirect(ctx.Req.RequestURI)
 |  | 
 | 
											
												
													
														|  | -		return
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -	u, err := models.GetUserByName(name)
 |  | 
 | 
											
												
													
														|  | -	if err != nil {
 |  | 
 | 
											
												
													
														|  | -		if err == models.ErrUserNotExist {
 |  | 
 | 
											
												
													
														|  | -			ctx.Flash.Error("Given user does not exist.")
 |  | 
 | 
											
												
													
														|  | -			ctx.Redirect(ctx.Req.RequestURI)
 |  | 
 | 
											
												
													
														|  | -		} else {
 |  | 
 | 
											
												
													
														|  | -			ctx.Handle(500, "setting.CollaborationPost(GetUserByName)", err)
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -		return
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -	if err = models.AddAccess(&models.Access{UserName: name, RepoName: repoLink,
 |  | 
 | 
											
												
													
														|  | -		Mode: models.WRITABLE}); err != nil {
 |  | 
 | 
											
												
													
														|  | -		ctx.Handle(500, "setting.CollaborationPost(AddAccess)", err)
 |  | 
 | 
											
												
													
														|  | -		return
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -	if setting.Service.EnableNotifyMail {
 |  | 
 | 
											
												
													
														|  | -		if err = mailer.SendCollaboratorMail(ctx.Render, u, ctx.User, ctx.Repo.Repository); err != nil {
 |  | 
 | 
											
												
													
														|  | -			ctx.Handle(500, "setting.CollaborationPost(SendCollaboratorMail)", err)
 |  | 
 | 
											
												
													
														|  | -			return
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -	ctx.Flash.Success("New collaborator has been added.")
 |  | 
 | 
											
												
													
														|  | -	ctx.Redirect(ctx.Req.RequestURI)
 |  | 
 | 
											
												
													
														|  | -}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -func WebHooks(ctx *middleware.Context) {
 |  | 
 | 
											
												
													
														|  | -	ctx.Data["IsRepoToolbarWebHooks"] = true
 |  | 
 | 
											
												
													
														|  | -	ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Webhooks"
 |  | 
 | 
											
												
													
														|  | 
 |  | +func Webhooks(ctx *middleware.Context) {
 | 
											
												
													
														|  | 
 |  | +	ctx.Data["Title"] = ctx.Tr("repo.settings")
 | 
											
												
													
														|  | 
 |  | +	ctx.Data["PageIsSettingsHooks"] = true
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -	// Delete webhook.
 |  | 
 | 
											
												
													
														|  | 
 |  | +	// Delete web hook.
 | 
											
												
													
														|  |  	remove := com.StrTo(ctx.Query("remove")).MustInt64()
 |  |  	remove := com.StrTo(ctx.Query("remove")).MustInt64()
 | 
											
												
													
														|  |  	if remove > 0 {
 |  |  	if remove > 0 {
 | 
											
												
													
														|  |  		if err := models.DeleteWebhook(remove); err != nil {
 |  |  		if err := models.DeleteWebhook(remove); err != nil {
 | 
											
												
													
														|  | -			ctx.Handle(500, "setting.WebHooks(DeleteWebhook)", err)
 |  | 
 | 
											
												
													
														|  | 
 |  | +			ctx.Handle(500, "DeleteWebhook", err)
 | 
											
												
													
														|  |  			return
 |  |  			return
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  | -		ctx.Flash.Success("Webhook has been removed.")
 |  | 
 | 
											
												
													
														|  | 
 |  | +		ctx.Flash.Success(ctx.Tr("repo.settings.remove_hook_success"))
 | 
											
												
													
														|  |  		ctx.Redirect(ctx.Repo.RepoLink + "/settings/hooks")
 |  |  		ctx.Redirect(ctx.Repo.RepoLink + "/settings/hooks")
 | 
											
												
													
														|  |  		return
 |  |  		return
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	ws, err := models.GetWebhooksByRepoId(ctx.Repo.Repository.Id)
 |  |  	ws, err := models.GetWebhooksByRepoId(ctx.Repo.Repository.Id)
 | 
											
												
													
														|  |  	if err != nil {
 |  |  	if err != nil {
 | 
											
												
													
														|  | -		ctx.Handle(500, "setting.WebHooks(GetWebhooksByRepoId)", err)
 |  | 
 | 
											
												
													
														|  | 
 |  | +		ctx.Handle(500, "GetWebhooksByRepoId", err)
 | 
											
												
													
														|  |  		return
 |  |  		return
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 |