@@ -, +, @@ an error message stating to delete all holds before deleting all items. --- catalogue/ISBDdetail.pl | 4 + catalogue/MARCdetail.pl | 3 + catalogue/detail.pl | 7 +- catalogue/imageviewer.pl | 3 + catalogue/labeledMARCdetail.pl | 3 + catalogue/moredetail.pl | 4 + .../intranet-tmpl/prog/en/css/staff-global.css | 3 + .../intranet-tmpl/prog/en/includes/cat-toolbar.inc | 61 +++++++++++-------- 8 files changed, 58 insertions(+), 30 deletions(-) --- a/catalogue/ISBDdetail.pl +++ a/catalogue/ISBDdetail.pl @@ -111,5 +111,9 @@ $template->param ( C4::Search::enabled_staff_search_views, ); + +my ( $holdcount, $holds ) = C4::Reserves::GetReservesFromBiblionumber($biblionumber,1); +$template->param( holdcount => $holdcount, holds => $holds ); + output_html_with_http_headers $query, $cookie, $template->output; --- a/catalogue/MARCdetail.pl +++ a/catalogue/MARCdetail.pl @@ -335,4 +335,7 @@ $template->param ( C4::Search::enabled_staff_search_views, ); +my ( $holdcount, $holds ) = C4::Reserves::GetReservesFromBiblionumber($biblionumber,1); +$template->param( holdcount => $holdcount, holds => $holds ); + output_html_with_http_headers $query, $cookie, $template->output; --- a/catalogue/detail.pl +++ a/catalogue/detail.pl @@ -138,9 +138,6 @@ if (@hostitems){ my $dat = &GetBiblioData($biblionumber); -# get count of holds -my ( $holdcount, $holds ) = GetReservesFromBiblionumber($biblionumber,1); - #coping with subscriptions my $subscriptionsnumber = CountSubscriptionFromBiblionumber($biblionumber); my @subscriptions = GetSubscriptions( $dat->{title}, $dat->{issn}, undef, $biblionumber ); @@ -301,7 +298,6 @@ $template->param( volinfo => $itemfields{enumchron}, itemdata_itemnotes => $itemfields{itemnotes}, z3950_search_params => C4::Search::z3950_search_args($dat), - holdcount => $holdcount, hostrecords => $hostrecords, analytics_flag => $analytics_flag, C4::Search::enabled_staff_search_views, @@ -399,4 +395,7 @@ if (C4::Context->preference('TagsEnabled') and $tag_quantity = C4::Context->pref 'sort'=>'-weight', limit=>$tag_quantity})); } +my ( $holdcount, $holds ) = C4::Reserves::GetReservesFromBiblionumber($biblionumber,1); +$template->param( holdcount => $holdcount, holds => $holds ); + output_html_with_http_headers $query, $cookie, $template->output; --- a/catalogue/imageviewer.pl +++ a/catalogue/imageviewer.pl @@ -78,4 +78,7 @@ $template->{VARS}->{'norequests'} = $norequests; $template->param(C4::Search::enabled_staff_search_views); $template->{VARS}->{'biblio'} = $biblio; +my ( $holdcount, $holds ) = C4::Reserves::GetReservesFromBiblionumber($biblionumber,1); +$template->param( holdcount => $holdcount, holds => $holds ); + output_html_with_http_headers $query, $cookie, $template->output; --- a/catalogue/labeledMARCdetail.pl +++ a/catalogue/labeledMARCdetail.pl @@ -136,4 +136,7 @@ $template->param ( C4::Search::enabled_staff_search_views, ); +my ( $holdcount, $holds ) = C4::Reserves::GetReservesFromBiblionumber($biblionumber,1); +$template->param( holdcount => $holdcount, holds => $holds ); + output_html_with_http_headers $query, $cookie, $template->output; --- a/catalogue/moredetail.pl +++ a/catalogue/moredetail.pl @@ -214,5 +214,9 @@ $template->param( ); $template->param(ONLY_ONE => 1) if ( $itemnumber && $showncount != @items ); + +my ( $holdcount, $holds ) = GetReservesFromBiblionumber($biblionumber,1); +$template->param( holdcount => $holdcount, holds => $holds ); + output_html_with_http_headers $query, $cookie, $template->output; --- a/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css +++ a/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css @@ -425,6 +425,9 @@ ul.toolbar button { a.yuimenuitemlabel-disabled, #disabled a { color: #999; } +a.yuimenuitemlabel-disabled, #disabled2 a { + color: #999; +} a.yuimenuitemlabel-disabled:hover, #disabled a:hover { color : #999; } --- a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc @@ -30,40 +30,49 @@ } function printBiblio() {window.print(); } [% IF ( CAN_user_editcatalogue_edit_catalogue ) %] -function confirm_deletion() { - var count = [% count %]; + function confirm_deletion() { + var count = [% count %]; + var holdcount = [% holdcount %]; + var is_confirmed; - if (count>0){ - is_confirmed= alert(count + " " +_("item(s) are attached to this record.\nYou must delete all items before deleting this record.")); - } else{ - is_confirmed= confirm(_("Are you sure you want to delete this record? ")); - } + if (count > 0){ + is_confirmed = alert( count + " " +_("item(s) are attached to this record.\nYou must delete all items before deleting this record.") ); + } else if ( holdcount > 0 ) { + is_confirmed = confirm( holdcount + " " + _("holds(s) for this record \n Are you sure you want to delete this record?.")); + } else { + is_confirmed = confirm(_('Are you sure you want to delete this record? ')); + } - if (is_confirmed) { - if (count>0){ - // window.location="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber %]"; - } else { - window.location="/cgi-bin/koha/cataloguing/addbiblio.pl?op=delete&biblionumber=[% biblionumber %]"; - } + if (is_confirmed) { + if ( count > 0 || holdcount > 0 ){ + return false; + } else { + window.location="/cgi-bin/koha/cataloguing/addbiblio.pl?op=delete&biblionumber=[% biblionumber %]"; + } } else { - return false; + return false; } -} + } [% END %] + [% IF ( CAN_user_editcatalogue_edit_items ) %] -function confirm_items_deletion() { + function confirm_items_deletion() { var count = [% count %]; - if(count > 0){ - if(confirm(_("Are you sure you want to delete the") + " " + count + " " + _("attached items?"))){ + var holdcount = [% holdcount %]; + + if ( holdcount > 0 ) { + alert( holdcount + " " + _("holds(s) for this record \n You must delete all holds before deleting all items.") ); + } else if ( count > 0 ) { + if( confirm( _("Are you sure you want to delete the") + " " + count + " " + _("attached items?") ) ) { window.location="/cgi-bin/koha/cataloguing/additem.pl?op=delallitems&biblionumber=[% biblionumber %]"; - }else{ + } else { return false; } - } else { - alert(_("This record has no items.")); - return false; - } -} + } else { + alert(_("This record has no items.")); + return false; + } + } [% END %] // prepare DOM for YUI Toolbar @@ -121,8 +130,8 @@ function confirm_items_deletion() { [% IF ( LocalCoverImages || OPACLocalCoverImages) %][% IF ( CAN_user_tools_upload_local_cover_images ) %]{ text: _("Upload image"), url: "/cgi-bin/koha/tools/upload-cover-image.pl?biblionumber=[% biblionumber %]&filetype=image" },[% END %][% END %] [% IF ( CAN_user_editcatalogue_edit_catalogue ) %]{ text: _("Edit as new (duplicate)"), url: "/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% biblionumber %]&frameworkcode=&op=duplicate" },[% END %] [% IF ( CAN_user_editcatalogue_edit_catalogue ) %]{ text: _("Replace record via Z39.50"), onclick: {fn: PopupZ3950 } },[% END %] - [% IF ( CAN_user_editcatalogue_edit_catalogue ) %]{ text: _("Delete record"), onclick: {fn: confirm_deletion }[% IF ( count ) %],id:'disabled'[% END %] },[% END %] - [% IF ( CAN_user_editcatalogue_edit_items ) %]{ text: _("Delete all items"), onclick: {fn: confirm_items_deletion }[% UNLESS ( count ) %],id:'disabled'[% END %] }[% END %] + [% IF ( CAN_user_editcatalogue_edit_catalogue ) %]{ text: _("Delete record"), onclick: {fn: confirm_deletion }[% IF ( count || holdcount ) %],id:'disabled'[% END %] },[% END %] + [% IF ( CAN_user_editcatalogue_edit_items ) %]{ text: _("Delete all items"), onclick: {fn: confirm_items_deletion }[% IF ( count < 1 || holdcount ) %],id:'disabled2'[% END %] },[% END %] ]; if(editmenu.length){ new YAHOO.widget.Button({ --