diff --git a/app/controllers/cities_controller.rb b/app/controllers/cities_controller.rb index 9148109..140d02c 100644 --- a/app/controllers/cities_controller.rb +++ b/app/controllers/cities_controller.rb @@ -4,7 +4,7 @@ class CitiesController < ApplicationController def index @regions = Region.order(:name) - @cities = City.includes(:country, country: :region).order(:name) + @cities = City.includes(:country, :state).order(:name) @latest_arts = WeatherArt.includes(:city, :image_attachment).latest(1) if params[:query].present? @@ -33,7 +33,15 @@ class CitiesController < ApplicationController format.turbo_stream { render turbo_stream: turbo_stream.update("cities_results", partial: "cities/results", - locals: { cities: @cities } + locals: { + cities: @cities, + pagination_params: { + region: params[:region], + country: params[:country], + state: params[:state], + query: params[:query] + } + } ) } end diff --git a/app/views/cities/_results.html.erb b/app/views/cities/_results.html.erb index 897237b..66e1b6f 100644 --- a/app/views/cities/_results.html.erb +++ b/app/views/cities/_results.html.erb @@ -19,6 +19,12 @@ <%= render 'shared/pagination', collection: cities, - collection_name: 'cities' %> + collection_name: 'cities', + pagination_params: { + region: params[:region], + country: params[:country], + state: params[:state], + query: params[:query] + } %> <% end %> \ No newline at end of file diff --git a/app/views/cities/index.html.erb b/app/views/cities/index.html.erb index b1715b0..79749b9 100644 --- a/app/views/cities/index.html.erb +++ b/app/views/cities/index.html.erb @@ -152,7 +152,7 @@ - <%= turbo_frame_tag "cities_results" do %> + <%= turbo_frame_tag "cities_results",data: { turbo_action: "advance" } do %> <%= render "cities/results", cities: @cities %> <% end %> diff --git a/app/views/shared/_pagination.html.erb b/app/views/shared/_pagination.html.erb index e0d9c62..db740fe 100644 --- a/app/views/shared/_pagination.html.erb +++ b/app/views/shared/_pagination.html.erb @@ -1,5 +1,6 @@ <%# app/views/shared/_pagination.html.erb %> <% if collection.total_pages > 1 %> + <% pagination_params ||= {} %>
@@ -11,7 +12,7 @@
- <%= link_to url_for(page: 1, region: params[:region], country: params[:country], sort: params[:sort]), + <%= link_to url_for(pagination_params.merge(page: 1)), class: "join-item btn btn-sm #{collection.first_page? ? 'btn-disabled' : 'btn-ghost'}" do %> @@ -19,7 +20,7 @@ <% end %> - <%= link_to url_for(page: collection.prev_page || 1, region: params[:region], country: params[:country], sort: params[:sort]), + <%= link_to url_for(pagination_params.merge(page: collection.prev_page || 1)), class: "join-item btn btn-sm #{collection.first_page? ? 'btn-disabled' : 'btn-ghost'}" do %> @@ -32,7 +33,7 @@ <% end_page = [collection.total_pages, collection.current_page + page_window].min %> <% if start_page > 1 %> - <%= link_to 1, url_for(page: 1, region: params[:region], country: params[:country], sort: params[:sort]), + <%= link_to 1, url_for(pagination_params.merge(page: 1)), class: "join-item btn btn-sm btn-ghost hover:bg-primary/5" %> <% if start_page > 2 %> @@ -45,7 +46,7 @@ <%= page %> <% else %> - <%= link_to page, url_for(page: page, region: params[:region], country: params[:country], sort: params[:sort]), + <%= link_to page, url_for(pagination_params.merge(page: page)), class: "join-item btn btn-sm btn-ghost hover:bg-primary/5" %> <% end %> <% end %> @@ -55,12 +56,12 @@ <% end %> <%= link_to collection.total_pages, - url_for(page: collection.total_pages, region: params[:region], country: params[:country], sort: params[:sort]), + url_for(pagination_params.merge(page: collection.total_pages)), class: "join-item btn btn-sm btn-ghost hover:bg-primary/5" %> <% end %> - <%= link_to url_for(page: collection.next_page || collection.total_pages, region: params[:region], country: params[:country], sort: params[:sort]), + <%= link_to url_for(pagination_params.merge(page: collection.next_page || collection.total_pages)), class: "join-item btn btn-sm #{collection.last_page? ? 'btn-disabled' : 'btn-ghost'}" do %> @@ -68,7 +69,7 @@ <% end %> - <%= link_to url_for(page: collection.total_pages, region: params[:region], country: params[:country], sort: params[:sort]), + <%= link_to url_for(pagination_params.merge(page: collection.total_pages)), class: "join-item btn btn-sm #{collection.last_page? ? 'btn-disabled' : 'btn-ghost'}" do %>