feat(runner): finish org runners ui

This commit is contained in:
fuxiaohei
2022-10-24 22:11:16 +08:00
committed by Jason Song
parent 82c6fc2217
commit 888b4c8313
10 changed files with 125 additions and 163 deletions

View File

@@ -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

View File

@@ -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")))
}

View File

@@ -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")))
}

View File

@@ -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"
)

View File

@@ -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)