Bug 21526: Use the 'url' filter when needed
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / tools / manage-marc-import.tt
index e6bf950..f3b7a02 100644 (file)
-[% 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 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 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  colspan="4"><a href="#" class="merge_auth">Search for a record to merge in a new window</a></td>
-        </tr>
-    [% END %]
-[% END %]
-
+[% USE raw %]
+[% USE Asset %]
+[% SET footerjs = 1 %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Koha &rsaquo; Tools &rsaquo; Manage staged MARC records
 [% IF ( import_batch_id ) %]
- &rsaquo; Batch [% import_batch_id %]
+ &rsaquo; Batch [% import_batch_id | html %]
 [% END %]
 </title>
 [% INCLUDE 'doc-head-close.inc' %]
-<script type="text/javascript" src="[% interface %]/[% theme %]/js/background-job-progressbar.js"></script>
-<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
-[% INCLUDE 'datatables.inc' %]
-<script type="text/javascript">
-//<![CDATA[
-var MSG_CONFIRM_CLEAN = _("Clear all reservoir records staged in this batch?  This cannot be undone.");
-var MSG_CONFIRM_UNDO_IMPORT = _("Are you sure you want to undo the import of this batch into the catalog?");
-var MSG_CONFIRM_DELETE = _("Are you sure you want to permanently delete this batch?");
-
-$(document).ready(function(){
-  $("#staged-record-matching-rules select").change(function(){
-      var str = $(this).attr("id");
-      $("#reset_"+str).parent().show();
-  });
-  $("a.reset").click(function(){
-      var str = $(this).attr("id");
-      str = str.replace("reset_","")
-      $("#"+str+" option[selected='selected']").attr("selected","selected");
-      $(this).parent().hide();
-  });
-
-  [% IF import_batch_id %]
-      $("#records-table").dataTable($.extend(true, {}, dataTablesDefaults, {
-          "bAutoWidth": false,
-          "bFilter": false,
-          "bProcessing": true,
-          "bServerSide": true,
-          "sAjaxSource": 'batch_records_ajax.pl',
-          "sPaginationType": "full_numbers",
-          "sDom": '<"top pager"iflp>rt<"bottom pager"flp><"clear">',
-          "aoColumns": [
-              { "mDataProp": "import_record_id" },
-              { "mDataProp": "citation" },
-              { "mDataProp": "status" },
-              { "mDataProp": "overlay_status" },
-              { "mDataProp": "match_citation" },
-              { "mDataProp": "diff_url" },
-              { "mDataProp": "matched" }
-          ],
-          "fnServerData": function ( sSource, aoData, fnCallback ) {
-              aoData.push( { "name": "import_batch_id", "value": [% import_batch_id %] } );
-
-              $.ajax({
-                  'dataType': 'json',
-                  'type': 'POST',
-                  'url': sSource,
-                  'data': aoData,
-                  'success': function(json){
-                      fnCallback(json);
-                  }
-              });
-          },
-          "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
-            [% IF ( record_type == 'auth' ) %]
-                var record_details_url = "/cgi-bin/koha/authorities/detail.pl?authid=";
-            [% ELSE %]
-                var record_details_url = "/cgi-bin/koha/catalogue/detail.pl?biblionumber=";
-            [% END %]
-
-            $('td:eq(1)', nRow).html(
-                '<a href="/cgi-bin/koha/catalogue/showmarc.pl?importid=' + aData['import_record_id'] + '&viewas=html" class="previewMARC">' + aData['citation'] + '</a>'
-            );
-
-            $('td:eq(2)', nRow).html(
-                aData['status'] == 'imported' ? _("Imported") :
-                aData['status'] == 'ignored'  ? _("Ignored")  :
-                aData['status'] == 'reverted' ? _("Reverted") :
-                aData['status'] == 'staged'   ? _("Staged")   :
-                aData['status'] == 'error'    ? _("Error")    :
-                aData['status']
-            );
-
-            $('td:eq(3)', nRow).html(
-                aData['overlay_status'] == 'no_match'      ? _("No match")       :
-                aData['overlay_status'] == 'match_applied' ? _("Match applied")  :
-                aData['overlay_status'] == 'auto_match'    ? _("Match found")    :
-                aData['overlay_status']
-            );
-
-            if ( aData['match_id'] ) {
-                [% IF ( record_type == 'auth' ) -%]
-                var matching_msg = _("Matches authority %s (score=%s):%s");
-                [%- ELSE -%]
-                var matching_msg = _("Matches biblio %s (score=%s):%s");
-                [%- END %]
-                $('td:eq(4)', nRow).html(
-                    matching_msg.format(aData['match_id'], aData['score'],
-                    '<a target="_blank" href="' + record_details_url
-                    + aData['match_id'] + '">' + aData['match_citation'] + '</a>')
-                );
-            }
-            if (aData['diff_url']){
-                $('td:eq(5)', nRow).html(
-                    '<a href="'+aData['diff_url']+'">View</a>'
-                );
-            }
-            $('td:eq(6)', nRow).html(
-                '<a target="_blank" href="' + record_details_url
-                    + aData['matched'] + '">' + aData['matched'] + '</a>'
-            );
-          },
-      }));
-    [% END %]
-    $("body").on("click",".previewMARC", function(e){
-        e.preventDefault();
-        var ltitle = $(this).text();
-        var page = $(this).attr("href");
-        $("#marcPreviewLabel").text(ltitle);
-        $("#marcPreview .modal-body").load(page + " table");
-        $('#marcPreview').modal({show:true});
-    });
-    $("#marcPreview").on("hidden", function(){
-        $("#marcPreviewLabel").html("");
-        $("#marcPreview .modal-body").html("<div id=\"loading\"><img src=\"[% interface %]/[% theme %]/img/loading-small.gif\" alt=\"\" /> "+_("Loading")+"</div>");
-    });
-});
-
-//]]>
-</script>
-<style type="text/css">
-       #jobpanel,#jobstatus,#jobfailed { display : none; }
-       #jobstatus { margin:.4em; }
-    #jobprogress{ width:200px;height:10px;border:1px solid #666;background:url('[% interface %]/[% theme %]/img/progress.png') -300px 0px no-repeat; } span.change-status { font-style:italic; color:#666; display:none; }#marcPreview { width : 80%; margin-left : -40%; } @media (max-width: 767px) { #marcPreview { margin: 0; width : auto; } }
+[% Asset.css("css/datatables.css") | $raw %]
+<style>
+    #jobpanel,#jobstatus,#jobfailed { display : none; }
+    span.change-status { font-style:italic; color:#666; display:none; }
 </style>
 </head>
 <body id="tools_manage-marc-import" class="tools">
@@ -164,22 +21,21 @@ $(document).ready(function(){
 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> 
 [% IF ( import_batch_id ) %]
  &rsaquo;
- <a href="[% script_name %]">Manage staged MARC records</a>
- &rsaquo; Batch [% import_batch_id %]
+ <a href="[% script_name | url %]">Manage staged MARC records</a>
+ &rsaquo; Batch [% import_batch_id | html %]
 [% ELSE %]
  &rsaquo; Manage staged MARC records
 [% END %]
 </div>
 
-<div id="doc3" class="yui-t2">
-   
-   <div id="bd">
-       <div id="yui-main">
-       <div class="yui-b">
+<div class="main container-fluid">
+    <div class="row">
+        <div class="col-sm-10 col-sm-push-2">
+            <main>
 
 <h1>Manage staged MARC records
 [% IF ( import_batch_id ) %]
- &rsaquo; Batch [% import_batch_id %]
+ &rsaquo; Batch [% import_batch_id | html %]
 [% END %]
 </h1>
 [% IF ( label_batch_msg ) %]
@@ -188,12 +44,12 @@ $(document).ready(function(){
 [% ELSE %]
 <div class="dialog message">
 [% END %]
-<b><p>[% label_batch_msg %]</p></b>
+<b><p>[% label_batch_msg | html %]</p></b>
 </div>
 [% END %]
 
 [% IF ( did_clean ) %]
-  <div class="dialog message">Cleaned import batch #[% import_batch_id %]</div>
+  <div class="dialog message">Cleaned import batch #[% import_batch_id | html %]</div>
 [% END %]
 
 [% IF ( did_delete ) %]
@@ -212,10 +68,10 @@ $(document).ready(function(){
 [% IF ( batch_info ) %]
 
 [% IF ( can_commit ) %]
-<form action="[% script_name %]" method="post">
+<form action="[% script_name | html %]" method="post">
 <input type="hidden" name="op" value="redo-matching" />
-<input type="hidden" name="import_batch_id" value="[% import_batch_id %]" />
-<input type="hidden" name="current_matcher_id" value="[% current_matcher_id %]" />
+<input type="hidden" name="import_batch_id" value="[% import_batch_id | html %]" />
+<input type="hidden" name="current_matcher_id" value="[% current_matcher_id | html %]" />
 [% END %]
 
   [% IF ( rematch_attempted ) %]
@@ -223,7 +79,7 @@ $(document).ready(function(){
       <div class="dialog alert">Failed to apply different matching rule</div>
     [% ELSE %]
       <div class="dialog message">Applied different matching rule.  Number of records matched now
-       [% num_with_matches %]
+       [% num_with_matches | html %]
       </div>
     [% END %]
   [% END %]
@@ -239,10 +95,10 @@ $(document).ready(function(){
 
 <fieldset class="rows" id="staged-record-matching-rules">
   <ol>
-    <li><span class="label">File name:</span> [% file_name %]</li>
-    <li><span class="label">Comments:</span> [% IF ( comments ) %][% comments %][% ELSE %](none)[% END %]</li>
+    <li><span class="label">File name:</span> [% file_name | html %]</li>
+    <li><span class="label">Comments:</span> [% IF ( comments ) %][% comments | html %][% ELSE %](none)[% END %]</li>
     <li><span class="label">Type:</span> [% IF ( record_type == 'auth' ) %]Authority records[% ELSE %]Bibliographic records[% END %]</li>
-    <li><span class="label">Staged:</span> [% upload_timestamp %]</li>
+    <li><span class="label">Staged:</span> [% upload_timestamp | html %]</li>
     <li><span class="label">Status:</span>
       [% IF ( import_status == 'cleaned' ) %]
          Cleaned
@@ -257,7 +113,7 @@ $(document).ready(function(){
       [% ELSIF ( import_status == 'staged' ) %]
           Staged
       [% ELSE %]
-          [% import_status %]
+          [% import_status | html %]
       [% END %]
       </li>
     <li>
@@ -265,17 +121,17 @@ $(document).ready(function(){
        <option value="">Do not look for matching records</option> 
        [% FOREACH available_matcher IN available_matchers %]
           [% IF ( available_matcher.selected ) %]
-          <option value="[% available_matcher.matcher_id %]" selected="selected">
-             [% available_matcher.code %] ([% available_matcher.description %])
+          <option value="[% available_matcher.matcher_id | html %]" selected="selected">
+             [% available_matcher.code | html %] ([% available_matcher.description | html %])
           </option>
           [% ELSE %]
-          <option value="[% available_matcher.matcher_id %]">
-            [% available_matcher.code %] ([% available_matcher.description %])
+          <option value="[% available_matcher.matcher_id | html %]">
+            [% available_matcher.code | html %] ([% available_matcher.description | html %])
           </option>
           [% END %]
        [% END %]
     </select> <span class="change-status">Changed. <a href="#" class="reset" id="reset_new_matcher_id">Reset</a></span>[% ELSE %]<span class="label">Matching rule applied</span>[% IF ( current_matcher_id ) %]
-  [% current_matcher_code %] ([% current_matcher_description %])
+  [% current_matcher_code | html %] ([% current_matcher_description | html %])
 [% ELSE %]
   No matching rule in effect
 [% END %][% END %]
@@ -293,7 +149,7 @@ $(document).ready(function(){
             [% ELSIF ( overlay_action == 'ignore' ) %]
                 Ignore incoming record (its items may still be processed)
             [% ELSE %]
-                [% overlay_action %]
+                [% overlay_action | html %]
             [% END %]
         [% END %]</li>
      
@@ -308,7 +164,7 @@ $(document).ready(function(){
             [% ELSIF ( nomatch_action == 'ignore' ) %]
                 Ignore incoming record (its items may still be processed)
             [% ELSE %]
-                [% nomatch_action %]
+                [% nomatch_action | html %]
             [% END %]
         [% END %]
     </li>
@@ -329,7 +185,7 @@ $(document).ready(function(){
             [% ELSIF ( item_action == 'ignore' ) %]
                 Ignore items
             [% ELSE %]
-                [% item_action %]
+                [% item_action | html %]
             [% END %]
         [% END %]
     </li>
@@ -341,35 +197,35 @@ $(document).ready(function(){
 
 <div>
   [% IF ( can_commit ) %]
-  <form action="[% script_name %]" method="post">
+  <form action="[% script_name | html %]" method="post" id="import_batch_form">
     <input type="hidden" name="op" value="commit-batch" />
     <input type="hidden" name="runinbackground" value="" />
     <input type="hidden" name="completedJobID" value="" />
-    <input type="hidden" name="import_batch_id" value="[% import_batch_id %]" />
+    <input type="hidden" name="import_batch_id" value="[% import_batch_id | html %]" />
     <fieldset class="action">
-    <input type="submit" class="button" name="mainformsubmit" value="Import this batch into the catalog" onclick="return submitBackgroundJob(this.form);" />
-    <br/>
     [% IF ( record_type != 'auth' ) %]
     Add new bibliographic records into this framework:
     <select name="framework" id="frameworks">
       <option value="">Default</option>
       [% FOREACH framework IN frameworks %]
-          <option value="[% framework.value %]">[% framework.label %]</option>
+          <option value="[% framework.frameworkcode | html %]">[% framework.frameworktext | html %]</option>
       [% END %]
     </select>
     [% END %]
+    <br/>
+    <input type="submit" class="button" name="mainformsubmit" value="Import this batch into the catalog" />
     </fieldset>
   </form>
-  <div id="jobpanel"><div id="jobstatus">Job progress: <div id="jobprogress"></div> <span id="jobprogresspercent">0</span>%</div>
+  <div id="jobpanel"><div id="jobstatus" class="progress_panel">Job progress: <div id="jobprogress"></div> <span id="jobprogresspercent">0</span>%</div>
      <div id="jobfailed"></div></div>
   [% END %]
   [% IF ( can_revert ) %]
-  <form action="[% script_name %]" method="post">
+  <form action="[% script_name | html %]" method="post" id="revert_batch_form">
     <input type="hidden" name="op" value="revert-batch" />
     <input type="hidden" name="runinbackground" value="" />
     <input type="hidden" name="completedJobID" value="" />
-    <input type="hidden" name="import_batch_id" value="[% import_batch_id %]" />
-    <fieldset class="action"><input type="submit" class="button" name="mainformsubmit" value="Undo import into catalog" onclick="return confirm(MSG_CONFIRM_UNDO_IMPORT) && submitBackgroundJob(this.form);" /></fieldset>
+    <input type="hidden" name="import_batch_id" value="[% import_batch_id | html %]" />
+    <fieldset class="action"><input type="submit" class="button" name="mainformsubmit" value="Undo import into catalog" /></fieldset>
   </form>
   <div id="jobpanel"><div id="jobstatus">Job progress: <div id="jobprogress"></div> <span id="jobprogresspercent">0</span>%</div>
      <div id="jobfailed"></div></div>
@@ -378,26 +234,26 @@ $(document).ready(function(){
   [% IF ( did_commit ) %]
   <div class="dialog message">Completed import of records</div>
   <table>
-  <tr><td>Number of records added</td><td>[% num_added %]</td></tr>
-  <tr><td>Number of records updated</td><td>[% num_updated %]</td></tr>
-  <tr><td>Number of records ignored</td><td>[% num_ignored %]</td></tr>
+  <tr><td>Number of records added</td><td>[% num_added | html %]</td></tr>
+  <tr><td>Number of records updated</td><td>[% num_updated | html %]</td></tr>
+  <tr><td>Number of records ignored</td><td>[% num_ignored | html %]</td></tr>
   [% IF ( record_type == 'biblio' ) %]
-      <tr><td>Number of items added</td><td>[% num_items_added %]</td></tr>
-      <tr><td>Number of items replaced</td><td>[% num_items_replaced %]</td></tr>
-      <tr><td>Number of items ignored because of duplicate barcode</td><td>[% num_items_errored %]</td></tr>
+      <tr><td>Number of items added</td><td>[% num_items_added | html %]</td></tr>
+      <tr><td>Number of items replaced</td><td>[% num_items_replaced | html %]</td></tr>
+      <tr><td>Number of items ignored because of duplicate barcode</td><td>[% num_items_errored | html %]</td></tr>
   [% END %]
   </table>
   [% END %]
   [% IF ( did_revert ) %]
   <div class="dialog message">Success: Import reversed</div>
   <table>
-  <tr><td>Number of records deleted</td><td>[% num_deleted %]</td></tr>
+  <tr><td>Number of records deleted</td><td>[% num_deleted | html %]</td></tr>
   [% IF ( record_type == 'biblio' ) %]
-    <tr><td>Number of items deleted</td><td>[% num_items_deleted %]</td></tr>
-    <tr><td>Number of records not deleted due to items on loan</td><td>[% num_errors %]</td></tr>
+    <tr><td>Number of items deleted</td><td>[% num_items_deleted | html %]</td></tr>
+    <tr><td>Number of records not deleted due to items on loan</td><td>[% num_errors | html %]</td></tr>
   [% END %]
-  <tr><td>Number of records changed back</td><td>[% num_reverted %]</td></tr>
-  <tr><td>Number of records ignored</td><td>[% num_ignored %]</td></tr>
+  <tr><td>Number of records changed back</td><td>[% num_reverted | html %]</td></tr>
+  <tr><td>Number of records ignored</td><td>[% num_ignored | html %]</td></tr>
   </table>
   [% END %]
 [% END %]
@@ -406,12 +262,11 @@ $(document).ready(function(){
 [% IF ( batch_list ) %]
   [% IF ( pages ) %]
 <div class="pages">
-Page 
     [% FOREACH page IN pages %]
       [% IF ( page.current_page ) %]
-      <span class="current">[% page.page_number %]</span>
+      <span class="current">[% page.page_number | html %]</span>
       [% ELSE %]
-      <a class="nav" href="[% page.script_name %]?offset=[% page.offset %]">[% page.page_number %]</a>
+      <a href="[% page.script_name | url %]?offset=[% page.offset | uri %]">[% page.page_number | html %]</a>
       [% END %]
     [% END %]
 </div>
@@ -430,9 +285,9 @@ Page
   </tr>
   [% FOREACH batch_lis IN batch_list %]
     <tr>
-    <td>[% batch_lis.import_batch_id %]</td>
-    <td><a href="[% batch_lis.script_name %]?import_batch_id=[% batch_lis.import_batch_id %]">[% batch_lis.file_name %]</a></td>
-    <td>[% batch_lis.comments %]</td>
+    <td>[% batch_lis.import_batch_id | html %]</td>
+    <td><a href="[% batch_lis.script_name | url %]?import_batch_id=[% batch_lis.import_batch_id | uri %]">[% batch_lis.file_name | html %]</a></td>
+    <td>[% batch_lis.comments | html %]</td>
     <td>[% IF ( batch_lis.record_type == 'auth' ) %]Authority[% ELSE %]Bibliographic[% END %]</td>
     <td>
       [% IF ( batch_lis.import_status == 'cleaned' ) %]
@@ -448,23 +303,24 @@ Page
       [% ELSIF ( batch_lis.import_status == 'staged' ) %]
           Staged
       [% ELSE %]
-          [% batch_lis.import_status %]
+          [% batch_lis.import_status | html %]
       [% END %]
     </td>
-    <td>[% batch_lis.upload_timestamp %]</td>
-    <td>[% batch_lis.num_records %]</td>
-    <td>[% batch_lis.num_items %][% IF ( batch_lis.num_items ) %] <a href="[% batch_lis.script_name %]?import_batch_id=[% batch_lis.import_batch_id %]&amp;op=create_labels">(Create label batch)</a>[% END %]</td>
-    <td class="actions">[% IF ( batch_lis.can_clean ) %]
-          <form method="post" action="[% batch_lis.script_name %]" name="clean_batch_[% batch_lis.import_batch_id %]" id="clean_batch_[% batch_lis.import_batch_id %]" >
-            <input type="hidden" name="import_batch_id" value="[% batch_lis.import_batch_id %]" />
+    <td>[% batch_lis.upload_timestamp | html %]</td>
+    <td>[% batch_lis.num_records | html %]</td>
+    <td>[% batch_lis.num_items | html %][% IF ( batch_lis.num_items ) %] <a href="[% batch_lis.script_name | url %]?import_batch_id=[% batch_lis.import_batch_id | uri %]&amp;op=create_labels">(Create label batch)</a>[% END %]</td>
+    <td class="actions">
+        [% IF ( batch_lis.can_clean ) %]
+          <form method="post" action="[% batch_lis.script_name | html %]" name="clean_batch_[% batch_lis.import_batch_id | html %]" id="clean_batch_[% batch_lis.import_batch_id | html %]" class="batch_form batch_clean" >
+            <input type="hidden" name="import_batch_id" value="[% batch_lis.import_batch_id | html %]" />
             <input type="hidden" name="op" value="clean-batch" />
-            <button class="btn btn-mini" onclick="return confirm(MSG_CONFIRM_CLEAN);"><i class="fa fa-eraser"></i> Clean</button>
+            <button type="submit" class="btn btn-default btn-xs"><i class="fa fa-eraser"></i> Clean</button>
           </form>
         [% ELSIF ( batch_lis.import_status == 'cleaned' ) %]
-          <form method="post" action="/cgi-bin/koha/tools/manage-marc-import.pl" name="delete_batch_[% batch_lis.import_batch_id %]" id="delete_batch_[% batch_lis.import_batch_id %]">
-            <input type="hidden" name="import_batch_id" value="[% batch_lis.import_batch_id %]" />
+          <form method="post" action="/cgi-bin/koha/tools/manage-marc-import.pl" name="delete_batch_[% batch_lis.import_batch_id | html %]" id="delete_batch_[% batch_lis.import_batch_id | html %]" class="batch_form batch_delete">
+            <input type="hidden" name="import_batch_id" value="[% batch_lis.import_batch_id | html %]" />
             <input type="hidden" name="op" value="delete-batch" />
-            <button class="btn btn-mini" onclick="return confirm(MSG_CONFIRM_DELETE);"><i class="fa fa-trash"></i> Delete</button>
+            <button type="submit" class="btn btn-default btn-xs"><i class="fa fa-trash"></i> Delete</button>
           </form>
         [% END %]
     </td>
@@ -473,12 +329,11 @@ Page
 </table>
   [% IF ( pages ) %]
 <div class="pages">
-Page 
     [% FOREACH page IN pages %]
       [% IF ( page.current_page ) %]
-      <span class="current">[% page.page_number %]</span>
+      <span class="current">[% page.page_number | html %]</span>
       [% ELSE %]
-      <a class="nav" href="[% page.script_name %]?offset=[% page.offset %]">[% page.page_number %]</a>
+      <a href="[% page.script_name | url %]?offset=[% page.offset | uri %]">[% page.page_number | html %]</a>
       [% END %]
     [% END %]
 </div>
@@ -494,30 +349,166 @@ 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><abbr title="Differences between the original bibliographic record and the imported">Diff</abbr></th>
                 <th>Record</th>
             </tr>
         </thead>
     </table>
 
-    <div id="marcPreview" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="marcPreviewLabel" aria-hidden="true">
+    <div id="marcPreview" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="marcPreviewLabel" aria-hidden="true">
+        <div class="modal-dialog">
+        <div class="modal-content">
         <div class="modal-header">
             <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
             <h3 id="marcPreviewLabel">MARC preview</h3>
         </div>
         <div class="modal-body">
-            <div id="loading"> <img src="[% interface %]/[% theme %]/img/loading-small.gif" alt="" /> Loading </div>
+            <div id="loading"> <img src="[% interface | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading </div>
         </div>
         <div class="modal-footer">
-            <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
+            <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
+        </div>
+        </div>
         </div>
     </div>
 [% END %]
 
-</div>
-</div>
-<div class="yui-b">
-[% INCLUDE 'tools-menu.inc' %]
-</div>
-</div>
+            </main>
+        </div> <!-- /.col-sm-10.col-sm-push-2 -->
+
+        <div class="col-sm-2 col-sm-pull-10">
+            <aside>
+                [% INCLUDE 'tools-menu.inc' %]
+            </aside>
+        </div> <!-- .col-sm-2.col-sm-pull-10 -->
+     </div> <!-- /.row -->
+
+[% MACRO jsinclude BLOCK %]
+    [% Asset.js("js/tools-menu.js") | $raw %]
+    [% Asset.js("js/background-job-progressbar.js") | $raw %]
+    [% INCLUDE 'datatables.inc' %]
+    <script>
+        $(document).ready(function(){
+            $("#staged-record-matching-rules select").change(function(){
+                var str = $(this).attr("id");
+                $("#reset_"+str).parent().show();
+            });
+            $("a.reset").click(function(){
+                var str = $(this).attr("id");
+                str = str.replace("reset_","")
+                $("#"+str+" option[selected='selected']").attr("selected","selected");
+                $(this).parent().hide();
+            });
+
+            [% IF import_batch_id %]
+                $("#records-table").dataTable($.extend(true, {}, dataTablesDefaults, {
+                    "bAutoWidth": false,
+                    "bFilter": false,
+                    "bProcessing": true,
+                    "bServerSide": true,
+                    "sAjaxSource": 'batch_records_ajax.pl',
+                    "sPaginationType": "full_numbers",
+                    "sDom": '<"top pager"iflp>rt<"bottom pager"flp><"clear">',
+                    "aoColumns": [
+                        { "mDataProp": "import_record_id" },
+                        { "mDataProp": "citation" },
+                        { "mDataProp": "status" },
+                        { "mDataProp": "overlay_status" },
+                        { "mDataProp": "match_citation" },
+                        { "mDataProp": "diff_url" },
+                        { "mDataProp": "matched" }
+                    ],
+                    "fnServerData": function ( sSource, aoData, fnCallback ) {
+                        aoData.push( { "name": "import_batch_id", "value": [% import_batch_id | html %] } );
+
+                        $.ajax({
+                            'dataType': 'json',
+                            'type': 'POST',
+                            'url': sSource,
+                            'data': aoData,
+                            'success': function(json){
+                                fnCallback(json);
+                            }
+                        });
+                    },
+                    "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
+                      [% IF ( record_type == 'auth' ) %]
+                          var record_details_url = "/cgi-bin/koha/authorities/detail.pl?authid=";
+                      [% ELSE %]
+                          var record_details_url = "/cgi-bin/koha/catalogue/detail.pl?biblionumber=";
+                      [% END %]
+
+                      $('td:eq(1)', nRow).html(
+                          '<a href="/cgi-bin/koha/catalogue/showmarc.pl?importid=' + aData['import_record_id'] + '&viewas=html" class="previewMARC">' + aData['citation'] + '</a>'
+                      );
+
+                      $('td:eq(2)', nRow).html(
+                          aData['status'] == 'imported' ? _("Imported") :
+                          aData['status'] == 'ignored'  ? _("Ignored")  :
+                          aData['status'] == 'reverted' ? _("Reverted") :
+                          aData['status'] == 'staged'   ? _("Staged")   :
+                          aData['status'] == 'error'    ? _("Error")    :
+                          aData['status']
+                      );
+
+                      $('td:eq(3)', nRow).html(
+                          aData['overlay_status'] == 'no_match'      ? _("No match")       :
+                          aData['overlay_status'] == 'match_applied' ? _("Match applied")  :
+                          aData['overlay_status'] == 'auto_match'    ? _("Match found")    :
+                          aData['overlay_status']
+                      );
+
+                      if ( aData['match_id'] ) {
+                          [% IF ( record_type == 'auth' ) -%]
+                          var matching_msg = _("Matches authority %s (score=%s):%s");
+                          [%- ELSE -%]
+                          var matching_msg = _("Matches bibliographic record %s (score=%s):%s");
+                          [%- END %]
+                          $('td:eq(4)', nRow).html(
+                              matching_msg.format(aData['match_id'], aData['score'],
+                              '<a target="_blank" href="' + record_details_url
+                              + aData['match_id'] + '">' + aData['match_citation'] + '</a>')
+                          );
+                      }
+                      if (aData['diff_url']){
+                          $('td:eq(5)', nRow).html(
+                              '<a href="'+aData['diff_url']+'">' + _("View") + '</a>'
+                          );
+                      }
+                      $('td:eq(6)', nRow).html(
+                          '<a target="_blank" href="' + record_details_url
+                              + aData['matched'] + '">' + aData['matched'] + '</a>'
+                      );
+                    },
+                }));
+                $("#import_batch_form").on("submit",function(){
+                    return submitBackgroundJob( document.getElementById("import_batch_form") );
+                });
+                $("#revert_batch_form").on("submit",function(){
+                    return confirm( _("Are you sure you want to undo the import of this batch into the catalog?") ) &&   submitBackgroundJob( document.getElementById("revert_batch_form") );
+                });
+            [% END %]
+            $("body").on("click",".previewMARC", function(e){
+                e.preventDefault();
+                var ltitle = $(this).text();
+                var page = $(this).attr("href");
+                $("#marcPreviewLabel").text(ltitle);
+                $("#marcPreview .modal-body").load(page + " table");
+                $('#marcPreview').modal({show:true});
+            });
+            $("#marcPreview").on("hidden.bs.modal", function(){
+                $("#marcPreviewLabel").html("");
+                $("#marcPreview .modal-body").html("<div id=\"loading\"><img src=\"[% interface | html %]/[% theme | html %]/img/spinner-small.gif\" alt=\"\" /> "+_("Loading")+"</div>");
+            });
+            $(".batch_form").on("submit",function(){
+                if( $(this).hasClass("batch_delete") ){
+                    return confirm( _("Are you sure you want to permanently delete this batch?") );
+                } else {
+                    return confirm( _("Clear all reservoir records staged in this batch?  This cannot be undone.") );
+                }
+            });
+        });
+    </script>
+[% END %]
+
 [% INCLUDE 'intranet-bottom.inc' %]