diff --git a/app/views/case_workers/_injection_errors.html.haml b/app/views/case_workers/_injection_errors.html.haml
new file mode 100644
index 0000000000..61cb027ac4
--- /dev/null
+++ b/app/views/case_workers/_injection_errors.html.haml
@@ -0,0 +1,9 @@
+- if claim.injection_error.present? || claim.disk_evidence
+ %div.error-message-container
+ - if claim.injection_error
+ - claim.injection_error do |message|
+ %div.error-message
+ = message
+ - if claim.disk_evidence
+ %div.error-message
+ = t('.disk_evidence')
diff --git a/app/views/case_workers/admin/allocations/_re_allocation.html.haml b/app/views/case_workers/admin/allocations/_re_allocation.html.haml
index 54479f4e00..d06e0890e6 100644
--- a/app/views/case_workers/admin/allocations/_re_allocation.html.haml
+++ b/app/views/case_workers/admin/allocations/_re_allocation.html.haml
@@ -60,26 +60,19 @@
= govuk_table_tbody do
= collection_check_boxes :allocation, :claim_ids, @claims, :id, :case_number do |b|
- present(b.object) do |claim|
- = govuk_table_row(id: dom_id(claim), class: claim.injection_error ? 'error injection-error' : nil) do
+ = govuk_table_row(id: dom_id(claim)) do
= govuk_table_td('data-label': t('.select')) do
- .govuk-form-group.error-message-container
- .govuk-checkboxes.govuk-checkboxes--small{ 'data-module': 'govuk-checkboxes' }
- .govuk-checkboxes__item
- = b.check_box(class: 'govuk-checkboxes__input')
- = b.label(class: 'govuk-label govuk-checkboxes__label'){ t('.choose_label_html', case_number: claim.case_number) }
-
- - claim.injection_error do |message|
- .error-message
- = message
+ .govuk-checkboxes.govuk-checkboxes--small{ 'data-module': 'govuk-checkboxes' }
+ .govuk-checkboxes__item
+ = b.check_box(class: 'govuk-checkboxes__input')
+ = b.label(class: 'govuk-label govuk-checkboxes__label'){ t('.choose_label_html', case_number: claim.case_number) }
= govuk_table_td('data-label': t('.case_number')) do
%span.js-test-case-number
= govuk_link_to claim.case_number, case_workers_claim_path(claim), 'aria-label': t('.case_number_label', case_number: claim.case_number)
%span.unique-id-small
= claim.unique_id
- - if claim.disk_evidence == true
- %span.disk-evidence
- = t('.disk_evidence')
+ = render partial: 'case_workers/injection_errors', locals: { claim: claim }
= govuk_table_td('data-label': t('.court')) do
= claim.court.name
diff --git a/app/views/case_workers/claims/_claims_list.html.haml b/app/views/case_workers/claims/_claims_list.html.haml
index 0f29ecab4f..7c575635ea 100644
--- a/app/views/case_workers/claims/_claims_list.html.haml
+++ b/app/views/case_workers/claims/_claims_list.html.haml
@@ -51,23 +51,16 @@
= sortable 'last_submitted_at', t('.submission_date'), 'aria-label': t('.last_submitted_at_sort_label'), id: 'last_submitted_at_ms'
- present_collection(claims).each do |claim|
- = govuk_table_row(class: claim.injection_error ? 'error injection-error' : nil) do
+ = govuk_table_row do
= govuk_table_td('data-label': t('.type')) do
- .error-message-container
- = claim.pretty_type
- - claim.injection_error do |message|
- .error-message
- = message
+ = claim.pretty_type
= govuk_table_td('data-label': t('.case_number')) do
= govuk_link_to claim.case_number,
case_workers_claim_path(claim),
class: 'js-test-case-number-link',
'aria-label': "View #{claim.state.humanize} Claim, Case number: #{claim.case_number}"
-
- - if claim.disk_evidence == true
- %span.disk-evidence
- = t('.disk_evidence')
+ = render partial: 'case_workers/injection_errors', locals: { claim: claim }
= govuk_table_td('data-label': t('.advocate_litigator')) do
= claim.external_user.name
diff --git a/app/webpack/javascripts/modules/Modules.AllocationDataTable.js b/app/webpack/javascripts/modules/Modules.AllocationDataTable.js
index e5859997b7..2db8f4178e 100644
--- a/app/webpack/javascripts/modules/Modules.AllocationDataTable.js
+++ b/app/webpack/javascripts/modules/Modules.AllocationDataTable.js
@@ -62,22 +62,16 @@ moj.Modules.AllocationDataTable = {
$('td', row).addClass('govuk-table__cell')
- if (data.filter.injection_errored) {
- $(row).addClass('error injection-error')
- $('td', row).eq(0).wrapInner('
')
- $('td .error-message-container', row).eq(0).append('' + data.injection_errors + '
')
- } else if (data.filter.cav_warning) {
- $(row).addClass('injection-warning')
- $('td', row).eq(0).wrapInner('')
- $('td .warning-message-container', row).eq(0).append('Conference fees not injected
')
- } else if (data.filter.clar_fees_warning) {
- $(row).addClass('injection-warning')
- $('td', row).eq(0).wrapInner('')
- $('td .warning-message-container', row).eq(0).append('Paper heavy case or unused materials fees not injected
')
- } else if (data.filter.additional_prep_fee_warning) {
- $(row).addClass('injection-warning')
- $('td', row).eq(0).wrapInner('')
- $('td .warning-message-container', row).eq(0).append('Additional prep fee not injected
')
+ const showWarning = data.filter.injection_errored || data.filter.cav_warning || data.filter.clar_fees_warning || data.filter.additional_prep_fee_warning || data.filter.disk_evidence
+
+ if (showWarning) {
+ $('td', row).eq(1).append('')
+
+ if (data.filter.injection_errored) { $('td .error-message-container', row).append('' + data.injection_errors + '
') }
+ if (data.filter.cav_warning) { $('td .error-message-container', row).append('Conference fees not injected
') }
+ if (data.filter.clar_fees_warning) { $('td .error-message-container', row).append('Paper heavy case or unused materials fees not injected
') }
+ if (data.filter.additional_prep_fee_warning) { $('td .error-message-container', row).append('Additional prep fee not injected
') }
+ if (data.filter.disk_evidence) { $('td .error-message-container', row).append('Disk evidence
') }
}
return row
@@ -158,7 +152,7 @@ moj.Modules.AllocationDataTable = {
targets: 1,
data: null,
render: function (data, type, full) {
- return data.filter.disk_evidence ? '' + data.case_number + '
Disk evidence' : '' + data.case_number + ''
+ return '' + data.case_number + ''
}
}, {
diff --git a/app/webpack/stylesheets/_shame.scss b/app/webpack/stylesheets/_shame.scss
index 5c0c913d1d..6a766b3233 100644
--- a/app/webpack/stylesheets/_shame.scss
+++ b/app/webpack/stylesheets/_shame.scss
@@ -378,11 +378,6 @@ form {
margin-bottom: $govuk-gutter;
}
-.disk-evidence {
- display: block;
- color: $govuk-error-colour;
-}
-
.js-allocation-page #page-h1 {
margin-bottom: 0;
}
diff --git a/app/webpack/stylesheets/components/_table.scss b/app/webpack/stylesheets/components/_table.scss
index da03eb5d16..a892dabdaa 100644
--- a/app/webpack/stylesheets/components/_table.scss
+++ b/app/webpack/stylesheets/components/_table.scss
@@ -1,44 +1,22 @@
// stylelint-disable max-nesting-depth, selector-class-pattern, selector-no-qualifying-type
tr {
- &.error.injection-error {
- border-left: 5px solid $govuk-error-colour;
- color: inherit;
+ td {
+ padding-top: $govuk-gutter;
- td {
- padding-top: $govuk-gutter;
-
- .error-message-container {
- position: relative;
- padding-left: $gutter-half;
- }
+ .error-message-container {
+ position: relative;
+ width: 200px;
+ border-left: 3px solid $govuk-error-colour;
+ @include govuk-responsive-margin(2, "top");
+ @include govuk-responsive-margin(2, "bottom");
.error-message {
- position: absolute;
- top: -$govuk-gutter;
- width: 320px;
+ top: $govuk-gutter;
color: $govuk-error-colour;
text-align: left;
- }
- }
- }
-
- &.injection-warning {
- border-left: 5px solid govuk-colour("orange");
-
- td {
- padding-top: $govuk-gutter;
-
- .warning-message-container {
- position: relative;
- }
-
- .warning-message {
- position: absolute;
- top: -$govuk-gutter;
- width: 500px;
- color: govuk-colour("orange");
- text-align: left;
+ @include govuk-responsive-margin(1, "top");
+ @include govuk-responsive-margin(1, "left");
}
}
}
diff --git a/config/locales/en.yml b/config/locales/en.yml
index adadd0e7d5..2084a6f077 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -2598,7 +2598,6 @@ en:
re_allocate: Re-allocate
select_all: Select all
allocated_to: Allocated to
- disk_evidence: Disk evidence
no_claims_allocated: There is no claim available for allocation
number_of_claims: 'Number of claims: %{claim_count}'
choose_label_html: Select case %{case_number}
@@ -2662,7 +2661,6 @@ en:
case_type: Case type
case_type_sort_label: 'Sort by: Case type'
defendants: Defendants
- disk_evidence: Disk evidence
last_submitted_at_sort_label: 'Sort by: Last submitted at date'
messages: Messages
none: None
@@ -2717,6 +2715,8 @@ en:
start_date: Effective start date
end_date: Effective end date
contract_number: Contract Number
+ injection_errors:
+ disk_evidence: Disk evidence
api:
v1:
common_params:
diff --git a/spec/javascripts/Modules.AllocationDataTable_spec.js b/spec/javascripts/Modules.AllocationDataTable_spec.js
index be6f3427a8..e8562290e9 100644
--- a/spec/javascripts/Modules.AllocationDataTable_spec.js
+++ b/spec/javascripts/Modules.AllocationDataTable_spec.js
@@ -48,9 +48,9 @@ describe('Modules.AllocationDataTable.js', function () {
])
})
- it('...should have a `createdRow` callback defined', function () {
+ it('...should have a `createdRow` callback defined for injection errors', function () {
expect(options.createdRow).toBeDefined()
- const row = $(' |
')
+ const row = $(' | |
')
const data = {
injection_errors: 'I am an error',
filter: {
@@ -58,43 +58,57 @@ describe('Modules.AllocationDataTable.js', function () {
}
}
const output = options.createdRow(row, data)
- expect(output[0].outerHTML).toEqual(' |
')
+ expect(output[0].outerHTML).toEqual(' | |
')
})
it('...should have a `createdRow` callback defined for CAV warnings', function () {
expect(options.createdRow).toBeDefined()
- const row = $(' |
')
+ const row = $(' | |
')
const data = {
filter: {
cav_warning: 1
}
}
const output = options.createdRow(row, data)
- expect(output[0].outerHTML).toEqual('Conference fees not injected |
')
+ expect(output[0].outerHTML).toEqual(' | Conference fees not injected |
')
})
it('...should have a `createdRow` callback defined for CLAR fee warnings', function () {
expect(options.createdRow).toBeDefined()
- const row = $(' |
')
+ const row = $(' | |
')
const data = {
filter: {
clar_fees_warning: 1
}
}
const output = options.createdRow(row, data)
- expect(output[0].outerHTML).toEqual('Paper heavy case or unused materials fees not injected |
')
+ expect(output[0].outerHTML).toEqual(' | Paper heavy case or unused materials fees not injected |
')
})
it('...should have a `createdRow` callback defined for Additional Prep fee warnings', function () {
expect(options.createdRow).toBeDefined()
- const row = $(' |
')
+ const row = $(' | |
')
const data = {
filter: {
additional_prep_fee_warning: 1
}
}
const output = options.createdRow(row, data)
- expect(output[0].outerHTML).toEqual('Additional prep fee not injected |
')
+ expect(output[0].outerHTML).toEqual(' | Additional prep fee not injected |
')
+ })
+
+ it('...should have a `createdRow` callback defined for multiple fee warnings', function () {
+ expect(options.createdRow).toBeDefined()
+ const row = $(' | |
')
+ const data = {
+ filter: {
+ cav_warning: 1,
+ clar_fees_warning: 1,
+ additional_prep_fee_warning: 1
+ }
+ }
+ const output = options.createdRow(row, data)
+ expect(output[0].outerHTML).toEqual(' | Conference fees not injected Paper heavy case or unused materials fees not injected Additional prep fee not injected |
')
})
it('...should have `processing`', function () {