[Patches] [PATCH] Follow-up patch : catch CloneSubfield errors

koha-patchbot at kohaaloha.com koha-patchbot at kohaaloha.com
Fri Nov 4 19:52:43 NZDT 2011


From: =?utf-8?q?Fr=C3=A9d=C3=A9rick=20Capovilla?= <frederick.capovilla at libeo.com>
Date: Fri, 21 Oct 2011 12:04:03 -0400
Subject: [PATCH] Follow-up patch : catch CloneSubfield errors

A javascript error could occur if the CloneSubfield function failed for
any reason. This would prevent the popup from disappearing.

Example : Importing informations of a UNIF_TITLE authority with multiple
$x subfields in the biblio's 440 field. 440$x isn't repeatable, so an
error occurs when trying to clone it.
---
 .../authorities/blinddetail-biblio-search.tt       |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt
index 1697289..77a5d5f 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt
@@ -33,10 +33,11 @@
         }
 
         // Sets the good number of form fields for the specified subfield
+        // Returns false if the cloning failed
         function SetSubfieldNumber(subfield_name, nb) {
             // Nothing to do if we only have one value
             if(nb <= 1) {
-                return;
+                return true;
             }
             
             // Find the subfield we want to clone
@@ -45,10 +46,16 @@
                 return this.id.match(re);
             });
 
-            // Add as many clones as needed
-            for(var i=0; i<nb-subfields.length; i++) {
-                window.opener.opener.CloneSubfield(subfields[0].getAttribute('id'));
+            // Try to add as many clones as needed
+            try {
+                for(var i=0; i<nb-subfields.length; i++) {
+                    window.opener.opener.CloneSubfield(subfields[0].getAttribute('id'));
+                }
+            }
+            catch(err) {
+                return false;
             }
+            return true;
         }
 
         // Fills the subfield with the values entered in argument
@@ -61,6 +68,7 @@
             }
 
             // Create the correct number of form fields for all values
+            // If the field cloning failed, only the first value will be added to the form.
             SetSubfieldNumber(subfield_name, values.length);
             
             // Find the subfields where we will add the new values
-- 
1.5.6.5




More information about the Patches mailing list