From 7e11e604c7c216cd8c831ee417031d788559fae1 Mon Sep 17 00:00:00 2001 From: Will Assis <35489495+gassiss@users.noreply.github.com> Date: Fri, 7 Feb 2025 15:24:27 -0300 Subject: [PATCH] [search] fix offset param in finddashboards (#100302) * fix offset param in finddashboards * separate offset from page in k8s search endponit --- pkg/registry/apis/dashboard/search.go | 5 ++++- pkg/services/dashboards/service/dashboard_service.go | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/registry/apis/dashboard/search.go b/pkg/registry/apis/dashboard/search.go index 4d9b8137c85..111b872cecc 100644 --- a/pkg/registry/apis/dashboard/search.go +++ b/pkg/registry/apis/dashboard/search.go @@ -221,11 +221,14 @@ func (s *SearchHandler) DoSearch(w http.ResponseWriter, r *http.Request) { // get limit and offset from query params limit := 50 offset := 0 + page := 1 if queryParams.Has("limit") { limit, _ = strconv.Atoi(queryParams.Get("limit")) } if queryParams.Has("offset") { offset, _ = strconv.Atoi(queryParams.Get("offset")) + } else if queryParams.Has("page") { + page, _ = strconv.Atoi(queryParams.Get("page")) } searchRequest := &resource.ResourceSearchRequest{ @@ -233,7 +236,7 @@ func (s *SearchHandler) DoSearch(w http.ResponseWriter, r *http.Request) { Query: queryParams.Get("query"), Limit: int64(limit), Offset: int64(offset), - Page: int64(offset), // on modes 0-2 (legacy) we use "Page" instead of "Offset" + Page: int64(page), // for modes 0-2 (legacy) Explain: queryParams.Has("explain") && queryParams.Get("explain") != "false", } fields := []string{"title", "folder", "tags"} diff --git a/pkg/services/dashboards/service/dashboard_service.go b/pkg/services/dashboards/service/dashboard_service.go index 32ee53be6e0..95d6c8af652 100644 --- a/pkg/services/dashboards/service/dashboard_service.go +++ b/pkg/services/dashboards/service/dashboard_service.go @@ -1755,7 +1755,7 @@ func (dr *DashboardServiceImpl) searchDashboardsThroughK8sRaw(ctx context.Contex request.Limit = query.Limit request.Page = query.Page - request.Offset = query.Page - 1 // bleve's offset is 0 indexed + request.Offset = (query.Page - 1) * query.Limit // only relevant when running in modes 3+ namespace := dr.k8sclient.GetNamespace(query.OrgId) var err error