From 18dc5c5594a6edd1031f8e516e6f2513e4c6ed77 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Tue, 5 Feb 2019 12:28:15 -0500 Subject: [PATCH] LP1793196 Volume batch editor offers MARC call numbers Provide call numbers extracted from the MARC record as options in the volume batch editor. Call numbers to extract are based on the load-time classification scheme, defaulting to Generic ('1') if no default scheme is applied. Patch includes additional sanity checks on volume editor utility functions to avoid console errors referencing undefined values. Signed-off-by: Bill Erickson Signed-off-by: Remington Steed --- .../src/templates/staff/cat/volcopy/t_edit.tt2 | 2 +- .../web/js/ui/default/staff/cat/volcopy/app.js | 27 ++++++++++++++++++---- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2 b/Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2 index 7d32580f40..bb0537ce95 100644 --- a/Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2 +++ b/Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2 @@ -25,7 +25,7 @@
- +
diff --git a/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js b/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js index 20c825746e..87944d715b 100644 --- a/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js +++ b/Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js @@ -1064,9 +1064,23 @@ function($scope , $q , $window , $routeParams , $location , $timeout , egCore , if ($scope.defaults.barcode_checkdigit) itemSvc.barcode_checkdigit = true; if ($scope.defaults.auto_gen_barcode) itemSvc.auto_gen_barcode = true; } + + // Fetch the list of bib-level callnumbers based on the applied + // classification scheme. If none is defined, default to "1" + // (Generic) since it provides the most options. + egCore.net.request( + 'open-ils.cat', + 'open-ils.cat.biblio.record.marc_cn.retrieve', + $scope.record_id, + $scope.batch.classification || 1 + ).then(function(list) { + $scope.batch.marcCallNumbers = []; + list.forEach(function(hash) { + $scope.batch.marcCallNumbers.push(Object.values(hash)[0]); + }); + }); }); } - $scope.fetchDefaults(); $scope.$watch('defaults.statcat_filter', function() { $scope.saveDefaults(); @@ -1458,7 +1472,7 @@ function($scope , $q , $window , $routeParams , $location , $timeout , egCore , } $scope.circTypeValue = function (x) { - if (x === null) return egCore.strings.UNSET; + if (x === null || x === undefined) return egCore.strings.UNSET; var s = $scope.circ_type_list.filter(function(y) { return y.code() == x; }); @@ -1467,7 +1481,7 @@ function($scope , $q , $window , $routeParams , $location , $timeout , egCore , } $scope.ageprotectName = function (x) { - if (x === null) return egCore.strings.UNSET; + if (x === null || x === undefined) return egCore.strings.UNSET; var s = $scope.age_protect_list.filter(function(y) { return y.id() == x; }); @@ -1476,7 +1490,7 @@ function($scope , $q , $window , $routeParams , $location , $timeout , egCore , } $scope.floatingName = function (x) { - if (x === null) return egCore.strings.UNSET; + if (x === null || x === undefined) return egCore.strings.UNSET; var s = $scope.floating_list.filter(function(y) { return y.id() == x; }); @@ -1485,7 +1499,7 @@ function($scope , $q , $window , $routeParams , $location , $timeout , egCore , } $scope.circmodName = function (x) { - if (x === null) return egCore.strings.UNSET; + if (x === null || x === undefined) return egCore.strings.UNSET; var s = $scope.circ_modifier_list.filter(function(y) { return y.code() == x; }); @@ -1508,6 +1522,9 @@ function($scope , $q , $window , $routeParams , $location , $timeout , egCore , $scope.record_id = data.record_id; + // Fetch defaults + $scope.fetchDefaults(); + function fetchRaw () { if (!$scope.only_vols) $scope.dirty = true; $scope.add_vols_copies = true; -- 2.11.0