Bugzilla – Attachment 170149 Details for
Bug 34346
Adding duplicate tag to a framework should give user readable message
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 34346: Show error message instead of 500 for duplicate tags
Bug-34346-Show-error-message-instead-of-500-for-du.patch (text/plain), 5.79 KB, created by
David Cook
on 2024-08-08 01:32:22 UTC
(
hide
)
Description:
Bug 34346: Show error message instead of 500 for duplicate tags
Filename:
MIME Type:
Creator:
David Cook
Created:
2024-08-08 01:32:22 UTC
Size:
5.79 KB
patch
obsolete
>From c10a0a89829c772895774da1998798fc4878dcc0 Mon Sep 17 00:00:00 2001 >From: David Cook <dcook@prosentient.com.au> >Date: Thu, 8 Aug 2024 01:19:46 +0000 >Subject: [PATCH] Bug 34346: Show error message instead of 500 for duplicate > tags > >This change shows a user-friendly error message instead of a 500 error >if adding a duplicate MARC tag to a MARC bibliographic framework. > >Test plan: >0. Add patch and koha-plack --reload kohadev >1. Go to >http://localhost:8081/cgi-bin/koha/admin/marctagstructure.pl?searchfield=264&frameworkcode= >2. Click "New tag" >3. Enter "264" in "Tag:" field >4. Click "Save changes" >5. See error message on screen (instead of 500 error) >--- > admin/marctagstructure.pl | 60 +++++++++++++------ > .../prog/en/includes/blocking_errors.inc | 2 + > 2 files changed, 43 insertions(+), 19 deletions(-) > >diff --git a/admin/marctagstructure.pl b/admin/marctagstructure.pl >index 96eeedfef2..45b55e9589 100755 >--- a/admin/marctagstructure.pl >+++ b/admin/marctagstructure.pl >@@ -28,6 +28,7 @@ use C4::Context; > use Koha::Caches; > use Koha::AuthorisedValues; > use Koha::BiblioFrameworks; >+use Koha::Database; > > # retrieve parameters > my $input = CGI->new; >@@ -120,6 +121,7 @@ if ($op eq 'add_form') { > my $authorised_value = $input->param('authorised_value'); > my $ind1_defaultvalue = $input->param('ind1_defaultvalue'); > my $ind2_defaultvalue = $input->param('ind2_defaultvalue'); >+ my $error; > if ($input->param('modif')) { > $sth = $dbh->prepare( > "UPDATE marc_tag_structure SET liblibrarian=? ,libopac=? ,repeatable=? ,mandatory=? ,important=? ,authorised_value=?, ind1_defaultvalue=?, ind2_defaultvalue=? WHERE frameworkcode=? AND tagfield=?" >@@ -136,26 +138,40 @@ if ($op eq 'add_form') { > $tagfield > ); > } else { >- $sth = $dbh->prepare( >- "INSERT INTO marc_tag_structure (tagfield,liblibrarian,libopac,repeatable,mandatory,important,authorised_value,ind1_defaultvalue,ind2_defaultvalue,frameworkcode) values (?,?,?,?,?,?,?,?,?,?)" >- ); >- $sth->execute($tagfield, >- $liblibrarian, >- $libopac, >- $repeatable, >- $mandatory, >- $important, >- $authorised_value, >- $ind1_defaultvalue, >- $ind2_defaultvalue, >- $frameworkcode >- ); >+ my $schema = Koha::Database->new()->schema(); >+ my $rs = $schema->resultset('MarcTagStructure'); >+ my $field = $rs->find({ tagfield => $tagfield, frameworkcode => $frameworkcode }); >+ if (!$field){ >+ $sth = $dbh->prepare( >+ "INSERT INTO marc_tag_structure (tagfield,liblibrarian,libopac,repeatable,mandatory,important,authorised_value,ind1_defaultvalue,ind2_defaultvalue,frameworkcode) values (?,?,?,?,?,?,?,?,?,?)" >+ ); >+ $sth->execute($tagfield, >+ $liblibrarian, >+ $libopac, >+ $repeatable, >+ $mandatory, >+ $important, >+ $authorised_value, >+ $ind1_defaultvalue, >+ $ind2_defaultvalue, >+ $frameworkcode >+ ); >+ } >+ else { >+ $error = 'duplicate_tagfield'; >+ } > } >- $cache->clear_from_cache("MarcStructure-0-$frameworkcode"); >- $cache->clear_from_cache("MarcStructure-1-$frameworkcode"); >- $cache->clear_from_cache("MarcSubfieldStructure-$frameworkcode"); >- $cache->clear_from_cache("MarcCodedFields-$frameworkcode"); >- print $input->redirect("/cgi-bin/koha/admin/marctagstructure.pl?searchfield=$tagfield&frameworkcode=$frameworkcode"); >+ if (!$error){ >+ $cache->clear_from_cache("MarcStructure-0-$frameworkcode"); >+ $cache->clear_from_cache("MarcStructure-1-$frameworkcode"); >+ $cache->clear_from_cache("MarcSubfieldStructure-$frameworkcode"); >+ $cache->clear_from_cache("MarcCodedFields-$frameworkcode"); >+ } >+ my $redirect_url = "/cgi-bin/koha/admin/marctagstructure.pl?searchfield=$tagfield&frameworkcode=$frameworkcode"; >+ if ($error){ >+ $redirect_url .= "&error=$error"; >+ } >+ print $input->redirect($redirect_url); > exit; > # END $OP eq ADD_VALIDATE > ################## DELETE_CONFIRM ################################## >@@ -200,6 +216,12 @@ if ($op eq 'add_form') { > > ################## DEFAULT ################################## > } else { # DEFAULT >+ my $error_code = $input->param('error'); >+ if ($error_code){ >+ if ($error_code eq 'duplicate_tagfield'){ >+ $template->param('blocking_error' => $error_code); >+ } >+ } > # here, $op can be unset or set to "cud-framework_create_confirm". > if ($searchfield ne '') { > $template->param(searchfield => $searchfield); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/blocking_errors.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/blocking_errors.inc >index a4fd22249e..de9ea82e42 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/blocking_errors.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/blocking_errors.inc >@@ -25,6 +25,8 @@ > <div class="dialog message">Necessary Elasticsearch packages are not installed on your server. Please contact your server admin if you wish to configure Elasticsearch</div> > [% CASE 'insufficient_permission' %] > <div class="dialog message">You do not have sufficient permission to continue.</div> >+ [% CASE 'duplicate_tagfield' %] >+ <div class="dialog message">MARC field not added to MARC bibliographic framework. MARC tag already exists in framework field.</div> > [% CASE %] > <div class="dialog alert">[% blocking_error | html %]</div> > [% END %] >-- >2.39.2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 34346
:
170149
|
170150
|
170181
|
170182
|
170429