Bugzilla – Attachment 14959 Details for
Bug 5790
Deleting a biblio should alert/fail if there are existent holds
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 5790 - Prevent deletion of records with holds
Bug-5790---Prevent-deletion-of-records-with-holds.patch (text/plain), 8.88 KB, created by
Kyle M Hall (khall)
on 2013-01-30 17:18:23 UTC
(
hide
)
Description:
Bug 5790 - Prevent deletion of records with holds
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2013-01-30 17:18:23 UTC
Size:
8.88 KB
patch
obsolete
>From d816d5924f3463859c58adcf8906f8f157d6727b Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Wed, 30 Jan 2013 11:36:38 -0500 >Subject: [PATCH] Bug 5790 - Prevent deletion of records with holds > >Test Plan: >1) Apply patch >2) Create a record >3) Create an item for the record >3) Place a hold on the bib >4) Attempt to 'Delete all items', you should recieve > an error message stating to delete all holds before > deleting all items. > >Also, it is possible to get into a situation where a record has >holds but no items. In this situation, it is not possible to >view/delete the holds without adding an item back to the record. >In this case, attempting to delete the bib causes a warning, but >does not prevent deletion. >--- > catalogue/ISBDdetail.pl | 4 + > catalogue/MARCdetail.pl | 3 + > catalogue/detail.pl | 7 +- > catalogue/moredetail.pl | 4 + > .../intranet-tmpl/prog/en/css/staff-global.css | 3 + > .../intranet-tmpl/prog/en/includes/cat-toolbar.inc | 60 +++++++++++-------- > 6 files changed, 52 insertions(+), 29 deletions(-) > >diff --git a/catalogue/ISBDdetail.pl b/catalogue/ISBDdetail.pl >index de24490..1f18a89 100755 >--- a/catalogue/ISBDdetail.pl >+++ b/catalogue/ISBDdetail.pl >@@ -111,5 +111,9 @@ $template->param ( > C4::Search::enabled_staff_search_views, > ); > >+ >+my ( $holdcount, $holds ) = GetReservesFromBiblionumber($biblionumber,1); >+$template->param( holdcount => $holdcount, holds => $holds ); >+ > output_html_with_http_headers $query, $cookie, $template->output; > >diff --git a/catalogue/MARCdetail.pl b/catalogue/MARCdetail.pl >index 2b967df..3c5b707 100755 >--- a/catalogue/MARCdetail.pl >+++ b/catalogue/MARCdetail.pl >@@ -335,4 +335,7 @@ $template->param ( > C4::Search::enabled_staff_search_views, > ); > >+my ( $holdcount, $holds ) = GetReservesFromBiblionumber($biblionumber,1); >+$template->param( holdcount => $holdcount, holds => $holds ); >+ > output_html_with_http_headers $query, $cookie, $template->output; >diff --git a/catalogue/detail.pl b/catalogue/detail.pl >index 6b313b2..ded4573 100755 >--- a/catalogue/detail.pl >+++ b/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 ) = GetReservesFromBiblionumber($biblionumber,1); >+$template->param( holdcount => $holdcount, holds => $holds ); >+ > output_html_with_http_headers $query, $cookie, $template->output; >diff --git a/catalogue/moredetail.pl b/catalogue/moredetail.pl >index 66d731b..6e99c60 100755 >--- a/catalogue/moredetail.pl >+++ b/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; > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css b/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css >index 349a65d..a826606 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css >+++ b/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; > } >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >index f8e6b4a..dc760fc 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >@@ -24,41 +24,51 @@ > function addToShelf() { window.open('/cgi-bin/koha/virtualshelves/addbybiblionumber.pl?biblionumber=[% biblionumber %]','Add_to_virtualshelf','width=500,height=400,toolbar=false,scrollbars=yes'); > } > 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(_('There are [ '+ count +' ] item(s) attached to this record \n You must delete all items before deleting 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 %]"; >- } >+ is_confirmed = alert(_('There are [ '+ count +' ] item(s) attached to this record \n You must delete all items before deleting this record.')); >+ } else if ( holdcount > 0 ) { >+ is_confirmed = confirm(_('There are [ '+ 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 || 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( _('There are [ '+ 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 > >@@ -116,8 +126,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({ >-- >1.7.2.5
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 5790
:
14959
|
14965
|
14974
|
14975
|
14976
|
15029
|
15042
|
15043
|
15044
|
15054
|
15119
|
15128
|
15129
|
15242
|
15243