Many pages had this tag, but many other didn't, which made navigation inconsistent for people using screen readers. Note that there are slight changes in two pages: * The homepage now includes the banner and the content of the `shared/header` element inside the <main> tag * The budgets index now includes the banner inside the <main> tag I see both potential advantages and disadvantages of this approach, since banners aren't necessarily related to the main content of a page but on the other hand they aren't the same across pages and people using screen readers might accidentally skip them if they jump to the <main> tag. So I'm choosing the option that is easier to implement. Note we're adding a `public-content` class to the <main> element in the application layout. This might be redundat because the element could already be accessed through the `.public main` selector, but this is consistent with the `admin-content` class used in the admin section, and without it the <main> element would sometimes have an empty class attribute and we'd have to use `if content_for?(:main_class)` or `tag.main` which IMHO makes the code less consistent. The Capybara::DSL monkey-patch is only done on the `visit` method because it's the only reliable one. Other methods like `click_link` generate AJAX requests, so `expect(page).to have_css "main", count: 1` might be executed before the AJAX request is finished, meaning it wouldn't properly test anything.
89 lines
2.8 KiB
Plaintext
89 lines
2.8 KiB
Plaintext
<% provide :title do %><%= t("budgets.investments.index.title") %><% end %>
|
|
<% content_for :header_addon do %>
|
|
<%= render "shared/search_form",
|
|
search_path: budget_investments_path(budget_id: @budget.id, page: 1),
|
|
i18n_namespace: "budgets.investments.index.search_form" %>
|
|
<% end %>
|
|
<% content_for :canonical do %>
|
|
<% if @heading.present? %>
|
|
<%= render "shared/canonical",
|
|
href: budget_investments_url(@budget,
|
|
heading_id: @heading.id,
|
|
filter: @current_filter) %>
|
|
<% else %>
|
|
<%= render "shared/canonical", href: budget_investments_url(@budget) %>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% if @search_terms || @advanced_search_terms %>
|
|
<%= render Shared::SearchResultsSummaryComponent.new(
|
|
results: @investments,
|
|
search_terms: @search_terms,
|
|
advanced_search_terms: @advanced_search_terms
|
|
) %>
|
|
<% else %>
|
|
<%= render "/budgets/investments/header" %>
|
|
<% end %>
|
|
|
|
<div class="row">
|
|
<div id="budget-investments" class="budget-investments-list small-12 medium-9 column">
|
|
|
|
<% if @current_filter == "unfeasible" %>
|
|
<div class="small-12 margin-bottom">
|
|
<h2><%= t("budgets.investments.index.unfeasible") %></h2>
|
|
<div class="callout primary margin">
|
|
<%= t("budgets.investments.index.unfeasible_text") %>
|
|
</div>
|
|
</div>
|
|
<% elsif @heading.present? %>
|
|
<div class="row">
|
|
<div class="small-12 column">
|
|
<%= render "view_mode" %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
|
|
<%= render Shared::AdvancedSearchComponent.new %>
|
|
|
|
<% if unfeasible_or_unselected_filter %>
|
|
<ul class="no-bullet submenu">
|
|
<li class="inline-block">
|
|
<%= link_to current_path_with_query_params(order: "random", page: 1),
|
|
class: "is-active" do %>
|
|
<h2><%= t("budgets.investments.index.orders.random") %></h2>
|
|
<% end %>
|
|
</li>
|
|
</ul>
|
|
<% else %>
|
|
<%= render("shared/order_links", i18n_namespace: "budgets.investments.index") %>
|
|
<% end %>
|
|
|
|
<% if investments_default_view? %>
|
|
|
|
<% @investments.each do |investment| %>
|
|
<%= render "/budgets/investments/investment",
|
|
investment: investment,
|
|
investment_ids: @investment_ids,
|
|
ballot: @ballot %>
|
|
<% end %>
|
|
<% else %>
|
|
|
|
<% @investments.each do |investment| %>
|
|
<%= render "/budgets/investments/investment_minimal",
|
|
investment: investment %>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<%= paginate @investments %>
|
|
</div>
|
|
|
|
<div class="small-12 medium-3 column">
|
|
<aside class="margin-bottom">
|
|
<div id="sidebar" class="budget-investments-sidebar">
|
|
<%= render "/budgets/investments/sidebar" %>
|
|
</div>
|
|
</aside>
|
|
</div>
|
|
|
|
</div>
|