From 25d9c5ddc03f673b87f1aaff788a79dff92ba075 Mon Sep 17 00:00:00 2001 From: Josh Stompro Date: Wed, 27 Feb 2019 15:07:43 -0600 Subject: [PATCH] LP#1798187 - Support CRLF and LF format for item status import files Testing Plan: Before patch, try to import a file in CRLF end of line format that includes leading and trailing spaces, empty lines, lines of just spaces or barcodes with spaces. The import will fail to load those items and will stop processing when it hits certain situations. After patch, try to import a file in CRLF EOL format that includes barcodes with trailing spaces, leading spaces, barcodes with spaces, and/or empty lines. The import will load all barcodes. Signed-off-by: Josh Stompro Signed-off-by: Galen Charlton Signed-off-by: Jane Sandberg --- Open-ILS/src/templates/staff/cat/item/index.tt2 | 1 + Open-ILS/web/js/ui/default/staff/cat/item/app.js | 16 +++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Open-ILS/src/templates/staff/cat/item/index.tt2 b/Open-ILS/src/templates/staff/cat/item/index.tt2 index 53cf23f778..c77ced848a 100644 --- a/Open-ILS/src/templates/staff/cat/item/index.tt2 +++ b/Open-ILS/src/templates/staff/cat/item/index.tt2 @@ -76,6 +76,7 @@ +
diff --git a/Open-ILS/web/js/ui/default/staff/cat/item/app.js b/Open-ILS/web/js/ui/default/staff/cat/item/app.js index fc3e823dfa..af59baf45b 100644 --- a/Open-ILS/web/js/ui/default/staff/cat/item/app.js +++ b/Open-ILS/web/js/ui/default/staff/cat/item/app.js @@ -325,10 +325,14 @@ function($scope , $q , $window , $location , $timeout , egCore , egNet , egGridD $scope.args.barcode = ''; var barcodes = []; - angular.forEach(newVal.split(/\n/), function(line) { + angular.forEach(newVal.split(/\r?\n/), function(line) { + //remove all whitespace and commas + line = line.replace(/[\s,]+/g,''); + + //Or remove leading/trailing whitespace + //line = line.replace(/(^[\s,]+|[\s,]+$/g,''); + if (!line) return; - // scrub any trailing spaces or commas from the barcode - line = line.replace(/(.*?)($|\s.*|,.*)/,'$1'); barcodes.push(line); }); @@ -337,10 +341,12 @@ function($scope , $q , $window , $location , $timeout , egCore , egNet , egGridD var barcode = barcodes.pop(); egProgressDialog.increment(); - if (!barcode) { // All done here. + if (barcode == undefined) { // All done here. egProgressDialog.close(); copyGrid.refresh(); - copyGrid.selectItems([itemSvc.copies[0].index]); + if(itemSvc.copies[0]){ // Were any copies actually retrieved + copyGrid.selectItems([itemSvc.copies[0].index]); + } return; } -- 2.43.2