diff --git a/src/ocamlorg_frontend/components/pagination.eml b/src/ocamlorg_frontend/components/pagination.eml index 0daf6a27b8..185adbd9fa 100644 --- a/src/ocamlorg_frontend/components/pagination.eml +++ b/src/ocamlorg_frontend/components/pagination.eml @@ -1,36 +1,36 @@ -let link ~base_url ~page ~current = +let link ~base_url ~page ~current ~query = let active_class = "border-2 border-current text-primary-600" in let non_active_class = "border border-body-100 text-lighter hover:bg-gray-50 hover:no-underline" in - <%i page %> -let left_arrow ~base_url page = - <%s! Icons.chevron_left "h-5 w-5" %> -let right_arrow ~base_url page = - <%s! Icons.chevron_right "h-5 w-5" %> -let render ~total_page_count ~page_number ~base_url = +let render ~total_page_count ~page_number ~base_url ~query=
- <%s! if page_number != 1 then (left_arrow ~base_url page_number) else "" %> - <%s! link ~base_url ~page:1 ~current:page_number %> + <%s! if page_number != 1 then (left_arrow ~base_url page_number ~query) else "" %> + <%s! link ~base_url ~page:1 ~current:page_number ~query %> <% if page_number >= 4 then ( %> ... <% ); %> <% for page = 2 to (total_page_count - 1) do %> - <%s! if (abs (page_number - page) <= 1) || (page_number = 1 && page = 3) || (page_number = total_page_count && total_page_count - page = 2) then (link ~base_url ~page ~current:page_number) else "" %> + <%s! if (abs (page_number - page) <= 1) || (page_number = 1 && page = 3) || (page_number = total_page_count && total_page_count - page = 2) then (link ~base_url ~page ~current:page_number ~query) else "" %> <% done; %> <% if total_page_count - page_number >= 3 then ( %> ... <% ); %> - <%s! link ~base_url ~page:total_page_count ~current:page_number %> - <%s! if page_number != total_page_count then (right_arrow ~base_url page_number) else "" %> + <%s! link ~base_url ~page:total_page_count ~current:page_number ~query %> + <%s! if page_number != total_page_count then (right_arrow ~base_url page_number ~query) else "" %>
diff --git a/src/ocamlorg_frontend/pages/blog.eml b/src/ocamlorg_frontend/pages/blog.eml index 14e33e0541..2903fbe2d9 100644 --- a/src/ocamlorg_frontend/pages/blog.eml +++ b/src/ocamlorg_frontend/pages/blog.eml @@ -64,7 +64,7 @@ Layout.render <% ); %> - <%s! Pagination.render ~total_page_count:planet_pages_number ~page_number:planet_page ~base_url:Url.blog %> + <%s! Pagination.render ~total_page_count:planet_pages_number ~page_number:planet_page ~base_url:Url.blog ~query:""%>
diff --git a/src/ocamlorg_frontend/pages/packages_search.eml b/src/ocamlorg_frontend/pages/packages_search.eml index ff4a62e8cd..4f0e8d9b54 100644 --- a/src/ocamlorg_frontend/pages/packages_search.eml +++ b/src/ocamlorg_frontend/pages/packages_search.eml @@ -1,4 +1,4 @@ -let render ~total ~search ~page ~number_of_pages ~base_url (packages : Package.package list) = Layout.render ~title:"OCaml Packages · Search Result" +let render ~total ~search ~page ~number_of_pages (packages : Package.package list) = Layout.render ~title:"OCaml Packages · Search Result" ~description:"Find the package you need to build your application in the thousands of available OCaml packages." ~canonical:(Url.packages_search ^ "?q=" ^ search) ~active_top_nav_item:Header.Packages @@ @@ -111,7 +111,7 @@ let render ~total ~search ~page ~number_of_pages ~base_url (packages : Package.p <% ); %> <% ); %> - <%s! Pagination.render ~total_page_count:number_of_pages ~page_number:page ~base_url:base_url %> + <%s! Pagination.render ~total_page_count:number_of_pages ~page_number:page ~base_url:Url.packages_search ~query:search %>
diff --git a/src/ocamlorg_web/lib/handler.ml b/src/ocamlorg_web/lib/handler.ml index ada916fa21..be821a13d8 100644 --- a/src/ocamlorg_web/lib/handler.ml +++ b/src/ocamlorg_web/lib/handler.ml @@ -601,11 +601,9 @@ let packages_search t req = paginate ~req ~n:50 packages in let results = List.map (Package_helper.frontend_package t) current_items in - let base_url = Url.packages_search ^ "?q=" ^ search ^ "&p=" - in let search = Dream.from_percent_encoded search in - Dream.html (Ocamlorg_frontend.packages_search ~total ~search ~page ~number_of_pages ~base_url results) + Dream.html (Ocamlorg_frontend.packages_search ~total ~search ~page ~number_of_pages results) | None -> Dream.redirect req Url.packages let packages_autocomplete_fragment t req =