Better pagination labels

This commit is contained in:
Thomas Miceli
2023-03-15 01:26:56 +01:00
parent 12625ed462
commit d8dd41a5e5
5 changed files with 23 additions and 11 deletions

View File

@ -171,7 +171,7 @@ func getPage(ctx echo.Context) int {
return pageInt
}
func paginate[T any](ctx echo.Context, data []*T, pageInt int, perPage int, templateDataName string, urlPage string, urlParams ...string) error {
func paginate[T any](ctx echo.Context, data []*T, pageInt int, perPage int, templateDataName string, urlPage string, labels int, urlParams ...string) error {
lenData := len(data)
if lenData == 0 && pageInt != 1 {
return errors.New("page not found")
@ -191,6 +191,15 @@ func paginate[T any](ctx echo.Context, data []*T, pageInt int, perPage int, temp
setData(ctx, "urlParams", template.URL(urlParams[0]))
}
switch labels {
case 1:
setData(ctx, "prevLabel", "Previous")
setData(ctx, "nextLabel", "Next")
case 2:
setData(ctx, "prevLabel", "Newer")
setData(ctx, "nextLabel", "Older")
}
setData(ctx, "urlPage", urlPage)
setData(ctx, templateDataName, data)
return nil