diff --git a/installer/data/mysql/atomicupdate/bug_36868_add_AutoDeleteFromCartWhenHoldPlaced_syspref.pl b/installer/data/mysql/atomicupdate/bug_36868_add_AutoDeleteFromCartWhenHoldPlaced_syspref.pl index 449ba45d15..ded98ba2a6 100755 --- a/installer/data/mysql/atomicupdate/bug_36868_add_AutoDeleteFromCartWhenHoldPlaced_syspref.pl +++ b/installer/data/mysql/atomicupdate/bug_36868_add_AutoDeleteFromCartWhenHoldPlaced_syspref.pl @@ -8,14 +8,21 @@ return { my ($args) = @_; my ( $dbh, $out ) = @$args{qw(dbh out)}; - # Do your stuff here + my $exists = $dbh->selectrow_array( + q{SELECT 1 FROM systempreferences WHERE variable = 'AutoDeleteFromCartWhenHoldPlaced'}); + + if ($exists) { + say_warning( $out, "System preference 'AutoDeleteFromCartWhenHoldPlaced' already exists, skipping" ); + return; + } + $dbh->do( q{ INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES ('AutoDeleteFromCartWhenHoldPlaced', '','', 'Automatically delete items from cart when a hold is placed','Choice') } ); + say_success( $out, "Added new system preference 'AutoDeleteFromCartWhenHoldPlaced'" ); - say $out "Added new system preference 'AutoDeleteFromCartWhenHoldPlaced'"; }, }; diff --git a/koha-tmpl/intranet-tmpl/prog/js/basket.js b/koha-tmpl/intranet-tmpl/prog/js/basket.js index 2c34006ec9..671b9a0f45 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/basket.js +++ b/koha-tmpl/intranet-tmpl/prog/js/basket.js @@ -269,6 +269,12 @@ function delSingleRecord(biblionumber) { var valCookie = readCookie(nameCookie); var arrayRecords = valCookie.split("/"); var pos = jQuery.inArray(biblionumber, arrayRecords); + + // the cart is empty, bail + if (pos <= 0) { + return; + } + arrayRecords.splice(pos, 1); valCookie = arrayRecords.join("/"); writeCookie(nameCookie, valCookie); diff --git a/koha-tmpl/opac-tmpl/bootstrap/js/basket.js b/koha-tmpl/opac-tmpl/bootstrap/js/basket.js index 9d9588feab..8239aee56c 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/js/basket.js +++ b/koha-tmpl/opac-tmpl/bootstrap/js/basket.js @@ -235,6 +235,12 @@ function delSingleRecord(biblionumber) { var arrayRecords = valCookie.split("/"); var pos = jQuery.inArray(biblionumber, arrayRecords); arrayRecords.splice(pos, 1); + + //if cart is empty, bail + if (pos <= -1) { + return; + } + valCookie = arrayRecords.join("/"); writeCookie(nameCookie, valCookie); updateBasket(arrayRecords.length - 1);