Bugzilla – Attachment 144794 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-undef.patch (text/plain), 5.24 KB, created by
Paul Derscheid
on 2022-12-22 13:52:21 UTC
(
hide
)
Description:
Bug 32418 - Can't call method 'unblessed' on an undefined value at cataloguing/additem.pl
Filename:
MIME Type:
Creator:
Paul Derscheid
Created:
2022-12-22 13:52:21 UTC
Size:
5.24 KB
patch
obsolete
>From 80094743d318bec29b57111727439bf1dd3cb43e Mon Sep 17 00:00:00 2001 >From: LMSCloudPaulD <paul.derscheid@lmscloud.de> >Date: Thu, 22 Dec 2022 14:38:54 +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 >--- > cataloguing/additem.pl | 33 ++++++++++++------- > .../prog/en/modules/cataloguing/additem.tt | 15 ++++++++- > 2 files changed, 36 insertions(+), 12 deletions(-) > >diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl >index ed31390663..d180823d45 100755 >--- a/cataloguing/additem.pl >+++ b/cataloguing/additem.pl >@@ -156,6 +156,13 @@ 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 ); >+ } >+} > > # Does the user have a restricted item editing permission? > my $uid = Koha::Patrons->find( $loggedinuser )->userid; >@@ -462,21 +469,25 @@ if ($op eq "additem") { > } elsif ($op eq "edititem") { > #------------------------------------------------------------------------------- > # retrieve item if exist => then, it's a modif >- $current_item = Koha::Items->find($itemnumber)->unblessed; >- # FIXME Handle non existent item >- $nextop = "saveitem"; >+ $nextop = "additem"; >+ if ($itemnumber) { >+ $current_item = Koha::Items->find($itemnumber)->unblessed; >+ $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; >- $current_item->{barcode} = $barcode; >- } >- else { >- $current_item->{barcode} = undef; # Don't save it! >+ if ($itemnumber) { >+ $current_item = Koha::Items->find($itemnumber)->unblessed; >+ 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! >+ } > } > > $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 e9a512c60e..7a6f88a1ac 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt >@@ -25,7 +25,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> > >@@ -70,6 +77,12 @@ > [% IF ( linked_analytics ) %]<div class="dialog alert"><strong>Cannot delete</strong>: item has linked <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblio.biblionumber | uri %]&analyze=1">analytics.</a>.</div>[% END %] > [% IF last_item_for_hold %]<div class="dialog alert"><strong>Cannot delete</strong>: Last item for bibliographic record with biblio-level hold on it.</div>[% END %] > [% IF item_not_found %]<div class="dialog alert"><strong>Cannot delete</strong>: Item not found.</div>[% END %] >+[% IF item_doesnt_exist %] >+<div class="dialog alert"> >+The item you are trying to access doesn't exist.<br> >+<a href="/cgi-bin/koha/cataloguing/additem.pl?biblionumber=[% biblio.biblionumber %]">Add a new item</a> or <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblio.biblionumber %]#holdings">go to the records holdings</a>. >+</div> >+[% END %] > > <div id="cataloguing_additem_itemlist"> > [% IF items %] >-- >2.34.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