diff options
author | Unknwon <u@gogs.io> | 2015-08-27 01:04:23 +0800 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2015-08-27 01:04:23 +0800 |
commit | c08600c59b8fb8d5f03fadacddb1140bc994ae94 (patch) | |
tree | 29be86d5e607203d9ba68e0af58ae04c4cea0ea1 /routers | |
parent | 4217c2333cf9ac29af611df9826cc4b5198241fe (diff) | |
download | gitea-c08600c59b8fb8d5f03fadacddb1140bc994ae94.tar.gz gitea-c08600c59b8fb8d5f03fadacddb1140bc994ae94.zip |
new edit webhook UI
Diffstat (limited to 'routers')
-rw-r--r-- | routers/repo/setting.go | 173 |
1 files changed, 77 insertions, 96 deletions
diff --git a/routers/repo/setting.go b/routers/repo/setting.go index 3e5f167b24..e1e1a58ce7 100644 --- a/routers/repo/setting.go +++ b/routers/repo/setting.go @@ -368,18 +368,56 @@ func WebHooksNewPost(ctx *middleware.Context, form auth.NewWebhookForm) { ctx.Redirect(orCtx.Link + "/settings/hooks") } -func WebHooksEdit(ctx *middleware.Context) { - ctx.Data["Title"] = ctx.Tr("repo.settings.update_webhook") +func SlackHooksNewPost(ctx *middleware.Context, form auth.NewSlackHookForm) { + ctx.Data["Title"] = ctx.Tr("repo.settings") ctx.Data["PageIsSettingsHooks"] = true - ctx.Data["PageIsSettingsHooksEdit"] = true + ctx.Data["PageIsSettingsHooksNew"] = true + ctx.Data["Webhook"] = models.Webhook{HookEvent: &models.HookEvent{}} orCtx, err := getOrgRepoCtx(ctx) if err != nil { ctx.Handle(500, "getOrgRepoCtx", err) return } - ctx.Data["BaseLink"] = orCtx.Link + if ctx.HasError() { + ctx.HTML(200, orCtx.NewTemplate) + return + } + + meta, err := json.Marshal(&models.Slack{ + Channel: form.Channel, + }) + if err != nil { + ctx.Handle(500, "Marshal", err) + return + } + + w := &models.Webhook{ + RepoID: orCtx.RepoID, + URL: form.PayloadURL, + ContentType: models.JSON, + HookEvent: &models.HookEvent{ + PushOnly: form.PushOnly, + }, + IsActive: form.Active, + HookTaskType: models.SLACK, + Meta: string(meta), + OrgID: orCtx.OrgID, + } + if err := w.UpdateEvent(); err != nil { + ctx.Handle(500, "UpdateEvent", err) + return + } else if err := models.CreateWebhook(w); err != nil { + ctx.Handle(500, "CreateWebhook", err) + return + } + + ctx.Flash.Success(ctx.Tr("repo.settings.add_hook_success")) + ctx.Redirect(orCtx.Link + "/settings/hooks") +} + +func checkWebhook(ctx *middleware.Context) *models.Webhook { w, err := models.GetWebhookById(ctx.ParamsInt64(":id")) if err != nil { if err == models.ErrWebhookNotExist { @@ -387,7 +425,7 @@ func WebHooksEdit(ctx *middleware.Context) { } else { ctx.Handle(500, "GetWebhookById", err) } - return + return nil } switch w.HookTaskType { @@ -398,35 +436,38 @@ func WebHooksEdit(ctx *middleware.Context) { ctx.Data["HookType"] = "gogs" } w.GetEvent() - ctx.Data["Webhook"] = w - - ctx.HTML(200, orCtx.NewTemplate) + return w } -func WebHooksEditPost(ctx *middleware.Context, form auth.NewWebhookForm) { +func WebHooksEdit(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("repo.settings.update_webhook") ctx.Data["PageIsSettingsHooks"] = true ctx.Data["PageIsSettingsHooksEdit"] = true - w, err := models.GetWebhookById(ctx.ParamsInt64(":id")) + ctx.Data["Webhook"] = checkWebhook(ctx) + if ctx.Written() { + return + } + + orCtx, err := getOrgRepoCtx(ctx) if err != nil { - if err == models.ErrWebhookNotExist { - ctx.Handle(404, "GetWebhookById", nil) - } else { - ctx.Handle(500, "GetWebhookById", err) - } + ctx.Handle(500, "getOrgRepoCtx", err) return } + ctx.Data["BaseLink"] = orCtx.Link - // set data per HookTaskType - switch w.HookTaskType { - case models.SLACK: - ctx.Data["SlackHook"] = w.GetSlackHook() - ctx.Data["HookType"] = "Slack" - default: - ctx.Data["HookType"] = "Gogs" + ctx.HTML(200, orCtx.NewTemplate) +} + +func WebHooksEditPost(ctx *middleware.Context, form auth.NewWebhookForm) { + ctx.Data["Title"] = ctx.Tr("repo.settings.update_webhook") + ctx.Data["PageIsSettingsHooks"] = true + ctx.Data["PageIsSettingsHooksEdit"] = true + + w := checkWebhook(ctx) + if ctx.Written() { + return } - w.GetEvent() ctx.Data["Webhook"] = w orCtx, err := getOrgRepoCtx(ctx) @@ -441,13 +482,13 @@ func WebHooksEditPost(ctx *middleware.Context, form auth.NewWebhookForm) { return } - ct := models.JSON + contentType := models.JSON if models.HookContentType(form.ContentType) == models.FORM { - ct = models.FORM + contentType = models.FORM } w.URL = form.PayloadURL - w.ContentType = ct + w.ContentType = contentType w.Secret = form.Secret w.HookEvent = &models.HookEvent{ PushOnly: form.PushOnly, @@ -462,57 +503,7 @@ func WebHooksEditPost(ctx *middleware.Context, form auth.NewWebhookForm) { } ctx.Flash.Success(ctx.Tr("repo.settings.update_hook_success")) - ctx.Redirect(orCtx.Link + "/settings/hooks") -} - -func SlackHooksNewPost(ctx *middleware.Context, form auth.NewSlackHookForm) { - ctx.Data["Title"] = ctx.Tr("repo.settings") - ctx.Data["PageIsSettingsHooks"] = true - ctx.Data["PageIsSettingsHooksNew"] = true - ctx.Data["Webhook"] = models.Webhook{HookEvent: &models.HookEvent{}} - - orCtx, err := getOrgRepoCtx(ctx) - if err != nil { - ctx.Handle(500, "SlackHooksNewPost(getOrgRepoCtx)", err) - return - } - - if ctx.HasError() { - ctx.HTML(200, orCtx.NewTemplate) - return - } - - meta, err := json.Marshal(&models.Slack{ - Channel: form.Channel, - }) - if err != nil { - ctx.Handle(500, "SlackHooksNewPost: JSON marshal failed: ", err) - return - } - - w := &models.Webhook{ - RepoID: orCtx.RepoID, - URL: form.PayloadURL, - ContentType: models.JSON, - Secret: "", - HookEvent: &models.HookEvent{ - PushOnly: form.PushOnly, - }, - IsActive: form.Active, - HookTaskType: models.SLACK, - Meta: string(meta), - OrgID: orCtx.OrgID, - } - if err := w.UpdateEvent(); err != nil { - ctx.Handle(500, "UpdateEvent", err) - return - } else if err := models.CreateWebhook(w); err != nil { - ctx.Handle(500, "CreateWebhook", err) - return - } - - ctx.Flash.Success(ctx.Tr("repo.settings.add_hook_success")) - ctx.Redirect(orCtx.Link + "/settings/hooks") + ctx.Redirect(fmt.Sprintf("%s/settings/hooks/%d", orCtx.Link, w.ID)) } func SlackHooksEditPost(ctx *middleware.Context, form auth.NewSlackHookForm) { @@ -520,39 +511,29 @@ func SlackHooksEditPost(ctx *middleware.Context, form auth.NewSlackHookForm) { ctx.Data["PageIsSettingsHooks"] = true ctx.Data["PageIsSettingsHooksEdit"] = true - hookId := com.StrTo(ctx.Params(":id")).MustInt64() - if hookId == 0 { - ctx.Handle(404, "SlackHooksEditPost(hookId)", nil) + w := checkWebhook(ctx) + if ctx.Written() { return } + ctx.Data["Webhook"] = w orCtx, err := getOrgRepoCtx(ctx) if err != nil { - ctx.Handle(500, "SlackHooksEditPost(getOrgRepoCtx)", err) - return - } - - w, err := models.GetWebhookById(hookId) - if err != nil { - if err == models.ErrWebhookNotExist { - ctx.Handle(404, "GetWebhookById", nil) - } else { - ctx.Handle(500, "GetWebhookById", err) - } + ctx.Handle(500, "getOrgRepoCtx", err) return } - w.GetEvent() - ctx.Data["Webhook"] = w + ctx.Data["BaseLink"] = orCtx.Link if ctx.HasError() { ctx.HTML(200, orCtx.NewTemplate) return } + meta, err := json.Marshal(&models.Slack{ Channel: form.Channel, }) if err != nil { - ctx.Handle(500, "SlackHooksNewPost: JSON marshal failed: ", err) + ctx.Handle(500, "Marshal", err) return } @@ -566,12 +547,12 @@ func SlackHooksEditPost(ctx *middleware.Context, form auth.NewSlackHookForm) { ctx.Handle(500, "UpdateEvent", err) return } else if err := models.UpdateWebhook(w); err != nil { - ctx.Handle(500, "SlackHooksEditPost", err) + ctx.Handle(500, "UpdateWebhook", err) return } ctx.Flash.Success(ctx.Tr("repo.settings.update_hook_success")) - ctx.Redirect(fmt.Sprintf("%s/settings/hooks/%d", orCtx.Link, hookId)) + ctx.Redirect(fmt.Sprintf("%s/settings/hooks/%d", orCtx.Link, w.ID)) } func DeleteWebhook(ctx *middleware.Context) { |