diff --git a/themes/bootstrap3/js/cart.js b/themes/bootstrap3/js/cart.js index 74c4f4fa7f38fc97c21a3f9746739c1858a30958..b20b493920c1fc3bc6c6c3d0bbf22ac8adde6189 100644 --- a/themes/bootstrap3/js/cart.js +++ b/themes/bootstrap3/js/cart.js @@ -1,10 +1,11 @@ -/*global confirm, Cookies, newAccountHandler, path, vufindString, Lightbox, updatePageForLogin */ +/*global bulkActionSubmit, Cookies, newAccountHandler, path, vufindString, Lightbox, updatePageForLogin */ var _CART_COOKIE = 'vufind_cart'; var _CART_COOKIE_SOURCES = 'vufind_cart_src'; var _CART_COOKIE_DELIM = "\t"; var currentId,currentSource; +var lastCartSubmit = false; function getCartItems() { var items = Cookies.getItem(_CART_COOKIE); @@ -154,27 +155,6 @@ function registerUpdateCart($form) { } } -// Ajax cart submission for the lightbox -var lastCartSubmit = false; -function cartSubmit($form) { - lastCartSubmit = $form; - var submit = $form.find('input[type="submit"][clicked=true]').attr('name'); - var checks = $form.find('input.checkbox-select-item:checked'); - if(checks.length == 0 && submit != 'empty') { - return Lightbox.displayError(vufindString['bulk_noitems_advice']); - } - if (submit == 'print') { - //redirect page - var url = path+'/Records/Home?print=true'; - for(var i=0;i<checks.length;i++) { - url += '&id[]='+checks[i].value; - } - document.location.href = url; - } else { - Lightbox.submit($form, Lightbox.changeContent); - } -} - $(document).ready(function() { // Record buttons var cartId = $('#cartId'); @@ -214,7 +194,8 @@ $(document).ready(function() { } }); Lightbox.addFormHandler('cartForm', function(evt) { - cartSubmit($(evt.target)); + lastCartSubmit = $(evt.target); + bulkActionSubmit($(evt.target)); return false; }); Lightbox.addFormCallback('bulkEmail', function(html) { diff --git a/themes/bootstrap3/js/common.js b/themes/bootstrap3/js/common.js index c155fea4cb44d543a294913124570a3514197344..58604d71925f4b94f4b3c3cb62f5e822350352da 100644 --- a/themes/bootstrap3/js/common.js +++ b/themes/bootstrap3/js/common.js @@ -100,6 +100,24 @@ function setupOrFacets() { * This is a default open action, so it runs every time changeContent * is called and the 'shown' lightbox event is triggered */ +function bulkActionSubmit($form) { + var submit = $form.find('input[type="submit"][clicked=true]').attr('name'); + var checks = $form.find('input.checkbox-select-item:checked'); + if(checks.length == 0 && submit != 'empty') { + return Lightbox.displayError(vufindString['bulk_noitems_advice']); + } + if (submit == 'print') { + //redirect page + var url = path+'/Records/Home?print=true'; + for(var i=0;i<checks.length;i++) { + url += '&id[]='+checks[i].value; + } + document.location.href = url; + } else { + Lightbox.submit($form, Lightbox.changeContent); + } + return false; +} function registerLightboxEvents() { var modal = $("#modal"); // New list @@ -356,6 +374,18 @@ $(document).ready(function() { // Advanced facets setupOrFacets(); + $('[name=bulkActionForm]').submit(function() { + return bulkActionSubmit($(this)); + }); + $('[name=bulkActionForm]').find("input[type=submit]").click(function() { + // Abort requests triggered by the lightbox + $('#modal .fa-spinner').remove(); + // Remove other clicks + $(this).closest('form').find('input[type="submit"][clicked=true]').attr('clicked', false); + // Add useful information + $(this).attr("clicked", "true"); + }); + /****************************** * LIGHTBOX DEFAULT BEHAVIOUR * ******************************/