chore: initialize Gitea v1.27.2 fork
giteabot backport / giteabot (push) Canceled after 0s
giteabot / giteabot (push) Canceled after 0s
release-nightly / nightly-binary (push) Canceled after 0s
release-nightly / nightly-container (push) Canceled after 0s
cache-seeder / gobuild (push) Canceled after 0s
cache-seeder / lint (bindata, lint-backend) (push) Canceled after 0s
release-nightly-snapcraft / build-and-publish (push) Canceled after 0s
giteabot backport / giteabot (push) Canceled after 0s
giteabot / giteabot (push) Canceled after 0s
release-nightly / nightly-binary (push) Canceled after 0s
release-nightly / nightly-container (push) Canceled after 0s
cache-seeder / gobuild (push) Canceled after 0s
cache-seeder / lint (bindata, lint-backend) (push) Canceled after 0s
release-nightly-snapcraft / build-and-publish (push) Canceled after 0s
Includes direct password setup links in registration emails. Assisted-by: Codex:GPT-5
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
// Copyright 2021 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package util
|
||||
|
||||
import "reflect"
|
||||
|
||||
// PaginateSlice cut a slice as per pagination options
|
||||
// if page = 0 it do not paginate
|
||||
func PaginateSlice(list any, page, pageSize int) any {
|
||||
if page <= 0 || pageSize <= 0 {
|
||||
return list
|
||||
}
|
||||
if reflect.TypeOf(list).Kind() != reflect.Slice {
|
||||
return list
|
||||
}
|
||||
|
||||
listValue := reflect.ValueOf(list)
|
||||
|
||||
page--
|
||||
|
||||
if page*pageSize >= listValue.Len() {
|
||||
return listValue.Slice(listValue.Len(), listValue.Len()).Interface()
|
||||
}
|
||||
|
||||
listValue = listValue.Slice(page*pageSize, listValue.Len())
|
||||
|
||||
if listValue.Len() > pageSize {
|
||||
return listValue.Slice(0, pageSize).Interface()
|
||||
}
|
||||
|
||||
return listValue.Interface()
|
||||
}
|
||||
Reference in New Issue
Block a user