mirror of
https://github.com/go-gitea/gitea
synced 2025-12-07 13:28:25 +00:00
chore: removed to shared
This commit is contained in:
@@ -12,7 +12,7 @@ import (
|
||||
"code.gitea.io/gitea/modules/base"
|
||||
"code.gitea.io/gitea/modules/context"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/routers/common"
|
||||
actions_shared "code.gitea.io/gitea/routers/web/shared/actions"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -40,7 +40,7 @@ func Runners(ctx *context.Context) {
|
||||
Filter: ctx.Req.URL.Query().Get("q"),
|
||||
}
|
||||
|
||||
common.RunnersList(ctx, tplRunners, opts)
|
||||
actions_shared.RunnersList(ctx, tplRunners, opts)
|
||||
}
|
||||
|
||||
// EditRunner show editing runner page
|
||||
@@ -54,7 +54,7 @@ func EditRunner(ctx *context.Context) {
|
||||
page = 1
|
||||
}
|
||||
|
||||
common.RunnerDetails(ctx, tplRunnerEdit, page, ctx.ParamsInt64(":runnerid"), 0, 0)
|
||||
actions_shared.RunnerDetails(ctx, tplRunnerEdit, page, ctx.ParamsInt64(":runnerid"), 0, 0)
|
||||
}
|
||||
|
||||
// EditRunnerPost response for editing runner
|
||||
@@ -62,18 +62,18 @@ 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"), 0, 0,
|
||||
actions_shared.RunnerDetailsEditPost(ctx, ctx.ParamsInt64(":runnerid"), 0, 0,
|
||||
setting.AppSubURL+"/admin/runners/"+url.PathEscape(ctx.Params(":runnerid")))
|
||||
}
|
||||
|
||||
// DeleteRunnerPost response for deleting a runner
|
||||
func DeleteRunnerPost(ctx *context.Context) {
|
||||
common.RunnerDeletePost(ctx, ctx.ParamsInt64(":runnerid"),
|
||||
actions_shared.RunnerDeletePost(ctx, ctx.ParamsInt64(":runnerid"),
|
||||
setting.AppSubURL+"/admin/runners/",
|
||||
setting.AppSubURL+"/admin/runners/"+url.PathEscape(ctx.Params(":runnerid")),
|
||||
)
|
||||
}
|
||||
|
||||
func ResetRunnerRegistrationToken(ctx *context.Context) {
|
||||
common.RunnerResetRegistrationToken(ctx, 0, 0, setting.AppSubURL+"/admin/runners/")
|
||||
actions_shared.RunnerResetRegistrationToken(ctx, 0, 0, setting.AppSubURL+"/admin/runners/")
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
actions_model "code.gitea.io/gitea/models/actions"
|
||||
"code.gitea.io/gitea/models/db"
|
||||
"code.gitea.io/gitea/modules/context"
|
||||
"code.gitea.io/gitea/routers/common"
|
||||
actions_shared "code.gitea.io/gitea/routers/web/shared/actions"
|
||||
)
|
||||
|
||||
// Runners render runners page
|
||||
@@ -34,12 +34,12 @@ func Runners(ctx *context.Context) {
|
||||
WithAvailable: true,
|
||||
}
|
||||
|
||||
common.RunnersList(ctx, tplSettingsRunners, opts)
|
||||
actions_shared.RunnersList(ctx, tplSettingsRunners, opts)
|
||||
}
|
||||
|
||||
// ResetRunnerRegistrationToken reset runner registration token
|
||||
func ResetRunnerRegistrationToken(ctx *context.Context) {
|
||||
common.RunnerResetRegistrationToken(ctx,
|
||||
actions_shared.RunnerResetRegistrationToken(ctx,
|
||||
ctx.Org.Organization.ID, 0,
|
||||
ctx.Org.OrgLink+"/settings/runners")
|
||||
}
|
||||
@@ -54,7 +54,7 @@ func RunnersEdit(ctx *context.Context) {
|
||||
page = 1
|
||||
}
|
||||
|
||||
common.RunnerDetails(ctx, tplSettingsRunnersEdit, page,
|
||||
actions_shared.RunnerDetails(ctx, tplSettingsRunnersEdit, page,
|
||||
ctx.ParamsInt64(":runnerid"), ctx.Org.Organization.ID, 0,
|
||||
)
|
||||
}
|
||||
@@ -64,14 +64,14 @@ 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"),
|
||||
actions_shared.RunnerDetailsEditPost(ctx, ctx.ParamsInt64(":runnerid"),
|
||||
ctx.Org.Organization.ID, 0,
|
||||
ctx.Org.OrgLink+"/settings/runners/"+url.PathEscape(ctx.Params(":runnerid")))
|
||||
}
|
||||
|
||||
// RunnerDeletePost response for deleting runner
|
||||
func RunnerDeletePost(ctx *context.Context) {
|
||||
common.RunnerDeletePost(ctx,
|
||||
actions_shared.RunnerDeletePost(ctx,
|
||||
ctx.ParamsInt64(":runnerid"),
|
||||
ctx.Org.OrgLink+"/settings/runners",
|
||||
ctx.Org.OrgLink+"/settings/runners/"+url.PathEscape(ctx.Params(":runnerid")))
|
||||
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
actions_model "code.gitea.io/gitea/models/actions"
|
||||
"code.gitea.io/gitea/models/db"
|
||||
"code.gitea.io/gitea/modules/context"
|
||||
"code.gitea.io/gitea/routers/common"
|
||||
actions_shared "code.gitea.io/gitea/routers/web/shared/actions"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -38,7 +38,7 @@ func Runners(ctx *context.Context) {
|
||||
WithAvailable: true,
|
||||
}
|
||||
|
||||
common.RunnersList(ctx, tplRunners, opts)
|
||||
actions_shared.RunnersList(ctx, tplRunners, opts)
|
||||
}
|
||||
|
||||
func RunnersEdit(ctx *context.Context) {
|
||||
@@ -49,7 +49,7 @@ func RunnersEdit(ctx *context.Context) {
|
||||
page = 1
|
||||
}
|
||||
|
||||
common.RunnerDetails(ctx, tplRunnerEdit, page,
|
||||
actions_shared.RunnerDetails(ctx, tplRunnerEdit, page,
|
||||
ctx.ParamsInt64(":runnerid"), 0, ctx.Repo.Repository.ID,
|
||||
)
|
||||
}
|
||||
@@ -57,20 +57,20 @@ func RunnersEdit(ctx *context.Context) {
|
||||
func RunnersEditPost(ctx *context.Context) {
|
||||
ctx.Data["Title"] = ctx.Tr("repo.settings.runners")
|
||||
ctx.Data["PageIsSettingsRunners"] = true
|
||||
common.RunnerDetailsEditPost(ctx, ctx.ParamsInt64(":runnerid"),
|
||||
actions_shared.RunnerDetailsEditPost(ctx, ctx.ParamsInt64(":runnerid"),
|
||||
0, ctx.Repo.Repository.ID,
|
||||
ctx.Repo.RepoLink+"/settings/runners/"+url.PathEscape(ctx.Params(":runnerid")))
|
||||
}
|
||||
|
||||
func ResetRunnerRegistrationToken(ctx *context.Context) {
|
||||
common.RunnerResetRegistrationToken(ctx,
|
||||
actions_shared.RunnerResetRegistrationToken(ctx,
|
||||
0, ctx.Repo.Repository.ID,
|
||||
ctx.Repo.RepoLink+"/settings/runners")
|
||||
}
|
||||
|
||||
// RunnerDeletePost response for deleting runner
|
||||
func RunnerDeletePost(ctx *context.Context) {
|
||||
common.RunnerDeletePost(ctx, ctx.ParamsInt64(":runnerid"),
|
||||
actions_shared.RunnerDeletePost(ctx, ctx.ParamsInt64(":runnerid"),
|
||||
ctx.Repo.RepoLink+"/settings/runners",
|
||||
ctx.Repo.RepoLink+"/settings/runners/"+url.PathEscape(ctx.Params(":runnerid")))
|
||||
}
|
||||
|
||||
@@ -0,0 +1,185 @@
|
||||
// Copyright 2022 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package actions
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
actions_model "code.gitea.io/gitea/models/actions"
|
||||
"code.gitea.io/gitea/models/db"
|
||||
"code.gitea.io/gitea/modules/base"
|
||||
"code.gitea.io/gitea/modules/context"
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
"code.gitea.io/gitea/modules/web"
|
||||
"code.gitea.io/gitea/services/forms"
|
||||
)
|
||||
|
||||
// RunnersList render common runners list page
|
||||
func RunnersList(ctx *context.Context, tplName base.TplName, opts actions_model.FindRunnerOptions) {
|
||||
count, err := actions_model.CountRunners(ctx, opts)
|
||||
if err != nil {
|
||||
ctx.ServerError("AdminRunners", err)
|
||||
return
|
||||
}
|
||||
|
||||
runners, err := actions_model.FindRunners(ctx, opts)
|
||||
if err != nil {
|
||||
ctx.ServerError("AdminRunners", err)
|
||||
return
|
||||
}
|
||||
if err := runners.LoadAttributes(ctx); err != nil {
|
||||
ctx.ServerError("LoadAttributes", err)
|
||||
return
|
||||
}
|
||||
|
||||
// ownid=0,repo_id=0,means this token is used for global
|
||||
var token *actions_model.ActionRunnerToken
|
||||
token, err = actions_model.GetUnactivatedRunnerToken(ctx, opts.OwnerID, opts.RepoID)
|
||||
if errors.Is(err, util.ErrNotExist) {
|
||||
token, err = actions_model.NewRunnerToken(ctx, opts.OwnerID, opts.RepoID)
|
||||
if err != nil {
|
||||
ctx.ServerError("CreateRunnerToken", err)
|
||||
return
|
||||
}
|
||||
} else if err != nil {
|
||||
ctx.ServerError("GetUnactivatedRunnerToken", err)
|
||||
return
|
||||
}
|
||||
|
||||
ctx.Data["Keyword"] = opts.Filter
|
||||
ctx.Data["Runners"] = runners
|
||||
ctx.Data["Total"] = count
|
||||
ctx.Data["RegistrationToken"] = token.Token
|
||||
ctx.Data["RunnerOnwerID"] = opts.OwnerID
|
||||
ctx.Data["RunnerRepoID"] = opts.RepoID
|
||||
|
||||
pager := context.NewPagination(int(count), opts.PageSize, opts.Page, 5)
|
||||
ctx.Data["Page"] = pager
|
||||
|
||||
ctx.HTML(http.StatusOK, tplName)
|
||||
}
|
||||
|
||||
// RunnerDetails render runner details page
|
||||
func RunnerDetails(ctx *context.Context, tplName base.TplName, page int, runnerID, ownerID, repoID int64) {
|
||||
runner, err := actions_model.GetRunnerByID(ctx, runnerID)
|
||||
if err != nil {
|
||||
ctx.ServerError("GetRunnerByID", err)
|
||||
return
|
||||
}
|
||||
if err := runner.LoadAttributes(ctx); err != nil {
|
||||
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
|
||||
|
||||
opts := actions_model.FindTaskOptions{
|
||||
ListOptions: db.ListOptions{
|
||||
Page: page,
|
||||
PageSize: 30,
|
||||
},
|
||||
Status: actions_model.StatusUnknown, // Unknown means all
|
||||
IDOrderDesc: true,
|
||||
RunnerID: runner.ID,
|
||||
}
|
||||
|
||||
count, err := actions_model.CountTasks(ctx, opts)
|
||||
if err != nil {
|
||||
ctx.ServerError("CountTasks", err)
|
||||
return
|
||||
}
|
||||
|
||||
tasks, _, err := actions_model.FindTasks(ctx, opts)
|
||||
if err != nil {
|
||||
ctx.ServerError("FindTasks", err)
|
||||
return
|
||||
}
|
||||
if err = tasks.LoadAttributes(ctx); err != nil {
|
||||
ctx.ServerError("TasksLoadAttributes", err)
|
||||
return
|
||||
}
|
||||
|
||||
ctx.Data["Tasks"] = tasks
|
||||
pager := context.NewPagination(int(count), opts.PageSize, opts.Page, 5)
|
||||
ctx.Data["Page"] = pager
|
||||
|
||||
ctx.HTML(http.StatusOK, tplName)
|
||||
}
|
||||
|
||||
// RunnerDetailsEditPost response for edit runner details
|
||||
func RunnerDetailsEditPost(ctx *context.Context, runnerID, ownerID, repoID int64, redirectTo string) {
|
||||
runner, err := actions_model.GetRunnerByID(ctx, 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
|
||||
runner.CustomLabels = strings.Split(form.CustomLabels, ",")
|
||||
|
||||
err = actions_model.UpdateRunner(ctx, runner, "description", "custom_labels")
|
||||
if err != nil {
|
||||
log.Warn("RunnerDetailsEditPost.UpdateRunner failed: %v, url: %s", err, ctx.Req.URL)
|
||||
ctx.Flash.Warning(ctx.Tr("admin.runners.update_runner_failed"))
|
||||
ctx.Redirect(redirectTo)
|
||||
return
|
||||
}
|
||||
|
||||
log.Debug("RunnerDetailsEditPost success: %s", ctx.Req.URL)
|
||||
|
||||
ctx.Flash.Success(ctx.Tr("admin.runners.update_runner_success"))
|
||||
ctx.Redirect(redirectTo)
|
||||
}
|
||||
|
||||
// RunnerResetRegistrationToken reset registration token
|
||||
func RunnerResetRegistrationToken(ctx *context.Context, ownerID, repoID int64, redirectTo string) {
|
||||
_, err := actions_model.NewRunnerToken(ctx, ownerID, repoID)
|
||||
if err != nil {
|
||||
ctx.ServerError("ResetRunnerRegistrationToken", err)
|
||||
return
|
||||
}
|
||||
|
||||
ctx.Flash.Success(ctx.Tr("admin.runners.reset_registration_token_success"))
|
||||
ctx.Redirect(redirectTo)
|
||||
}
|
||||
|
||||
// RunnerDeletePost response for deleting a runner
|
||||
func RunnerDeletePost(ctx *context.Context, runnerID int64,
|
||||
successRedirectTo, failedRedirectTo string,
|
||||
) {
|
||||
runner, err := actions_model.GetRunnerByID(ctx, runnerID)
|
||||
if err != nil {
|
||||
log.Warn("DeleteRunnerPost.GetRunnerByID failed: %v, url: %s", err, ctx.Req.URL)
|
||||
ctx.ServerError("DeleteRunnerPost.GetRunnerByID", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = actions_model.DeleteRunner(ctx, runner)
|
||||
if err != nil {
|
||||
log.Warn("DeleteRunnerPost.UpdateRunner failed: %v, url: %s", err, ctx.Req.URL)
|
||||
ctx.Flash.Warning(ctx.Tr("runners.delete_runner_failed"))
|
||||
ctx.Redirect(failedRedirectTo)
|
||||
return
|
||||
}
|
||||
|
||||
log.Info("DeleteRunnerPost success: %s", ctx.Req.URL)
|
||||
|
||||
ctx.Flash.Success(ctx.Tr("runners.delete_runner_success"))
|
||||
ctx.Redirect(successRedirectTo)
|
||||
}
|
||||
Reference in New Issue
Block a user