feat(runner): finish org runners ui
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
@@ -60,7 +61,7 @@ func RunnersList(ctx *context.Context, tplName base.TplName, opts bots_model.Fin
|
||||
ctx.HTML(http.StatusOK, tplName)
|
||||
}
|
||||
|
||||
func RunnerDetails(ctx *context.Context, tplName base.TplName, runnerID int64) {
|
||||
func RunnerDetails(ctx *context.Context, tplName base.TplName, runnerID int64, ownerID int64, repoID int64) {
|
||||
runner, err := bots_model.GetRunnerByID(runnerID)
|
||||
if err != nil {
|
||||
ctx.ServerError("GetRunnerByID", err)
|
||||
@@ -70,6 +71,11 @@ func RunnerDetails(ctx *context.Context, tplName base.TplName, runnerID int64) {
|
||||
ctx.ServerError("LoadAttributes", err)
|
||||
return
|
||||
}
|
||||
if !runner.Editable(ownerID, repoID) {
|
||||
err = errors.New("no permission to edit this runner")
|
||||
ctx.NotFound("RunnerDetails", err)
|
||||
return
|
||||
}
|
||||
|
||||
ctx.Data["Runner"] = runner
|
||||
|
||||
@@ -79,13 +85,18 @@ func RunnerDetails(ctx *context.Context, tplName base.TplName, runnerID int64) {
|
||||
}
|
||||
|
||||
// RunnerDetailsEditPost response for edit runner details
|
||||
func RunnerDetailsEditPost(ctx *context.Context, runnerID int64, redirectTo string) {
|
||||
func RunnerDetailsEditPost(ctx *context.Context, runnerID int64, ownerID int64, repoID int64, redirectTo string) {
|
||||
runner, err := bots_model.GetRunnerByID(runnerID)
|
||||
if err != nil {
|
||||
log.Warn("RunnerDetailsEditPost.GetRunnerByID failed: %v, url: %s", err, ctx.Req.URL)
|
||||
ctx.ServerError("RunnerDetailsEditPost.GetRunnerByID", err)
|
||||
return
|
||||
}
|
||||
if !runner.Editable(ownerID, repoID) {
|
||||
err = errors.New("no permission to edit this runner")
|
||||
ctx.NotFound("RunnerDetailsEditPost.Editable", err)
|
||||
return
|
||||
}
|
||||
|
||||
form := web.GetForm(ctx).(*forms.EditRunnerForm)
|
||||
runner.Description = form.Description
|
||||
|
||||
@@ -55,7 +55,7 @@ func EditRunner(ctx *context.Context) {
|
||||
ctx.Data["PageIsAdmin"] = true
|
||||
ctx.Data["PageIsAdminRunners"] = true
|
||||
|
||||
common.RunnerDetails(ctx, tplRunnerEdit, ctx.ParamsInt64(":runnerid"))
|
||||
common.RunnerDetails(ctx, tplRunnerEdit, ctx.ParamsInt64(":runnerid"), 0, 0)
|
||||
}
|
||||
|
||||
// EditRunnerPost response for editing runner
|
||||
@@ -63,7 +63,7 @@ func EditRunnerPost(ctx *context.Context) {
|
||||
ctx.Data["Title"] = ctx.Tr("admin.runners.edit")
|
||||
ctx.Data["PageIsAdmin"] = true
|
||||
ctx.Data["PageIsAdminRunners"] = true
|
||||
common.RunnerDetailsEditPost(ctx, ctx.ParamsInt64(":runnerid"),
|
||||
common.RunnerDetailsEditPost(ctx, ctx.ParamsInt64(":runnerid"), 0, 0,
|
||||
setting.AppSubURL+"/admin/runners/"+url.PathEscape(ctx.Params(":runnerid")))
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package org
|
||||
|
||||
import (
|
||||
"net/url"
|
||||
|
||||
bots_model "code.gitea.io/gitea/models/bots"
|
||||
"code.gitea.io/gitea/models/db"
|
||||
"code.gitea.io/gitea/modules/context"
|
||||
@@ -39,3 +41,24 @@ func ResetRunnerRegistrationToken(ctx *context.Context) {
|
||||
ctx.Org.Organization.ID, 0,
|
||||
ctx.Org.OrgLink+"/settings/runners")
|
||||
}
|
||||
|
||||
// RunnersEdit render runner edit page
|
||||
func RunnersEdit(ctx *context.Context) {
|
||||
ctx.Data["Title"] = ctx.Tr("org.runners.edit")
|
||||
ctx.Data["PageIsOrgSettings"] = true
|
||||
ctx.Data["PageIsOrgSettingsRunners"] = true
|
||||
|
||||
common.RunnerDetails(ctx, tplSettingsRunnersEdit,
|
||||
ctx.ParamsInt64(":runnerid"), ctx.Org.Organization.ID, 0,
|
||||
)
|
||||
}
|
||||
|
||||
// RunnersEditPost response for editing runner
|
||||
func RunnersEditPost(ctx *context.Context) {
|
||||
ctx.Data["Title"] = ctx.Tr("org.runners.edit")
|
||||
ctx.Data["PageIsOrgSettings"] = true
|
||||
ctx.Data["PageIsOrgSettingsRunners"] = true
|
||||
common.RunnerDetailsEditPost(ctx, ctx.ParamsInt64(":runnerid"),
|
||||
ctx.Org.Organization.ID, 0,
|
||||
ctx.Org.OrgLink+"/settings/runners/"+url.PathEscape(ctx.Params(":runnerid")))
|
||||
}
|
||||
|
||||
@@ -41,6 +41,8 @@ const (
|
||||
tplSettingsLabels base.TplName = "org/settings/labels"
|
||||
// tplSettingsRunners template path for render runners settings
|
||||
tplSettingsRunners base.TplName = "org/settings/runners"
|
||||
// tplSettingsRunnersEdit template path for render runners edit settings
|
||||
tplSettingsRunnersEdit base.TplName = "org/settings/runners_edit"
|
||||
// tplSettingsSecrets template path for render secrets settings
|
||||
tplSettingsSecrets base.TplName = "org/settings/secrets"
|
||||
)
|
||||
|
||||
@@ -793,6 +793,13 @@ func RegisterRoutes(m *web.Route) {
|
||||
m.Post("/initialize", bindIgnErr(forms.InitializeLabelsForm{}), org.InitializeLabels)
|
||||
})
|
||||
|
||||
m.Group("/runners", func() {
|
||||
m.Get("", org.Runners)
|
||||
m.Combo("/{runnerid}").Get(org.RunnersEdit).
|
||||
Post(bindIgnErr(forms.EditRunnerForm{}), org.RunnersEditPost)
|
||||
m.Get("/reset_registration_token", org.ResetRunnerRegistrationToken)
|
||||
})
|
||||
|
||||
m.Group("/secrets", func() {
|
||||
m.Get("", org.Secrets)
|
||||
m.Post("", bindIgnErr(forms.AddSecretForm{}), org.SecretsPost)
|
||||
|
||||
Reference in New Issue
Block a user