]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/issues/index.html.erb
Merge remote-tracking branch 'upstream/pull/4579'
[rails.git] / app / views / issues / index.html.erb
index be0a448edfc26ce3db95e1cb5406ae8da4c53aae..12ddf2b32a162f6e77c909eb4458dbd9a771571f 100644 (file)
@@ -1,46 +1,75 @@
-<p id= "notice"><%= notice %></p>
-
 <% content_for :heading do %>
 <% content_for :heading do %>
-       <h1>List of <%= @user_role %> issues:</h1>
+  <h1><%= t ".title" %></h1>
 <% end %>
 
 <% end %>
 
+<p><%= t ".search_guidance" %></p>
+
 <%= form_tag(issues_path, :method => :get) do %>
 <%= form_tag(issues_path, :method => :get) do %>
-       Search for a particular issue(s):  
-       <%= select :status, nil, [['open', 0],['resolved',2],['ignored',1]],{:include_blank => "Select status"},data: { behavior: 'category_dropdown' } %>
-       <%= select :issue_type, nil, @issue_types,{:include_blank => "Select type"},data: { behavior: 'category_dropdown' } %>
-       <%= text_field_tag :search_by_user, params[:search_by_user], placeholder: "Reported User" %>
-       <%= submit_tag "Search" %>
+  <div class="row gx-1">
+    <div class="mb-3 col-md-auto">
+      <%= select_tag :status,
+                     options_for_select(Issue.aasm.states.map(&:name).map { |state| [t(".states.#{state}"), state] }, params[:status]),
+                     :include_blank => t(".select_status"),
+                     :data => { :behavior => "category_dropdown" },
+                     :class => "form-select" %>
+    </div>
+    <div class="mb-3 col-md-auto">
+      <%= select_tag :issue_type,
+                     options_for_select(@issue_types, params[:issue_type]),
+                     :include_blank => t(".select_type"),
+                     :data => { :behavior => "category_dropdown" },
+                     :class => "form-select" %>
+    </div>
+    <div class="mb-3 col-md">
+      <%= text_field_tag :search_by_user,
+                         params[:search_by_user],
+                         :placeholder => t(".reported_user"),
+                         :autocomplete => "on",
+                         :class => "form-control" %>
+    </div>
+    <div class="mb-3 col-md-auto">
+      <%= select_tag :last_updated_by,
+                     options_for_select(@users.all.collect { |f| [f.display_name, f.id] } << [t(".not_updated"), "nil"], params[:last_updated_by]),
+                     :include_blank => t(".select_last_updated_by"),
+                     :data => { :behavior => "category_dropdown" },
+                     :class => "form-select" %>
+    </div>
+    <div class="mb-3 col-md-auto">
+      <%= submit_tag t(".search"), :name => nil, :class => "btn btn-primary" %>
+    </div>
+  </div>
 <% end %>
 <% end %>
-<br/>
-<br/>
-
-<table>
-       <thead>
-               <tr>
-                       <tr>
-                               <td><b> <%= sortable("status") %></b></td>
-                               <td><b> <%= sortable("report_count", "Number of Reports") %></b></td>
-                               <td><b> <%= sortable("updated_at","Last updated at") %></b></td>
-                               <td><b> <%= sortable("updated_by","Last updated by") %></b></td>
-                               <td><b> Link to reports </b></td>
-                               <td><b> <%= sortable("reported_user_id","Reported User") %> </b></td>
-                               <td><b> Link to reported instance</b></td>
-                       </tr>
-               </tr>
-       </thead>
-       <tbody>
-               <% @issues.each do |issue| %>
-                       <tr>
-                               <td><span class="count-number"> <strong><%= issue.status %></strong></span> </td>
-                               <td><%= issue.report_count %></td>
-                               <td><%= issue.updated_at.strftime('%H:%M %m/%d/%y') %></td>
-                               <td><% if issue.user_updated %> <%= issue.user_updated.display_name %> <% else %> - <% end %></td>
-                               <td> <%= reports_url(issue) %></td>
-                               <td><%= link_to issue.user.display_name , :controller => :user, :action => :view,:display_name => issue.user.display_name %></td>
-                               <td><%= instance_url(issue.reportable) %></td>
-                       </tr>
-               <% end %>
-       </tbody>
-</table>
-
 
 
+<% if @issues.length == 0 %>
+  <p><%= t ".issues_not_found" %></p>
+<% else %>
+  <table class="table table-sm">
+    <thead>
+      <tr>
+        <th><%= t ".status" %></th>
+        <th><%= t ".reports" %></th>
+        <th><%= t ".reported_item" %></th>
+        <th><%= t ".reported_user" %></th>
+        <th><%= t ".last_updated" %></th>
+      </tr>
+    </thead>
+    <tbody>
+      <% @issues.each do |issue| %>
+        <tr>
+          <td><%= t ".states.#{issue.status}" %></td>
+          <td class="text-nowrap"><%= link_to t(".reports_count", :count => issue.reports_count), issue %></td>
+          <td><%= link_to reportable_title(issue.reportable), reportable_url(issue.reportable) %></td>
+          <td><%= link_to issue.reported_user.display_name, user_path(issue.reported_user) if issue.reported_user %></td>
+          <td>
+            <% if issue.user_updated %>
+              <%= t ".last_updated_time_ago_user_html", :user => link_to(issue.user_updated.display_name, user_path(issue.user_updated)),
+                                                        :time_ago => friendly_date_ago(issue.updated_at) %>
+            <% else %>
+              <%= friendly_date_ago(issue.updated_at) %>
+            <% end %>
+          </td>
+        </tr>
+      <% end %>
+    </tbody>
+  </table>
+<% end %>