From f8bac19351fad964b08e4047f33f7b9b8c775e58 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Fri, 1 Sep 2017 14:39:25 +0000 Subject: [PATCH] Bug 17380: [QA Follow-up] Report error to user instead of throwing exception Internal server errors are good, user feedback is better. Signed-off-by: Marcel de Rooy Tiny change: removed the obsolete 'use Koha::Exceptions'. Signed-off-by: Jonathan Druart (cherry picked from commit 3d07449358010392b111a674c3606cdfe2cbe47e) Signed-off-by: Fridolin Somers --- authorities/merge.pl | 20 +++++++++++++++---- .../prog/en/modules/authorities/merge.tt | 2 ++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/authorities/merge.pl b/authorities/merge.pl index b6a7b279c7..9f725415a5 100755 --- a/authorities/merge.pl +++ b/authorities/merge.pl @@ -27,7 +27,6 @@ use C4::Koha; use C4::Biblio; use Koha::Authority::Types; -use Koha::Exceptions; use Koha::MetadataRecord::Authority; my $input = new CGI; @@ -108,7 +107,10 @@ else { push @errors, { code => 'DESTRUCTIVE_MERGE' }; } else { my $recordObj1 = Koha::MetadataRecord::Authority->get_from_authid($authid[0]); - Koha::Exceptions::ObjectNotFound->throw( "No authority record found for authid $authid[0]\n" ) if !$recordObj1; + if (!$recordObj1) { + push @errors, { code => "MISSING_RECORD", value => $authid[0] }; + } + my $recordObj2; if (defined $mergereference && $mergereference eq 'breeding') { @@ -116,9 +118,19 @@ else { } else { $recordObj2 = Koha::MetadataRecord::Authority->get_from_authid($authid[1]); } - Koha::Exceptions::ObjectNotFound->throw( "No authority record found for authid $authid[1]\n" ) if !$recordObj2; + if (!$recordObj2) { + push @errors, { code => "MISSING_RECORD", value => $authid[1] }; + } + + unless ( $recordObj1 && $recordObj2 ) { + if (@errors) { + $template->param( errors => \@errors ); + } + output_html_with_http_headers $input, $cookie, $template->output; + exit; + } - if ($mergereference) { + if ($mergereference ) { my $framework; if ( $recordObj1->authtypecode ne $recordObj2->authtypecode && $mergereference ne 'breeding' ) { diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt index 493bcbd3e7..003e6736c3 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt @@ -67,6 +67,8 @@ function changeFramework(fw) { The Default framework cannot be used, or the framework does not exist. Please select another framework for merging. [% ELSIF error.code == 'EMPTY_MARC' %] Sorry, but we did not find any MARC tags in the reference record. + [% ELSIF error.code == 'MISSING_RECORD' %] + Sorry, but we did not find a record for number: [% error.value %]. [% ELSE %] [% error %] [% END %] -- 2.39.5