diff --git a/app/controllers/case_logs_controller.rb b/app/controllers/case_logs_controller.rb
index 8d6f75c5c..1b016473c 100644
--- a/app/controllers/case_logs_controller.rb
+++ b/app/controllers/case_logs_controller.rb
@@ -5,8 +5,7 @@ class CaseLogsController < ApplicationController
before_action :find_resource, except: %i[create index edit]
def index
- @completed_case_logs = current_user.completed_case_logs
- @in_progress_case_logs = current_user.not_completed_case_logs
+ @case_logs = current_user.case_logs
end
def create
diff --git a/app/views/case_logs/_log_list.html.erb b/app/views/case_logs/_log_list.html.erb
index a509a68e5..ab9fe9a0a 100644
--- a/app/views/case_logs/_log_list.html.erb
+++ b/app/views/case_logs/_log_list.html.erb
@@ -1,29 +1,46 @@
-
-
-
- <%= content_for(:title) %>
-
+
+ <%= content_for(:title) %>
+
- <%= govuk_button_to "Create new log", case_logs_path %>
-
- <% if @in_progress_case_logs.present? %>
- <%= render partial: "log_list", locals: { case_logs: @in_progress_case_logs, title: "Logs you need to complete", date_title: "Last Changed" } %>
- <% end %>
-
- <% if @completed_case_logs.present? %>
- <%= render partial: "log_list", locals: { case_logs: @completed_case_logs, title: "Logs you’ve submitted", date_title: "Date Submitted" } %>
- <% end %>
-
-
See all completed logs (<%= @completed_case_logs.count %>)
-
+
+ <%= govuk_button_to "Create a new lettings log", case_logs_path %>
+ <%= govuk_link_to "Upload logs", bulk_upload_case_logs_path %>
+
+<% if @case_logs.present? %>
+ <%= render partial: "log_list", locals: { case_logs: @case_logs, title: "Logs" } %>
+<% end %>
diff --git a/app/webpacker/styles/_figure.scss b/app/webpacker/styles/_figure.scss
new file mode 100644
index 000000000..f1a895dfd
--- /dev/null
+++ b/app/webpacker/styles/_figure.scss
@@ -0,0 +1,10 @@
+.app-figure {
+ margin: 0;
+}
+
+.app-figure__caption {
+ @include govuk-font($size: 19);
+ border-top: 1px solid $govuk-border-colour;
+ margin-bottom: govuk-spacing(6);
+ padding-top: govuk-spacing(4);
+}
diff --git a/app/webpacker/styles/_table-group.scss b/app/webpacker/styles/_table-group.scss
new file mode 100644
index 000000000..71905dfec
--- /dev/null
+++ b/app/webpacker/styles/_table-group.scss
@@ -0,0 +1,44 @@
+.app-table-group {
+ overflow-x: auto;
+ overflow-y: hidden;
+ margin: govuk-spacing(-3) govuk-spacing(-3) govuk-spacing(3);
+ padding: 0 govuk-spacing(3);
+ scrollbar-color: $govuk-text-colour govuk-colour("light-grey");
+
+ .govuk-table {
+ margin-bottom: -1px;
+ }
+
+ .govuk-table__header,
+ .govuk-table__cell {
+ white-space: nowrap;
+ }
+
+ &::-webkit-scrollbar {
+ height: govuk-spacing(1);
+ width: govuk-spacing(1);
+ }
+
+ &::-webkit-scrollbar-thumb {
+ background: $govuk-text-colour;
+ }
+
+ &::-webkit-scrollbar-track {
+ background: govuk-colour("light-grey");
+ }
+}
+
+.app-table-group:focus {
+ box-shadow: 0 0 0 #{$govuk-focus-width * 2} $govuk-focus-colour;
+ outline: $govuk-focus-width solid govuk-colour("black");
+}
+
+.app-table-group:focus:not(:focus-visible) {
+ box-shadow: none;
+ outline: none;
+}
+
+.app-table-group:focus-visible {
+ box-shadow: 0 0 0 #{$govuk-focus-width * 2} $govuk-focus-colour;
+ outline: $govuk-focus-width solid govuk-colour("black");
+}
diff --git a/app/webpacker/styles/application.scss b/app/webpacker/styles/application.scss
index 5c55f4889..6d5924b28 100644
--- a/app/webpacker/styles/application.scss
+++ b/app/webpacker/styles/application.scss
@@ -13,14 +13,29 @@ $govuk-global-styles: true;
@import "~govuk-frontend/govuk/all";
@import "accessible-autocomplete";
+@import "figure";
@import "input";
@import "related-navigation";
@import "section-skip-link";
@import "tab-navigation";
+@import "table-group";
@import "task-list";
@import "template";
-// Overrides
+// App utilities
.app-\!-colour-muted {
color: $govuk-secondary-text-colour !important;
}
+
+.app-\!-font-tabular {
+ @include govuk-font($size: false, $tabular: true);
+}
+
+// Overrides
+.govuk-button-group {
+ align-items: center;
+}
+
+.govuk-tag {
+ white-space: nowrap;
+}
diff --git a/spec/features/form/form_navigation_spec.rb b/spec/features/form/form_navigation_spec.rb
index 93da01b0f..fa7a0f5cf 100644
--- a/spec/features/form/form_navigation_spec.rb
+++ b/spec/features/form/form_navigation_spec.rb
@@ -26,10 +26,10 @@ RSpec.describe "Form Navigation" do
sign_in user
end
- describe "Create new log" do
+ describe "Create a new lettings log" do
it "redirects to the task list for the new log" do
visit("/logs")
- click_button("Create new log")
+ click_button("Create a new lettings log")
id = CaseLog.order(created_at: :desc).first.id
expect(page).to have_content("Log #{id}")
end
diff --git a/spec/views/case_log_index_view_spec.rb b/spec/views/case_log_index_view_spec.rb
index 947004a37..d7bcadc18 100644
--- a/spec/views/case_log_index_view_spec.rb
+++ b/spec/views/case_log_index_view_spec.rb
@@ -2,51 +2,18 @@ require "rails_helper"
RSpec.describe "case_logs/index" do
let(:in_progress_log) { FactoryBot.create(:case_log, :in_progress) }
- let(:completed_log) { FactoryBot.create(:case_log, :completed) }
- context "with an in progress log list" do
+ context "with a log list" do
before do
- assign(:in_progress_case_logs, [in_progress_log])
- assign(:completed_case_logs, [])
+ assign(:case_logs, [in_progress_log])
render
end
- it "renders a table for in progress logs only" do
+ it "renders a table for all logs" do
expect(rendered).to match(/
/)
- expect(rendered).to match(/Logs you need to complete/)
- expect(rendered).not_to match(/Logs you’ve submitted/)
- expect(rendered).to match(in_progress_log.tenant_code)
- expect(rendered).to match(in_progress_log.property_postcode)
- end
- end
-
- context "with a completed log list" do
- before do
- assign(:in_progress_case_logs, [])
- assign(:completed_case_logs, [completed_log])
- render
- end
-
- it "renders a table for in progress logs only" do
- expect(rendered).to match(//)
- expect(rendered).to match(/Logs you’ve submitted/)
- expect(rendered).not_to match(/Logs you need to complete/)
- expect(rendered).to match(completed_log.tenant_code)
- expect(rendered).to match(completed_log.property_postcode)
- end
- end
-
- context "with a completed log list and an in_progress log list" do
- before do
- assign(:in_progress_case_logs, [in_progress_log])
- assign(:completed_case_logs, [completed_log])
- render
- end
-
- it "renders two tables, one for each status" do
- expect(rendered).to match(//)
- expect(rendered).to match(/Logs you’ve submitted/)
- expect(rendered).to match(/Logs you need to complete/)
+ expect(rendered).to match(/logs/)
+ expect(rendered).to match(in_progress_log.created_at.to_formatted_s(:govuk_date))
+ expect(rendered).to match(in_progress_log.status.humanize)
end
end
end