From: Tom Hughes Date: Tue, 27 Aug 2024 18:19:49 +0000 (+0100) Subject: Use turbo to update issue search results X-Git-Tag: live~256^2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/9416317e6428e8b6a801edba8bbbc27ee27dc7cc?hp=5841813b82380c13ad4cfd2d652ce3bfeedff488 Use turbo to update issue search results --- diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index f53a8dad5..fe900d627 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -27,12 +27,11 @@ class IssuesController < ApplicationController # If search if params[:search_by_user].present? @find_user = User.find_by(:display_name => params[:search_by_user]) - if @find_user - @issues = @issues.where(:reported_user => @find_user) - else - @issues = @issues.none - flash.now[:warning] = t(".user_not_found") - end + @issues = if @find_user + @issues.where(:reported_user => @find_user) + else + @issues.none + end end @issues = @issues.where(:status => params[:status]) if params[:status].present? diff --git a/app/views/issues/_page.html.erb b/app/views/issues/_page.html.erb index 2c0340c11..b46b1798c 100644 --- a/app/views/issues/_page.html.erb +++ b/app/views/issues/_page.html.erb @@ -1,36 +1,44 @@ - - - - - - - - - - - - <% @issues.each do |issue| %> + <% if @issues.length == 0 %> + <% if params[:search_by_user].present? && !@find_user %> +

<%= t ".user_not_found" %>

+ <% else %> +

<%= t ".issues_not_found" %>

+ <% end %> + <% else %> +
<%= t ".status" %><%= t ".reports" %><%= t ".reported_item" %><%= t ".reported_user" %><%= t ".last_updated" %>
+ - - - - - + + + + + - <% end %> - -
<%= t ".states.#{issue.status}" %><%= link_to t(".reports_count", :count => issue.reports_count), issue %><%= link_to reportable_title(issue.reportable), reportable_url(issue.reportable) %><%= link_to issue.reported_user.display_name, issue.reported_user if issue.reported_user %> - <% if issue.user_updated %> - <%= t ".last_updated_time_ago_user_html", :user => link_to(issue.user_updated.display_name, issue.user_updated), - :time_ago => friendly_date_ago(issue.updated_at) %> - <% else %> - <%= friendly_date_ago(issue.updated_at) %> - <% end %> - <%= t ".status" %><%= t ".reports" %><%= t ".reported_item" %><%= t ".reported_user" %><%= t ".last_updated" %>
- <%= render "shared/pagination", - :newer_key => "issues.page.newer_issues", - :older_key => "issues.page.older_issues", - :newer_id => @newer_issues_id, - :older_id => @older_issues_id %> + + + <% @issues.each do |issue| %> + + <%= t ".states.#{issue.status}" %> + <%= link_to t(".reports_count", :count => issue.reports_count), issue %> + <%= link_to reportable_title(issue.reportable), reportable_url(issue.reportable) %> + <%= link_to issue.reported_user.display_name, issue.reported_user if issue.reported_user %> + + <% if issue.user_updated %> + <%= t ".last_updated_time_ago_user_html", :user => link_to(issue.user_updated.display_name, issue.user_updated), + :time_ago => friendly_date_ago(issue.updated_at) %> + <% else %> + <%= friendly_date_ago(issue.updated_at) %> + <% end %> + + + <% end %> + + + <%= render "shared/pagination", + :newer_key => "issues.page.newer_issues", + :older_key => "issues.page.older_issues", + :newer_id => @newer_issues_id, + :older_id => @older_issues_id %> + <% end %>
diff --git a/app/views/issues/index.html.erb b/app/views/issues/index.html.erb index 6234f755f..95dfbf6f2 100644 --- a/app/views/issues/index.html.erb +++ b/app/views/issues/index.html.erb @@ -4,7 +4,7 @@

<%= t ".search_guidance" %>

-<%= form_tag(issues_path, :method => :get) do %> +<%= form_tag(issues_path, :method => :get, :data => { "turbo" => true, "turbo-frame" => "pagination", "turbo-action" => "advance" }) do %>
<%= select_tag :status, @@ -40,8 +40,4 @@
<% end %> -<% if @issues.length == 0 %> -

<%= t ".issues_not_found" %>

-<% else %> - <%= render :partial => "page" %> -<% end %> +<%= render :partial => "page" %> diff --git a/config/locales/en.yml b/config/locales/en.yml index a544fe307..1ad0d2ed8 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1467,14 +1467,14 @@ en: not_updated: Not Updated search: Search search_guidance: "Search Issues:" - user_not_found: User does not exist - issues_not_found: No such issues found link_to_reports: View Reports states: ignored: Ignored open: Open resolved: Resolved page: + user_not_found: User does not exist + issues_not_found: No such issues found reported_user: Reported User status: Status reports: Reports diff --git a/test/system/issues_test.rb b/test/system/issues_test.rb index 4d58b9cfc..ab2330e31 100644 --- a/test/system/issues_test.rb +++ b/test/system/issues_test.rb @@ -19,7 +19,7 @@ class IssuesTest < ApplicationSystemTestCase sign_in_as(create(:moderator_user)) visit issues_path - assert_content I18n.t("issues.index.issues_not_found") + assert_content I18n.t("issues.page.issues_not_found") end def test_view_issues @@ -81,22 +81,22 @@ class IssuesTest < ApplicationSystemTestCase visit issues_path fill_in "search_by_user", :with => good_user.display_name click_on "Search" - assert_no_content I18n.t("issues.index.user_not_found") - assert_content I18n.t("issues.index.issues_not_found") + assert_no_content I18n.t("issues.page.user_not_found") + assert_content I18n.t("issues.page.issues_not_found") # User doesn't exist visit issues_path fill_in "search_by_user", :with => "Nonexistent User" click_on "Search" - assert_content I18n.t("issues.index.user_not_found") - assert_content I18n.t("issues.index.issues_not_found") + assert_content I18n.t("issues.page.user_not_found") + assert_no_content I18n.t("issues.page.issues_not_found") # Find Issue against bad_user visit issues_path fill_in "search_by_user", :with => bad_user.display_name click_on "Search" - assert_no_content I18n.t("issues.index.user_not_found") - assert_no_content I18n.t("issues.index.issues_not_found") + assert_no_content I18n.t("issues.page.user_not_found") + assert_no_content I18n.t("issues.page.issues_not_found") end def test_commenting @@ -173,20 +173,20 @@ class IssuesTest < ApplicationSystemTestCase visit issues_path # First Page - assert_no_content I18n.t("issues.index.user_not_found") - assert_no_content I18n.t("issues.index.issues_not_found") + assert_no_content I18n.t("issues.page.user_not_found") + assert_no_content I18n.t("issues.page.issues_not_found") assert_css "tr", :count => 51 # Second Page click_on I18n.t("issues.page.older_issues") - assert_no_content I18n.t("issues.index.user_not_found") - assert_no_content I18n.t("issues.index.issues_not_found") + assert_no_content I18n.t("issues.page.user_not_found") + assert_no_content I18n.t("issues.page.issues_not_found") assert_css "tr", :count => 31 # Back to First Page click_on I18n.t("issues.page.newer_issues") - assert_no_content I18n.t("issues.index.user_not_found") - assert_no_content I18n.t("issues.index.issues_not_found") + assert_no_content I18n.t("issues.page.user_not_found") + assert_no_content I18n.t("issues.page.issues_not_found") assert_css "tr", :count => 51 end end