Bug 11876 - Add a diff view for staged MARC records.
authormbeaulieu <mbeaulieu@inlibro.com>
Thu, 7 Aug 2014 17:10:26 +0000 (13:10 -0400)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Fri, 31 Oct 2014 17:24:58 +0000 (14:24 -0300)
New patch should apply correctly.

modified:   C4/ImportBatch.pm
modified:   koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Bug 11876 - Diff column is now displayed.

If a match is found, a 'View' link appears in the Diff column.

Old patch was not implementing datatables, and therefore was not compatible with this version of Koha.
modified:   koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt
modified:   tools/batch_records_ajax.pl

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
These patches have some issues but I'm going to submit a follow-up which
I think will address them all and offer some improvements as well.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
C4/ImportBatch.pm
koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt
tools/batch_records_ajax.pl

index a487cc6..51a0585 100644 (file)
@@ -58,6 +58,7 @@ BEGIN {
     GetStagedWebserviceBatches
     GetImportBatchRangeDesc
     GetNumberOfNonZ3950ImportBatches
+    GetImportBiblios
     GetImportRecordsRange
        GetItemNumbersFromImportBatch
     
@@ -1017,6 +1018,25 @@ sub GetNumberOfNonZ3950ImportBatches {
     return $count;
 }
 
+=head2 GetImportBiblios
+
+  my $results = GetImportBiblios($importid);
+
+=cut
+
+sub GetImportBiblios {
+    my ($import_record_id) = @_;
+
+    my $dbh = C4::Context->dbh;
+    my $query = "SELECT * FROM import_biblios WHERE import_record_id = ?";
+    my $sth = $dbh->prepare_cached($query);
+    $sth->execute($import_record_id);
+    my $results = $sth->fetchall_arrayref({});
+    $sth->finish();
+    return $results;
+
+}
+
 =head2 GetImportRecordsRange
 
   my $results = GetImportRecordsRange($batch_id, $offset, $results_per_group);
index 2b4684a..0b10962 100644 (file)
@@ -1,3 +1,30 @@
+[% BLOCK final_match_link %]
+    [% IF ( record.record_type == 'biblio' ) %]
+        <a target="_blank" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% record.final_match_id %]">[% record.final_match_id %]</a>
+    [% ELSIF ( record.record_type == 'auth' ) %]
+        <a href="/cgi-bin/koha/authorities/detail.pl?authid=[% record.final_match_id %]">[% record.final_match_id %]</a>
+    [% END %]
+[% END %]
+[% BLOCK match_link %]
+    [% IF ( record_lis.match_id ) %]
+        <tr>
+            <td />
+            [% IF ( record.record_type == 'biblio' ) %]
+                <td class="highlight" colspan="5">Matches biblio [% record_lis.match_id %] (score = [% record_lis.match_score %]): <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% record_lis.match_id %]">[% record_lis.match_citation %]</a></td>
+            [% ELSIF ( record.record_type == 'auth' ) %]
+                <td class="highlight" colspan="5">Matches authority [% record_lis.match_id %] (score = [% record_lis.match_score %]): <a href="/cgi-bin/koha/authorities/detail.pl?authid=[% record_lis.match_id %]">[% record_lis.match_citation %]</a> |
+        <a href="/cgi-bin/koha/authorities/merge.pl?mergereference=breeding&authid=[% record_lis.match_id %]&authid=[% record_lis.import_record_id %]">Merge</a>
+                </td>
+            [% END %]
+        </tr>
+    [% ELSIF ( record.record_type == 'auth') %]
+        <tr data-authid="[% record_lis.import_record_id %]">
+            <td />
+            <td class="highlight" colspan="4"><a href="#" class="merge_auth">Search for a record to merge in a new window</a></td>
+        </tr>
+    [% END %]
+[% END %]
+
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Koha &rsaquo; Tools &rsaquo; Manage staged MARC records
 [% IF ( import_batch_id ) %]
@@ -39,7 +66,8 @@ $(document).ready(function(){
               { "mDataProp": "status" },
               { "mDataProp": "overlay_status" },
               { "mDataProp": "match_citation" },
-              { "mDataProp": "matched" },
+              { "mDataProp": "diff_url" },
+              { "mDataProp": "matched" }
           ],
           "fnServerData": function ( sSource, aoData, fnCallback ) {
               aoData.push( { "name": "import_batch_id", "value": [% import_batch_id %] } );
@@ -93,8 +121,12 @@ $(document).ready(function(){
                     + aData['match_id'] + '">' + aData['match_citation'] + '</a>')
                 );
             }
-
-            $('td:eq(5)', nRow).html(
+            if (aData['diff_url']){
+                $('td:eq(5)', nRow).html(
+                    '<a rel="gb_page_center[960,600]" href="'+aData['diff_url']+'">View</a>'
+                );
+            }
+            $('td:eq(6)', nRow).html(
                 '<a target="_blank" href="' + record_details_url
                     + aData['matched'] + '">' + aData['matched'] + '</a>'
             );
@@ -444,6 +476,7 @@ Page
                 <th>Status</th>
                 <th>Match type</th>
                 <th>Match details</th>
+                <th><abbr title="Differences between the original biblio and the imported" lang="en">Diff</abbr></th>
                 <th>Record</th>
             </tr>
         </thead>
index bc0fe82..57d7bc0 100755 (executable)
@@ -107,6 +107,7 @@ foreach my $record (@$records) {
           || q{},
         score => $#$match > -1 ? $match->[0]->{'score'} : 0,
         match_id => $match_id,
+        diff_url => $match_id ? "/cgi-bin/koha/tools/showdiffmarc.pl?importid=$record->{import_record_id}&id=$match_id" : undef
       };
 }