Specify group in the "No headings" message

Since the message might appear several times on the same page, it's
useful to give a bit more context. Besides, usability tests show that
when there's a group with no headings, there's no clear indication on
the page that the group is actually a group and not a heading.

We're also adding some emphasis to the group name in the "Showing
headings" message, to be consistent with the emphasis we've
added the the group name in the "No headings" message.
This commit is contained in:
Javi Martín
2021-09-10 01:44:09 +02:00
parent d702fbbfc7
commit 4d0638d5df
9 changed files with 32 additions and 14 deletions

View File

@@ -28,6 +28,6 @@
</table>
<% else %>
<div class="callout primary clear">
<%= t("admin.budget_headings.no_headings") %>
<%= sanitize(t("admin.budget_headings.no_headings", group: group.name)) %>
</div>
<% end %>

View File

@@ -8,10 +8,10 @@ class Admin::BudgetHeadings::HeadingsComponent < ApplicationComponent
private
def group
@group ||= headings.first.group
@group ||= headings.proxy_association.owner
end
def budget
@budget ||= headings.first.budget
@budget ||= group.budget
end
end

View File

@@ -1,12 +1,12 @@
<div class="budget-group-switcher">
<% if other_groups.one? %>
<p>
<%= t("admin.budget_headings.group_switcher.currently_showing", group: group.name) %>
<%= currently_showing_text %>
<%= link_to t("admin.budget_headings.group_switcher.the_other_group", group: other_groups.first.name),
headings_path(other_groups.first) %>
</p>
<% else %>
<p><%= t("admin.budget_headings.group_switcher.currently_showing", group: group.name) %></p>
<p><%= currently_showing_text %></p>
<ul class="dropdown menu" data-dropdown-menu data-disable-hover="true" data-click-open="true">
<li class="has-submenu">
<button type="button"><%= t("admin.budget_headings.group_switcher.different_group") %></button>

View File

@@ -22,4 +22,8 @@ class Admin::BudgetsWizard::Headings::GroupSwitcherComponent < ApplicationCompon
def headings_path(group)
admin_budgets_wizard_budget_group_headings_path(budget, group)
end
def currently_showing_text
sanitize(t("admin.budget_headings.group_switcher.currently_showing", group: group.name))
end
end

View File

@@ -185,7 +185,7 @@ en:
index:
new_button: "Add new group"
budget_headings:
no_headings: "There are no headings."
no_headings: "There are no headings in the <strong>%{group}</strong> group."
create:
notice: "Heading created successfully!"
update:
@@ -202,7 +202,7 @@ en:
edit: "Edit heading"
submit: "Save heading"
group_switcher:
currently_showing: "Showing headings from the %{group} group."
currently_showing: "Showing headings from the <strong>%{group}</strong> group."
different_group: "Manage headings from a different group"
the_other_group: "Manage headings from the %{group} group."
index:

View File

@@ -185,7 +185,7 @@ es:
index:
new_button: "Añadir un grupo nuevo"
budget_headings:
no_headings: "No hay partidas."
no_headings: "El grupo <strong>%{group}</strong> no tiene ninguna partida."
create:
notice: "¡Partida presupuestaria creada con éxito!"
update:
@@ -202,7 +202,7 @@ es:
edit: "Editar partida"
submit: "Guardar partida"
group_switcher:
currently_showing: "Mostrando las partidas del grupo: %{group}."
currently_showing: "Mostrando las partidas del grupo <strong>%{group}</strong>."
different_group: "Ir a partidas de otro grupo"
the_other_group: "Ir a partidas del grupo %{group}."
index:

View File

@@ -0,0 +1,12 @@
require "rails_helper"
describe Admin::BudgetHeadings::HeadingsComponent do
it "includes group name in the message when there are no headings" do
group = create(:budget_group, name: "Whole planet")
render_inline Admin::BudgetHeadings::HeadingsComponent.new(group.headings)
expect(page.text.strip).to eq "There are no headings in the Whole planet group."
expect(page).to have_css "strong", exact_text: "Whole planet"
end
end

View File

@@ -19,10 +19,12 @@ describe "Admin budget headings", :admin do
context "List of headings in the budget page" do
scenario "Displaying no headings for group" do
group.update!(name: "Universities")
visit admin_budget_path(budget)
within "section", text: "Groups and headings" do
expect(page).to have_content "There are no headings."
expect(page).to have_content "There are no headings in the Universities group."
end
end

View File

@@ -62,7 +62,7 @@ describe "Budgets creation wizard", :admin do
click_link "Continue to headings"
expect(page).to have_content "Showing headings from the All city group"
expect(page).to have_content "There are no headings."
expect(page).to have_content "There are no headings in the All city group."
click_button "Add new heading"
fill_in "Heading name", with: "All city"
@@ -71,10 +71,10 @@ describe "Budgets creation wizard", :admin do
expect(page).to have_content "Heading created successfully!"
within_table("Headings in All city") { expect(page).to have_content "All city" }
expect(page).not_to have_content "There are no headings."
expect(page).not_to have_content "There are no headings"
click_link "Manage headings from the Districts group."
expect(page).to have_content "There are no headings."
expect(page).to have_content "There are no headings in the Districts group."
click_button "Add new heading"
fill_in "Heading name", with: "North"
@@ -83,7 +83,7 @@ describe "Budgets creation wizard", :admin do
expect(page).to have_content "Heading created successfully!"
within_table("Headings in Districts") { expect(page).to have_content "North" }
expect(page).not_to have_content "There are no headings."
expect(page).not_to have_content "There are no headings"
click_button "Add new heading"
fill_in "Heading name", with: "South"