From 86bd68a432c60d14c766288b21cf130e956bf84d 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 Signed-off-by: Dan Wells --- .../templates/staff/cat/volcopy/t_edit.tt2 | 2 +- .../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 e62e1b2622..c85ffbc4fd 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 4b74018aa0..76e637a163 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(); @@ -1471,7 +1485,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; }); @@ -1480,7 +1494,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; }); @@ -1489,7 +1503,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; }); @@ -1498,7 +1512,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; }); @@ -1521,6 +1535,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.43.2