feat(runner-view): add pagination for jobs in runner details page

This commit is contained in:
fuxiaohei 2022-11-10 21:39:05 +08:00 committed by Jason Song
parent 0c3f283a84
commit e218b6f1d2
4 changed files with 35 additions and 7 deletions

View File

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

View File

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

View File

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

View File

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