Bug 15358: Fix authorities merge
authorJulian Maurice <julian.maurice@biblibre.com>
Wed, 6 Jan 2016 18:11:27 +0000 (19:11 +0100)
committerBrendan Gallagher <brendan@bywatersolutions.com>
Wed, 3 Feb 2016 23:03:33 +0000 (23:03 +0000)
Bug 8064 (Merge several biblio records) change some code used in both
biblios and authorities merge tool without updating the authorities
merge tool.
This patch fixes that.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com

C4/AuthoritiesMarc.pm
authorities/merge.pl
cataloguing/merge.pl
koha-tmpl/intranet-tmpl/prog/en/includes/merge-record.inc
koha-tmpl/intranet-tmpl/prog/en/modules/authorities/merge.tt

index 866350e..a88d4fa 100644 (file)
@@ -1403,8 +1403,10 @@ sub merge {
     my ($mergefrom,$MARCfrom,$mergeto,$MARCto) = @_;
     my ($counteditedbiblio,$countunmodifiedbiblio,$counterrors)=(0,0,0);        
     my $dbh=C4::Context->dbh;
-    my $authtypefrom = Koha::Authority::Types->find($mergefrom);
-    my $authtypeto   = Koha::Authority::Types->find($mergeto);
+    my $authfrom = Koha::Authorities->find($mergefrom);
+    my $authto = Koha::Authorities->find($mergeto);
+    my $authtypefrom = Koha::Authority::Types->find($authfrom->authtypecode);
+    my $authtypeto   = Koha::Authority::Types->find($authto->authtypecode);
 
     return "error MARCFROM not a marcrecord ".Data::Dumper::Dumper($MARCfrom) if scalar($MARCfrom->fields()) == 0;
     return "error MARCTO not a marcrecord".Data::Dumper::Dumper($MARCto) if scalar($MARCto->fields()) == 0;
index cfc1ca5..16efdd5 100755 (executable)
@@ -133,15 +133,27 @@ else {
 
             # Creating a loop for display
 
-            my @record1 = $recordObj1->createMergeHash($tagslib);
-            my @record2 = $recordObj2->createMergeHash($tagslib);
+            my @records = (
+                {
+                    recordid => $mergereference,
+                    record => $recordObj1->record,
+                    frameworkcode => $recordObj1->authtypecode,
+                    display => $recordObj1->createMergeHash($tagslib),
+                    reference => 1,
+                },
+                {
+                    recordid => $notreference,
+                    record => $recordObj2->record,
+                    frameworkcode => $recordObj2->authtypecode,
+                    display => $recordObj2->createMergeHash($tagslib),
+                },
+            );
 
             # Parameters
             $template->param(
                 recordid1        => $mergereference,
                 recordid2        => $notreference,
-                record1        => @record1,
-                record2        => @record2,
+                records        => \@records,
                 framework      => $framework,
             );
         }
@@ -169,8 +181,6 @@ else {
                     frameworkselect => \@frameworkselect,
                     frameworkcode1  => $recordObj1->authtypecode,
                     frameworkcode2  => $recordObj2->authtypecode,
-                    frameworklabel1 => $recordObj1->authtypetext,
-                    frameworklabel2 => $recordObj2->authtypetext,
                 );
             }
         }
index a882daa..fc96d3c 100755 (executable)
@@ -203,7 +203,7 @@ if ($merge) {
             my $frameworkcode = GetFrameworkCode($biblionumber);
             my $recordObj = new Koha::MetadataRecord({'record' => $marcrecord, schema => $marcflavour});
             my $record = {
-                biblionumber => $biblionumber,
+                recordid => $biblionumber,
                 record => $marcrecord,
                 frameworkcode => $frameworkcode,
                 display => $recordObj->createMergeHash($tagslib),
index f74e8ce..2d77a2f 100644 (file)
@@ -1,16 +1,16 @@
 [% BLOCK sourcetab %]
-    <div id="tabrecord[% record.biblionumber %]">
+    <div id="tabrecord[% record.recordid %]">
         <div class="record">
-            <ul id="ulrecord[% record.biblionumber %]">
+            <ul id="ulrecord[% record.recordid %]">
                 [% FOREACH field IN record.display %]
                   [% IF field.tag != biblionumbertag %]
                     <li id="k[% field.key %]">
                         [% IF (tabrecord.reference) %]
-                            <input type="checkbox" checked="checked" class="fieldpick" id="rec_[% record.biblionumber %]_[% field.key %]" />
+                            <input type="checkbox" checked="checked" class="fieldpick" id="rec_[% record.recordid %]_[% field.key %]" />
                         [% ELSE %]
-                            <input type="checkbox" class="fieldpick" id="rec_[% record.biblionumber %]_[% field.key %]" />
+                            <input type="checkbox" class="fieldpick" id="rec_[% record.recordid %]_[% field.key %]" />
                         [% END %]
-                        <label for="rec_[% record.biblionumber %]_[% field.key %]"><span class="field">[% field.tag %]</span></label>
+                        <label for="rec_[% record.recordid %]_[% field.key %]"><span class="field">[% field.tag %]</span></label>
 
                         <input type="hidden" name="tag_[% field.tag %]_indicator1_[% field.key %]" value="[% field.indicator1 %]" />
                         <input type="hidden" name="tag_[% field.tag %]_indicator2_[% field.key %]" value="[% field.indicator2 %]" />
                                 [% FOREACH subfield IN field.subfield %]
                                     <li id="k[% subfield.subkey %]">
                                         [% IF (tabrecord.reference) %]
-                                            <input type="checkbox" checked="checked" class="subfieldpick" id="rec_[% record.biblionumber %]_[% subfield.subkey %]" />
+                                            <input type="checkbox" checked="checked" class="subfieldpick" id="rec_[% record.recordid %]_[% subfield.subkey %]" />
                                         [% ELSE %]
-                                            <input type="checkbox" class="subfieldpick" id="rec_[% record.biblionumber %]_[% subfield.subkey %]" />
+                                            <input type="checkbox" class="subfieldpick" id="rec_[% record.recordid %]_[% subfield.subkey %]" />
                                         [% END %]
-                                        <label for="rec_[% record.biblionumber %]_[% subfield.subkey %]"><span class="subfield">[% subfield.subtag %]</span> / [% subfield.value %]</label>
+                                        <label for="rec_[% record.recordid %]_[% subfield.subkey %]"><span class="subfield">[% subfield.subtag %]</span> / [% subfield.value %]</label>
                                         <input type="hidden" name="tag_[% field.tag %]_code_[% subfield.subtag %]_[% field.key %]_[% subfield.subkey %]" value="[% subfield.subtag %]" />
                                         <input type="hidden" name="tag_[% field.tag %]_subfield_[% subfield.subtag %]_[% subfield.key %]_[% subfield.subkey %]" value="[% subfield.value %]" />
                                     </li>
@@ -50,8 +50,8 @@
     <ul>
         [% FOREACH record IN sourcerecords %]
             <li>
-                <a href="#tabrecord[% record.biblionumber %]">
-                    [% record.biblionumber %]
+                <a href="#tabrecord[% record.recordid %]">
+                    [% record.recordid %]
                     [% IF record.reference %](ref)[% END %]
                 </a>
             </li>
index 78ad394..a029c3e 100644 (file)
@@ -15,15 +15,15 @@ div#result { margin-top: 1em; }
 
     // When submiting the form
     function mergeformsubmit() {
-        $("ul#ulrecord1").remove();
-        $("ul#ulrecord2").remove();
-}
+        $('#tabs').remove();
+    }
 
 $(document).ready(function(){
     // Getting marc structure via ajax
     tagslib = [];
     $.getJSON("/cgi-bin/koha/authorities/merge_ajax.pl", {frameworkcode : "[% framework %]" }, function(json) {
         tagslib = json;
+        rebuild_target($("#tabs"), $("#resultul"));
     });
 
     $('.preview-merge-reference').click(function (ev) {
@@ -129,7 +129,7 @@ function changeFramework(fw) {
 
 <div class="yui-g">
 <div class="yui-u first">
-[% PROCESS mergesource %]
+[% PROCESS mergesource sourcerecords=records %]
 </div>
 <div class="yui-u">
 [% PROCESS mergetarget %]