From: Galen Charlton Date: Wed, 23 May 2018 22:07:25 +0000 (-0400) Subject: add an add-to-cart action for the web staff client X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=db53742173551b3eb885318e01cf80984ecbd4d7;p=working%2FEvergreen.git add an add-to-cart action for the web staff client Signed-off-by: Galen Charlton --- diff --git a/Open-ILS/src/templates/opac/parts/cart.tt2 b/Open-ILS/src/templates/opac/parts/cart.tt2 index d8bd69bab1..3fbfa766b2 100644 --- a/Open-ILS/src/templates/opac/parts/cart.tt2 +++ b/Open-ILS/src/templates/opac/parts/cart.tt2 @@ -7,6 +7,9 @@
  • [% l('Print Title Details') %]
  • [% l('Email Title Details') %]
  • [% l('Add Cart to Saved List') %]
  • + [% IF ctx.is_browser_staff %] +
  • [% l('Add Cart to Bucket') %]
  • + [% END %]
  • [% l('Clear Cart') %]
  • diff --git a/Open-ILS/web/js/ui/default/staff/cat/catalog/app.js b/Open-ILS/web/js/ui/default/staff/cat/catalog/app.js index 4b3d186975..62e4cfc55d 100644 --- a/Open-ILS/web/js/ui/default/staff/cat/catalog/app.js +++ b/Open-ILS/web/js/ui/default/staff/cat/catalog/app.js @@ -318,8 +318,26 @@ function($scope , $routeParams , $location , $window , $q , egCore , egHolds , e } } - $scope.add_to_record_bucket = function() { - var recId = $scope.record_id; + $scope.add_cart_to_record_bucket = function() { + var cartkey = $cookies.get('anoncache'); + if (!cartkey) return; + egCore.net.request( + 'open-ils.actor', + 'open-ils.actor.anon_cache.get_value', + cartkey, + 'mylist' + ).then(function(list) { + list = list.map(function(x) { + return parseInt(x); + }); + $scope.add_to_record_bucket(list); + }); + } + + $scope.add_to_record_bucket = function(recs) { + if (!angular.isArray(recs)) { + recs = [ $scope.record_id ]; + } return $uibModal.open({ templateUrl: './cat/catalog/t_add_to_bucket', backdrop: 'static', @@ -340,14 +358,18 @@ function($scope , $routeParams , $location , $window , $q , egCore , egHolds , e ).then(function(buckets) { $scope.allBuckets = buckets; }); $scope.add_to_bucket = function() { - var item = new egCore.idl.cbrebi(); - item.bucket($scope.bucket_id); - item.target_biblio_record_entry(recId); - egCore.net.request( - 'open-ils.actor', - 'open-ils.actor.container.item.create', - egCore.auth.token(), 'biblio', item - ).then(function(resp) { + var promises = []; + angular.forEach(recs, function(recId) { + var item = new egCore.idl.cbrebi(); + item.bucket($scope.bucket_id); + item.target_biblio_record_entry(recId); + promises.push(egCore.net.request( + 'open-ils.actor', + 'open-ils.actor.container.item.create', + egCore.auth.token(), 'biblio', item + )); + }); + $q.all(promises).then(function(resp) { $uibModalInstance.close(); }); } @@ -583,7 +605,10 @@ function($scope , $routeParams , $location , $window , $q , egCore , egHolds , e $(doc).find('#hold_usr_input').val(barc); $(doc).find('#hold_usr_input').change(); }); - }) + }); + $(doc).find('#add_cart_to_bucket').on('click', function() { + $scope.add_cart_to_record_bucket(); + }); } }