Use a list of links for admin stats events
Using <h3> headings for the links had two disadvantages. First, it was the wrong heading level to use, since there was no <h2> tag before it. Second, headings are supposed to be followed by content associated to that heading; here, we had no content following the headings. So we're using a list of links and giving it a heading. We're adding styles so the page still looks like it used to, although these styles are certainly asking for improvements.
This commit is contained in:
14
app/assets/stylesheets/admin/stats/event_links.scss
Normal file
14
app/assets/stylesheets/admin/stats/event_links.scss
Normal file
@@ -0,0 +1,14 @@
|
||||
.stats-event-links {
|
||||
margin-top: $line-height;
|
||||
|
||||
ul {
|
||||
@include header-font-size(h3);
|
||||
font-weight: bold;
|
||||
list-style-type: none;
|
||||
margin-#{$global-left}: 0;
|
||||
|
||||
* + * {
|
||||
margin-top: $line-height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,4 @@
|
||||
<% event_names.each do |event| %>
|
||||
<h3>
|
||||
<%= link_to link_text(event),
|
||||
graph_admin_stats_path(event: event) %>
|
||||
</h3>
|
||||
<% end %>
|
||||
<div class="stats-event-links">
|
||||
<h2><%= title %></h2>
|
||||
<%= link_list(*links) %>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
class Admin::Stats::EventLinksComponent < ApplicationComponent
|
||||
attr_reader :event_names
|
||||
use_helpers :link_list
|
||||
|
||||
def initialize(event_names)
|
||||
@event_names = event_names
|
||||
@@ -14,4 +15,14 @@ class Admin::Stats::EventLinksComponent < ApplicationComponent
|
||||
end
|
||||
text
|
||||
end
|
||||
|
||||
def title
|
||||
t("admin.stats.graph.title")
|
||||
end
|
||||
|
||||
def links
|
||||
event_names.map do |event|
|
||||
[link_text(event), graph_admin_stats_path(event: event)]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1492,6 +1492,7 @@ en:
|
||||
visit: Visits
|
||||
level_2_user: Level 2 users
|
||||
proposal_created: Citizen proposals
|
||||
title: Graphs
|
||||
budgets:
|
||||
no_data_before_balloting_phase: "There isn't any data to show before the balloting phase."
|
||||
title: "Participatory Budgets - Participation stats"
|
||||
|
||||
@@ -1492,6 +1492,7 @@ es:
|
||||
visit: Visitas
|
||||
level_2_user: Usuarios nivel 2
|
||||
proposal_created: Propuestas Ciudadanas
|
||||
title: Gráficos
|
||||
budgets:
|
||||
no_data_before_balloting_phase: "No hay datos que mostrar hasta que la fase de votación no esté abierta."
|
||||
title: "Presupuestos participativos - Estadisticas de participación"
|
||||
|
||||
17
spec/components/admin/stats/event_links_component_spec.rb
Normal file
17
spec/components/admin/stats/event_links_component_spec.rb
Normal file
@@ -0,0 +1,17 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe Admin::Stats::EventLinksComponent do
|
||||
it "renders an <h2> heading followed by a list of links" do
|
||||
render_inline Admin::Stats::EventLinksComponent.new(
|
||||
%w[legislation_annotation_created legislation_answer_created]
|
||||
)
|
||||
|
||||
expect(page).to have_css "h2", exact_text: "Graphs"
|
||||
expect(page).to have_link count: 2
|
||||
|
||||
page.find("ul") do |list|
|
||||
expect(list).to have_link "legislation_annotation_created"
|
||||
expect(list).to have_link "legislation_answer_created"
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user