diff --git a/routers/common/runners.go b/routers/common/runners.go index fee5af9ab0..c4fa1d8de0 100644 --- a/routers/common/runners.go +++ b/routers/common/runners.go @@ -6,6 +6,7 @@ import ( "strings" bots_model "code.gitea.io/gitea/models/bots" + "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/log" @@ -61,7 +62,8 @@ 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, ownerID int64, repoID int64) { +// RunnerDetails render runner details page +func RunnerDetails(ctx *context.Context, tplName base.TplName, page int, runnerID int64, ownerID int64, repoID int64) { runner, err := bots_model.GetRunnerByID(runnerID) if err != nil { ctx.ServerError("GetRunnerByID", err) @@ -79,12 +81,23 @@ func RunnerDetails(ctx *context.Context, tplName base.TplName, runnerID int64, o ctx.Data["Runner"] = runner - // TODO: get task list for this runner - tasks, _, err := bots_model.FindTasks(ctx, bots_model.FindTaskOptions{ + opts := bots_model.FindTaskOptions{ + ListOptions: db.ListOptions{ + Page: page, + PageSize: 30, + }, Status: bots_model.StatusUnknown, // Unknown means all IDOrderDesc: true, RunnerID: runner.ID, - }) + } + + count, err := bots_model.CountTasks(ctx, opts) + if err != nil { + ctx.ServerError("CountTasks", err) + return + } + + tasks, _, err := bots_model.FindTasks(ctx, opts) if err != nil { ctx.ServerError("FindTasks", err) return @@ -95,6 +108,8 @@ func RunnerDetails(ctx *context.Context, tplName base.TplName, runnerID int64, o } ctx.Data["Tasks"] = tasks + pager := context.NewPagination(int(count), opts.PageSize, opts.Page, 5) + ctx.Data["Page"] = pager ctx.HTML(http.StatusOK, tplName) } diff --git a/routers/web/admin/runners.go b/routers/web/admin/runners.go index 29d59ea13c..7567291c31 100644 --- a/routers/web/admin/runners.go +++ b/routers/web/admin/runners.go @@ -54,7 +54,12 @@ func EditRunner(ctx *context.Context) { ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminRunners"] = true - common.RunnerDetails(ctx, tplRunnerEdit, ctx.ParamsInt64(":runnerid"), 0, 0) + page := ctx.FormInt("page") + if page <= 1 { + page = 1 + } + + common.RunnerDetails(ctx, tplRunnerEdit, page, ctx.ParamsInt64(":runnerid"), 0, 0) } // EditRunnerPost response for editing runner diff --git a/routers/web/org/org_runners.go b/routers/web/org/org_runners.go index dad16e7796..0e98cb7df2 100644 --- a/routers/web/org/org_runners.go +++ b/routers/web/org/org_runners.go @@ -47,8 +47,12 @@ func RunnersEdit(ctx *context.Context) { ctx.Data["Title"] = ctx.Tr("org.runners.edit") ctx.Data["PageIsOrgSettings"] = true ctx.Data["PageIsOrgSettingsRunners"] = true + page := ctx.FormInt("page") + if page <= 1 { + page = 1 + } - common.RunnerDetails(ctx, tplSettingsRunnersEdit, + common.RunnerDetails(ctx, tplSettingsRunnersEdit, page, ctx.ParamsInt64(":runnerid"), ctx.Org.Organization.ID, 0, ) } diff --git a/routers/web/repo/runners.go b/routers/web/repo/runners.go index 3c259c56b5..f21c4e2601 100644 --- a/routers/web/repo/runners.go +++ b/routers/web/repo/runners.go @@ -42,8 +42,12 @@ func Runners(ctx *context.Context) { func RunnersEdit(ctx *context.Context) { ctx.Data["Title"] = ctx.Tr("repo.settings.runners") ctx.Data["PageIsSettingsRunners"] = true + page := ctx.FormInt("page") + if page <= 1 { + page = 1 + } - common.RunnerDetails(ctx, tplRunnerEdit, + common.RunnerDetails(ctx, tplRunnerEdit, page, ctx.ParamsInt64(":runnerid"), 0, ctx.Repo.Repository.ID, ) }