Bugzilla – Attachment 149635 Details for
Bug 32418
CRASH: Can't call method "unblessed" on an undefined value at cataloguing/additem.pl
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 32418: Can't call method 'unblessed' on an undefined value at cataloguing/additem.pl
Bug-32418-Cant-call-method-unblessed-on-an-undefin.patch (text/plain), 4.84 KB, created by
Jonathan Druart
on 2023-04-14 06:24:32 UTC
(
hide
)
Description:
Bug 32418: Can't call method 'unblessed' on an undefined value at cataloguing/additem.pl
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2023-04-14 06:24:32 UTC
Size:
4.84 KB
patch
obsolete
>From d8ff10d547e9a63d625750d77346bf28d2b2a15a Mon Sep 17 00:00:00 2001 >From: Paul Derscheid <paul.derscheid@lmscloud.de> >Date: Mon, 20 Feb 2023 11:06:32 +0100 >Subject: [PATCH] Bug 32418: Can't call method 'unblessed' on an undefined > value at cataloguing/additem.pl > >Check whether the current op is edititem or dupeitem and if so check >whether the itemnumber supplied as a query param actually exists. > >If it doesn't, redirect to the additem op and hide all UI elements except >for a dialog that gives options to add a new item to the record or to >view the records holdings. > >This behaviour was adapted from the addbiblio view, as suggested by >Fridolin. > >To test: >1. Go to any record >2. Hit the edit button on an item in the holdings table >3. Modify the URL so that the query param for the itemnumber is either > 3.1 empty: /cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=384&itemnumber= > 3.2 an itemnumber that doesn't exist: > /cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=384&itemnumber=9999999999 > 3.3 whatever else you come up with.. >4. Check the same thing for the dupe option (op=dupeitem) >5. Sign off > >Signed-off-by: David Nind <david@davidnind.com> > >Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >--- > cataloguing/additem.pl | 18 ++++++++++++------ > .../prog/en/modules/cataloguing/additem.tt | 14 +++++++++++++- > 2 files changed, 25 insertions(+), 7 deletions(-) > >diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl >index bbf801bdac0..e1f4650e09f 100755 >--- a/cataloguing/additem.pl >+++ b/cataloguing/additem.pl >@@ -156,6 +156,14 @@ my ($template, $loggedinuser, $cookie) > flagsrequired => {editcatalogue => $userflags}, > }); > >+if ( $op eq 'edititem' || $op eq 'dupeitem' ) { >+ my $item = Koha::Items->find($itemnumber); >+ if ( !$item ) { >+ $itemnumber = undef; >+ $template->param( item_doesnt_exist => 1 ); >+ output_and_exit( $input, $cookie, $template, 'unknown_item' ); >+ } >+} > > # Does the user have a restricted item editing permission? > my $patron = Koha::Patrons->find( $loggedinuser ); >@@ -471,20 +479,18 @@ if ($op eq "additem") { > #------------------------------------------------------------------------------- > # retrieve item if exist => then, it's a modif > $current_item = Koha::Items->find($itemnumber)->unblessed; >- # FIXME Handle non existent item >- $nextop = "saveitem"; >+ $nextop = "saveitem"; > #------------------------------------------------------------------------------- > } elsif ($op eq "dupeitem") { > #------------------------------------------------------------------------------- > # retrieve item if exist => then, it's a modif > $current_item = Koha::Items->find($itemnumber)->unblessed; >- # FIXME Handle non existent item >- if (C4::Context->preference('autoBarcode') eq 'incremental') { >- my ( $barcode ) = C4::Barcodes::ValueBuilder::incremental::get_barcode; >+ if ( C4::Context->preference('autoBarcode') eq 'incremental' ) { >+ my ($barcode) = C4::Barcodes::ValueBuilder::incremental::get_barcode; > $current_item->{barcode} = $barcode; > } > else { >- $current_item->{barcode} = undef; # Don't save it! >+ $current_item->{barcode} = undef; # Don't save it! > } > > $nextop = "additem"; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt >index 127d2bf3038..0844f68e5b7 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt >@@ -26,7 +26,14 @@ > [% INCLUDE 'str/cataloging_additem.inc' %] > [% Asset.js("js/cataloging_additem.js") | $raw %] > <script> >- var has_item_groups = "[% item_groups.size | html %]"; >+ var has_item_groups = "[% item_groups.size | html %]"; >+ $(document).ready(function() { >+ [% IF item_doesnt_exist %] >+ $("#itemst_wrapper").hide(); >+ $("#menu").hide(); >+ $("#cataloguing_additem_newitem").hide(); >+ [% END %] >+ }); > </script> > </head> > >@@ -59,6 +66,11 @@ > <div class="row"> > <div class="col-sm-12"> > <main> >+ [% IF item_doesnt_exist %] >+ <div class="dialog alert"> >+ <a href="/cgi/bin/koha/catloguing/additem.pl?biblionumber=[% biblio.biblionumber | uri %]">Add a new item</a> or <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblio.biblionumber | uri %]#holdings">go to the records holdings</a>. >+ </div> >+ [% END %] > [% INCLUDE 'blocking_errors.inc' %] > <h1>Items for [% biblio.title | html %] [% IF ( biblio.author ) %] by [% biblio.author | html %][% END %] (Record #[% biblio.biblionumber | html %])</h1> > >-- >2.25.1
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 32418
:
144571
|
144639
|
144640
|
144641
|
144643
|
144794
|
144812
|
145306
|
145307
|
145505
|
146944
|
149092
|
149591
|
149626
|
149627
| 149635 |
149636
|
149637