LP#1745462: avoid trying to validate empty fields
authorGalen Charlton <gmc@equinoxinitiative.org>
Thu, 25 Jan 2018 19:57:40 +0000 (14:57 -0500)
committerChris Sharp <csharp@georgialibraries.org>
Wed, 11 Jul 2018 18:29:26 +0000 (14:29 -0400)
This patch is the belt to the previous patch's suspenders and ensures
that the web staff client does not attempt to authority-validate headings
fields in the MARC editor if they're empty (i.e., no subfield values).

To test
-------
[1] In the web staff client, create a new bib. Ensure that at least one of the
    authority-controlled fields has no subfield values.
[2] Hit the Validate button.
[3] Note that the field(s) with empty headings show the tick
    mark indicating that they've been "validated".
[4] Apply the patch and repeat steps 1 and 2. This time, empty headings
    field should not be checked.
[5] Verify that validating headings that are not empty does continue
    to work.

Patch inspired by Mike Rylander.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
Open-ILS/web/js/ui/default/staff/cat/services/tagtable.js

index 1085e63..96a15dd 100644 (file)
@@ -1327,6 +1327,7 @@ angular.module('egMarcMod', ['egCoreMod', 'ui.bootstrap'])
                             return;
                         }
                         var auth_match = $scope.controlSet.bibToAuthorities(f);
+                        if (auth_match.length == 0) return;
                         chain = chain.then(function() {
                             var promise = egCore.net.request(
                                 'open-ils.search',
index 85b2e32..90d894c 100644 (file)
@@ -461,10 +461,16 @@ function($q,   egCore,   egAuth) {
                 var sflist = [];                
                 for (var i = 0; i < field.subfields.length; i++) {
                     if (af.sf_list().indexOf(field.subfields[i][0]) > -1) {
-                        sflist.push(field.subfields[i]);
+                        if (typeof(field.subfields[i][1]) != 'undefined'
+                            && field.subfields[i][1] !== null
+                            && field.subfields[i][1].length > 0
+                        ) {
+                                sflist.push(field.subfields[i]);
+                        }
                     }
                 }
-    
+                if (sflist.length == 0) return null;
+
                 var m = new MARC21.Record ({rtype:'AUT'});
                 m.appendFields(
                     new MARC21.Field ({