Refactor reports form to use bootstrap

This commit is contained in:
Andy Allan 2020-08-12 16:55:34 +02:00
parent c3435167b9
commit 8df3010766
3 changed files with 20 additions and 29 deletions

View file

@ -1,5 +1,14 @@
require "ostruct"
module ReportsHelper
def report_link(name, reportable)
link_to name, new_report_url(:reportable_id => reportable.id, :reportable_type => reportable.class.name)
end
# Convert a list of strings into objects with methods that the collection_radio_buttons helper expects
def report_categories(reportable)
Report.categories_for(reportable).map do |c|
OpenStruct.new(:id => c, :label => t(".categories.#{reportable.class.name.underscore}.#{c}_label"))
end
end
end

View file

@ -11,32 +11,13 @@
</ul>
</div>
<%= form_for(@report) do |f| %>
<%= f.error_messages %>
<fieldset class="standard-form">
<%= f.fields_for @report.issue do |issue_form| %>
<%= issue_form.hidden_field :reportable_id %>
<%= issue_form.hidden_field :reportable_type %>
<% end %>
<%= bootstrap_form_for(@report) do |f| %>
<%= f.fields_for @report.issue do |issue_form| %>
<%= issue_form.hidden_field :reportable_id %>
<%= issue_form.hidden_field :reportable_type %>
<% end %>
<div class='standard-form-row'>
<p><%= t(".select") %></p>
<ul class="form-list">
<% Report.categories_for(@report.issue.reportable).each do |c| %>
<li>
<%= radio_button :report, :category, c, :required => true %>
<%= label_tag "report_category_#{c}", t(".categories.#{@report.issue.reportable.class.name.underscore}.#{c}_label") %>
</li>
<% end %>
</ul>
</div>
<div class='standard-form-row'>
<%= text_area :report, :details, :cols => 20, :rows => 5, :placeholder => t(".details") %>
</div>
<div class='buttons'>
<%= f.submit %>
</div>
</fieldset>
<%= f.collection_radio_buttons :category, report_categories(@report.issue.reportable), :id, :label %>
<%= f.text_area :details, :rows => 5, :label_as_placeholder => true %>
<%= f.primary %>
<% end %>

View file

@ -104,6 +104,9 @@ en:
title: "Subject"
body: "Body"
recipient: "Recipient"
report:
category: Select a reason for your report
details: Please provide some more details about the problem (required).
user:
email: "Email"
active: "Active"
@ -1118,8 +1121,6 @@ en:
new:
title_html: "Report %{link}"
missing_params: "Cannot create a new report"
details: Please provide some more details about the problem (required).
select: "Select a reason for your report:"
disclaimer:
intro: "Before sending your report to the site moderators, please ensure that:"
not_just_mistake: You are certain that the problem is not just a mistake