From 448118772255aaecf7e8d7e483f53e8da67d5c03 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 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 1de94cf152..22a41eac02 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