Bug 9759: last subfield can be deleted
authorFridolyn SOMERS <fridolyn.somers@biblibre.com>
Thu, 7 Mar 2013 10:54:57 +0000 (11:54 +0100)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Sat, 30 Mar 2013 02:48:52 +0000 (22:48 -0400)
In authorities and biblios editors, a repeatable subfield can be deleted (small icon next to input).
Clone subfields are really deleted but last existing subfield is just set empty instead of deleted.
But when same field is repeated, the last subfield can be deleted.

This patch corrects this, last subfield of a field, even repeated, can not be deleted.

Test plan :
- Edit a biblio
- Choose a repeatable field with a repeatable subfield : ie 600 and $x
- Edit 600, enter a text in $x : ie "subA"
- Clone $x
- Delete second $x
=> second $x is deleted
- Delete first $x
=> $x is not deleted but set empty
- Edit 600, enter a text in $x : ie "subA"
- Clone 600
- Edit second 600, enter a text in $x : ie "subB"
- Clone $x of second 600
- Delete second $x of second 600
=> second $x of second 600 is deleted
- Delete first $x of second 600
=> with this patch : first $x of second 600 is set empty
=> without this patch : first $x of second 600 is deleted, second 600 has no $x anymore
Perform same test plan on an authority.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
koha-tmpl/intranet-tmpl/prog/en/js/cataloging.js

index e604bdc..614e698 100644 (file)
@@ -342,8 +342,8 @@ function UnCloneField(index) {
     } else {
         // unclone a subfield, check if there will remain one subfield
         var subfieldCode = getFieldAndSubfieldCode(index);
-        // subfield divs with id begining with original field and subfield field code
-        var cloneSubfields = $('.subfield_line[id^="subfield'+subfieldCode+'"]');
+        // subfield divs of same field with id begining with original field and subfield field code
+        var cloneSubfields = $(original).parent().children('.subfield_line[id^="subfield'+subfieldCode+'"]');
         if (cloneSubfields.length > 1) {
             canUnclone = true;
         }