From 8b763c00e90851231e83ea364bf8129cdddf1210 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 --- .../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 48a8cadf51..084bb80b99 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