Skip to content

Commit

Permalink
fix using multiple disable messages on category questions
Browse files Browse the repository at this point in the history
Provide a stopper per disable message, rather than per question
  • Loading branch information
struan committed Sep 18, 2020
1 parent 193ff9c commit 06581c4
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
10 changes: 6 additions & 4 deletions perllib/FixMyStreet/App/Controller/Report/New.pm
Original file line number Diff line number Diff line change
Expand Up @@ -332,12 +332,14 @@ sub disable_form_message : Private {
my %category;
foreach my $opt (@{$_->{values}}) {
if ($opt->{disable}) {
$category{message} = $opt->{disable_message} || $_->{datatype_description};
$category{code} = $_->{code};
push @{$category{answers}}, $opt->{key};
my $message = $opt->{disable_message} || $_->{datatype_description};
$category{$message} ||= {};
$category{$message}->{message} = $message;
$category{$message}->{code} = $_->{code};
push @{$category{$message}->{answers}}, $opt->{key};
}
}
push @{$out{questions}}, \%category if %category;
push @{$out{questions}}, $_ for values %category;
}
}

Expand Down
18 changes: 18 additions & 0 deletions t/app/controller/report_new_open311.t
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,14 @@ subtest "Category extras includes form disabling string" => sub {
$contact4->push_extra_fields({ datatype_description => 'Please please ring', description => 'Is it dangerous?', code => 'dangerous',
variable => 'true', order => '0', values => [ { name => 'Yes', key => 'yes', disable => 1 }, { name => 'No', key => 'no' } ]
});
$contact4->push_extra_fields({ datatype_description => 'Please ring different numbers', description => 'What sort of dangerous?', code => 'danger_type',
variable => 'true', order => '0', values => [
{ name => 'slightly', key => 'slightly', disable => 1, disable_message => 'Ring the slightly number' },
{ name => 'very', key => 'very', disable => 1, disable_message => 'Ring the very number' },
{ name => 'extremely', key => 'extremely', disable => 1, disable_message => 'Ring the very number' },
{ name => 'No', key => 'no' }
]
});
$contact4->update;
for (
{ url => '/report/new/ajax?' },
Expand All @@ -409,6 +417,16 @@ subtest "Category extras includes form disabling string" => sub {
code => 'dangerous',
answers => [ 'yes' ],
},
{
message => 'Ring the very number',
code => 'danger_type',
answers => [ 'very', 'extremely' ],
},
{
message => 'Ring the slightly number',
code => 'danger_type',
answers => [ 'slightly' ],
},
],
};
}
Expand Down

0 comments on commit 06581c4

Please sign in to comment.