diff options
author | Struan Donald <struan@exo.org.uk> | 2017-07-27 15:47:49 +0100 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2017-07-27 15:47:49 +0100 |
commit | 256833eca11be4450312a5f6626503669b4b16f7 (patch) | |
tree | 9296c6735664d1716898d5a266e36005e0c0b8b2 | |
parent | 6b764a6963bed1b0366195e86d0f7ca7bcba5b36 (diff) |
do not replace deleted text with [...] when moderating
Replacing deleted text with [...] when moderating reports and comments
leads to very odd looking reports when correcting minor typos so just
leave the text as deleted.
Fixes #1774
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Moderate.pm | 29 | ||||
-rw-r--r-- | t/app/controller/moderate.t | 12 |
2 files changed, 9 insertions, 32 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Moderate.pm b/perllib/FixMyStreet/App/Controller/Moderate.pm index 74f2e6b31..e2ab16b6b 100644 --- a/perllib/FixMyStreet/App/Controller/Moderate.pm +++ b/perllib/FixMyStreet/App/Controller/Moderate.pm @@ -146,7 +146,7 @@ sub report_moderate_title : Private { my $title = $c->get_param('problem_revert_title') ? $original_title - : $self->diff($original_title, $c->get_param('problem_title')); + : $c->get_param('problem_title'); if ($title ne $old_title) { $original->insert unless $original->in_storage; @@ -167,7 +167,7 @@ sub report_moderate_detail : Private { my $original_detail = $original->detail; my $detail = $c->get_param('problem_revert_detail') ? $original_detail - : $self->diff($original_detail, $c->get_param('problem_detail')); + : $c->get_param('problem_detail'); if ($detail ne $old_detail) { $original->insert unless $original->in_storage; @@ -285,7 +285,7 @@ sub update_moderate_detail : Private { my $original_detail = $original->detail; my $detail = $c->get_param('update_revert_detail') ? $original_detail - : $self->diff($original_detail, $c->get_param('update_detail')); + : $c->get_param('update_detail'); if ($detail ne $old_detail) { $original->insert unless $original->in_storage; @@ -340,29 +340,6 @@ sub return_text : Private { $c->res->body( $text // '' ); } -sub diff { - my ($self, $old, $new) = @_; - - $new =~s/\[\.{3}\]//g; - - my $diff = Algorithm::Diff->new( [ split //, $old ], [ split //, $new ] ); - my $string; - while ($diff->Next) { - my $d = $diff->Diff; - if ($d & 1) { - my $deleted = join '', $diff->Items(1); - unless ($deleted =~/^\s*$/) { - $string .= ' ' if $deleted =~/^ /; - $string .= '[...]'; - $string .= ' ' if $deleted =~/ $/; - } - } - $string .= join '', $diff->Items(2); - } - return $string; -} - - __PACKAGE__->meta->make_immutable; 1; diff --git a/t/app/controller/moderate.t b/t/app/controller/moderate.t index 9ba1ba3df..c3c77866b 100644 --- a/t/app/controller/moderate.t +++ b/t/app/controller/moderate.t @@ -96,8 +96,8 @@ subtest 'Problem moderation' => sub { $mech->content_like(qr/Moderated by Bromley Council/); $report->discard_changes; - is $report->title, 'Good [...] good'; - is $report->detail, 'Good [...] good [...]improved'; + is $report->title, 'Good good'; + is $report->detail, 'Good good improved'; }; subtest 'Revert title and text' => sub { @@ -191,8 +191,8 @@ subtest 'Problem 2' => sub { $mech->base_like( qr{\Q$REPORT2_URL\E} ); $report2->discard_changes; - is $report2->title, 'Good [...] good'; - is $report2->detail, 'Good [...] good [...]improved'; + is $report2->title, 'Good good'; + is $report2->detail, 'Good good improved'; $mech->submit_form_ok({ with_fields => { %problem_prepopulated, @@ -236,7 +236,7 @@ subtest 'updates' => sub { $mech->base_like( qr{\Q$REPORT_URL\E} ); $update->discard_changes; - is $update->text, 'update good good [...] good', + is $update->text, 'update good good good', }; subtest 'Revert text' => sub { @@ -320,7 +320,7 @@ subtest 'Update 2' => sub { }}) or die $mech->content; $update2->discard_changes; - is $update2->text, 'update good good [...] good', + is $update2->text, 'update good good good', }; subtest 'Now stop being a staff user' => sub { |