diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index b3982623a..3b1332b28 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -1,11 +1,20 @@
module ApplicationHelper
include Pagy::Frontend
- def browser_title(title, *resources)
+ def browser_title(title, pagy, *resources)
if resources.any? { |r| r.present? && r.errors.present? }
"Error: #{[title, t('service_name'), 'GOV.UK'].select(&:present?).join(' - ')}"
else
- [title, t("service_name"), "GOV.UK"].select(&:present?).join(" - ")
+ [paginated_title(title, pagy), t("service_name"), "GOV.UK"].select(&:present?).join(" - ")
end
end
+
+private
+
+ def paginated_title(title, pagy)
+ return unless title
+ return title unless pagy && pagy.pages > 1
+
+ title + " (page #{pagy.page} of #{pagy.pages})"
+ end
end
diff --git a/app/views/case_logs/index.html.erb b/app/views/case_logs/index.html.erb
index f9d4e3766..b1d40c173 100644
--- a/app/views/case_logs/index.html.erb
+++ b/app/views/case_logs/index.html.erb
@@ -1,7 +1,8 @@
-<% title = @pagy.pages > 1 ? "Logs (page #{@pagy.page} of #{@pagy.pages})" : "Logs" %>
-<% content_for :title, title %>
+<% content_for :title, "Logs" %>
-
Logs
+
+ <%= content_for(:title) %>
+
<%= govuk_button_to "Create a new lettings log", case_logs_path %>
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index f47c55cac..66ba7ab59 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -1,7 +1,7 @@
-
<%= browser_title(yield(:title), @admin_user, @user, @organisation, @case_log, @resource) %>
+ <%= browser_title(yield(:title), @pagy, @admin_user, @user, @organisation, @case_log, @resource) %>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= tag :meta, name: 'viewport', content: 'width=device-width, initial-scale=1' %>
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 3815474ad..b5cde06ce 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -5,16 +5,33 @@ RSpec.describe ApplicationHelper do
let(:form) { form_handler.get_form("test_form") }
let(:subsection) { form.get_subsection("household_characteristics") }
let(:case_log) { FactoryBot.build(:case_log, :in_progress) }
+ let(:pagy) { nil }
describe "browser_title" do
- it "returns correct browser title when title is given" do
- expect(browser_title("title"))
- .to eq("title - #{t('service_name')} - GOV.UK")
+ context "with no pagination" do
+ it "returns correct browser title when title is given" do
+ expect(browser_title("title", pagy))
+ .to eq("title - #{t('service_name')} - GOV.UK")
+ end
+
+ it "returns correct browser title when title is not given" do
+ expect(browser_title(nil, pagy))
+ .to eq("#{t('service_name')} - GOV.UK")
+ end
end
- it "returns correct browser title when title is not given" do
- expect(browser_title(nil))
- .to eq("#{t('service_name')} - GOV.UK")
+ context "with pagination" do
+ let(:pagy) { OpenStruct.new(page: 1, pages: 2) }
+
+ it "returns correct browser title when title is given" do
+ expect(browser_title("title", pagy))
+ .to eq("title (page 1 of 2) - #{t('service_name')} - GOV.UK")
+ end
+
+ it "returns correct browser title when title is not given" do
+ expect(browser_title(nil, pagy))
+ .to eq("#{t('service_name')} - GOV.UK")
+ end
end
end
end