Bug 12759: (follow-up) Using tabs for diff ways of adding records
[srvgit] / koha-tmpl / intranet-tmpl / prog / en / modules / tools / batch_record_modification.tt
index b9433e7..a8f9b7c 100644 (file)
@@ -1,70 +1,13 @@
+[% USE raw %]
+[% USE Asset %]
+[% SET footerjs = 1 %]
 [% PROCESS 'authorities-search-results.inc' %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Koha &rsaquo; Tools &rsaquo; Batch record modification</title>
 [% INCLUDE 'doc-head-close.inc' %]
-[% INCLUDE 'greybox.inc' %]
-<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
-[% INCLUDE 'datatables.inc' %]
-<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
-<script type="text/javascript" src="[% themelang %]/js/background-job-progressbar.js"></script>
-<script type="text/javascript">
-//<![CDATA[
-$(document).ready(function() {
-  $("#selectall").click(function(e){
-    e.preventDefault();
-    $(".records").checkCheckboxes();
-  });
-  $("#clearall").click(function(e){
-    e.preventDefault();
-    $(".records").unCheckCheckboxes();
-  });
-  $("#selectall").click();
-
-  $("table#biblios").dataTable($.extend(true, {}, dataTablesDefaults, {
-    "aoColumnDefs": [
-      { "aTargets": [ 0, 3 ], "bSortable": false, "bSearchable": false },
-      { "aTargets": [ 1 ], "sType": "num-html" }
-    ],
-    "sDom": 't',
-    "aaSorting": [],
-    "bPaginate": false
-  }));
-
-  $("table#authorities").dataTable($.extend(true, {}, dataTablesDefaults, {
-    "aoColumnDefs": [
-      { "aTargets": [ 0, 3 ], "bSortable": false, "bSearchable": false },
-      { "aTargets": [ 1 ], "sType": "num-html" }
-    ],
-    "sDom": 't',
-    "aaSorting": [],
-    "bPaginate": false
-  }));
-
-  $("#mainformsubmit").click(function(){
-    if ( $("#marc_modification_template_id").val() > 0 ) {
-      return submitBackgroundJob(document.getElementById("process"));
-    }
-    alert(_("Please select a modification template."));
-    return false;
-  });
-
-  $("#marc_modification_template_id").change(function(){
-    var url = "/cgi-bin/koha/svc/records/preview?"
-    var mmtid = $(this).val();
-    $("a.preview").each(function(){
-      $(this).attr("href", url + "record_type=" + $(this).attr("data-record_type") + "&record_id=" + $(this).attr("data-record_id") + "&mmtid=" + mmtid);
-    });
-  });
-
-  $("a.preview").click(function(){
-    // Equivalent to rel="gb_page_center[600,500]"
-    return GB_showCenter(_("Preview MARC"), this.href , 600, 500);
-  });
-
-});
-//]]>
-</script>
+[% Asset.css("css/datatables.css") | $raw %]
 </head>
+
 <body id="tools_batch_record_modification" class="tools">
 [% INCLUDE 'header.inc' %]
 [% INCLUDE 'cat-search.inc' %]
@@ -75,40 +18,48 @@ $(document).ready(function() {
     <a href="/cgi-bin/koha/tools/batch_record_modification.pl">Batch record modification</a>
 </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>Batch record modification</h1>
-  [% FOREACH message IN messages %]
-    [% IF message.type == 'success' %]
-      <div class="dialog message">
-    [% ELSIF message.type == 'warning' %]
-      <div class="dialog alert">
-    [% ELSIF message.type == 'error' %]
-      <div class="dialog error" style="margin:auto;">
-    [% END %]
-                  <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblio.biblionumber %]">[% biblio.title %]</a></td>
-    [% IF message.code == 'no_action_defined_for_the_template' %]
-      The selected template (id=[% message.mmtid%]) does not exist or no action is defined.
-    [% ELSIF message.code == 'biblio_not_exists' %]
-      The biblionumber [% message.biblionumber %] does not exist in the database.
-    [% ELSIF message.code == 'authority_not_exists' %]
-      The authority id [% message.authid %] does not exist in the database.
-    [% ELSIF message.code == 'biblio_not_modified' %]
-      The biblio <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% message.biblionumber %]">[% message.biblionumber %]</a> has not been modified. An error occurred on modifying it.
-    [% ELSIF message.code == 'authority_not_modified' %]
-      The authority <a href="/cgi-bin/koha/authorities/detail.pl?authid=[% message.authid %]">[% message.authid %]</a> has not been modified. An error occurred on modifying it.
-    [% ELSIF message.code == 'biblio_modified' %]
-      The biblio <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% message.biblionumber %]">[% message.biblionumber %]</a> has successfully been modified.
-    [% ELSIF message.code == 'authority_modified' %]
-      The authority <a href="/cgi-bin/koha/authorities/detail.pl?authid=[% message.authid %]">[% message.authid %]</a> has successfully been modified.
-    [% END %]
-    [% IF message.error %]
-      (The error was: [% message.error%], see the Koha logfile for more information).
+
+    [% IF ( messages ) %]
+        <div class="dialog message">
+
+            [% FOREACH message IN messages %]
+                [% IF message.type == 'success' %]
+                    <div><i class="fa fa-check success"></i>
+                [% ELSIF message.type == 'warning' %]
+                    <div><i class="fa fa-warning warn"></i>
+                [% ELSIF message.type == 'error' %]
+                    <div><i class="fa fa-exclamation error"></i>
+                [% END %]
+                [% IF message.code == 'no_action_defined_for_the_template' %]
+                    The selected template (id=[% message.mmtid | html %]) does not exist or no action is defined.
+                [% ELSIF message.code == 'biblio_not_exists' %]
+                    Bibliographic record [% message.biblionumber | html %] does not exist in the database.
+                [% ELSIF message.code == 'authority_not_exists' %]
+                    Authority record [% message.authid | html %] does not exist in the database.
+                [% ELSIF message.code == 'biblio_not_modified' %]
+                    Bibliographic record <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% message.biblionumber | uri %]">[% message.biblionumber | html %]</a> has not been modified. An error occurred on modifying it.
+                [% ELSIF message.code == 'authority_not_modified' %]
+                    Authority record <a href="/cgi-bin/koha/authorities/detail.pl?authid=[% message.authid | uri %]">[% message.authid | html %]</a> has not been modified. An error occurred on modifying it.
+                [% ELSIF message.code == 'biblio_modified' %]
+                    Bibliographic record <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% message.biblionumber | uri %]">[% message.biblionumber | html %]</a> has successfully been modified.
+                [% ELSIF message.code == 'authority_modified' %]
+                    Bibliographic record <a href="/cgi-bin/koha/authorities/detail.pl?authid=[% message.authid | uri %]">[% message.authid | html %]</a> has successfully been modified.
+                [% END %]
+                [% IF message.error %]
+                    (The error was: [% message.error | html %]. See the Koha logfile for more information).
+                [% END %]
+                </div>
+            [% END %]
+
+        </div>
     [% END %]
-    </div>
-  [% END %]
+
   [% IF view == 'form' %]
     <form method="post" enctype="multipart/form-data" action="/cgi-bin/koha/tools/batch_record_modification.pl">
       <fieldset class="rows">
@@ -118,21 +69,60 @@ $(document).ready(function() {
           <li><label for="authority_type">Authorities: </label><input type="radio" name="recordtype" value="authority" id="authority_type" /></li>
         </ol>
       </fieldset>
-      <fieldset class="rows">
-        <legend>Use a file</legend>
-        <ol>
-          <li><label for="uploadfile">File: </label> <input type="file" id="uploadfile" name="uploadfile" /></li>
-        </ol>
-      </fieldset>
-      <fieldset class="rows">
-        <legend>Or enter a list of record numbers</legend>
-        <ol>
-          <li>
-            <label for="recordnumber_list">Record number list (one per line): </label>
-            <textarea rows="10" cols="30" id="recordnumber_list" name="recordnumber_list"></textarea>
-          </li>
-        </ol>
-      </fieldset>
+
+      <br><br>
+
+      <div id="batch_mod_form" class="toptabs">
+        <ul>
+          <li><a href="#uploadfile">Upload a file</a></li>
+          [% IF lists.count %]<li id="show_list_option"><a href="#shelves">Select a list of records</a></li>[% END %]
+          <li><a href="#enterlist">Enter a list of record numbers</a></li>
+        </ul>
+
+        <div id="uploadfile">
+          <fieldset class="rows">
+            <legend>Use a file</legend>
+            <ol>
+              <li><label for="uploadfile">File: </label> <input type="file" id="uploadfile" name="uploadfile" /></li>
+            </ol>
+          </fieldset>
+          &nbsp;
+        </div>
+
+        <div id="shelves">
+          <fieldset class="rows">
+            <legend>Or select a list of records</legend>
+            <ol>
+              <li>
+                <label for="shelf_number">Use records from the following list: </label>
+                <select name="shelf_number" id="shelf_number">
+                  <option value="">Select a list</option>
+                    [% FOREACH list IN lists %]
+                      <option value="[% list.shelfnumber %]">[% list.shelfname %]</option>
+                    [% END %]
+                  </option>
+                </select>
+              </li>
+            </ol>
+          </fieldset>
+          &nbsp;
+        </div>
+
+        <div id="enterlist">
+          <fieldset class="rows">
+            <legend>Or enter a list of record numbers</legend>
+            <ol>
+              <li>
+                <label for="recordnumber_list">List of biblionumbers or authority ids (one per line): </label>
+                <textarea rows="10" cols="30" id="recordnumber_list" name="recordnumber_list"></textarea>
+              </li>
+            </ol>
+          </fieldset>
+          &nbsp;
+        </div>
+
+      </div>
+
       <fieldset class="rows">
         <legend>Use MARC Modification Template:</legend>
         <ol>
@@ -141,7 +131,7 @@ $(document).ready(function() {
             <select name="marc_modification_template_id" id="marc_modification_template_id" required="required">
               <option value="">Select a template</option>
                 [% FOREACH mmt IN MarcModificationTemplatesLoop %]
-                  <option value="[% mmt.template_id %]">[% mmt.name %]</option>
+                  <option value="[% mmt.template_id | html %]">[% mmt.name | html %]</option>
                 [% END %]
             </select>
           </li>
@@ -161,42 +151,60 @@ $(document).ready(function() {
           <option value="">Select a template</option>
           [% FOREACH mmt IN MarcModificationTemplatesLoop %]
             [% IF mmt.selected %]
-              <option value="[% mmt.template_id %]" selected="selected">[% mmt.name %]</option>
+              <option value="[% mmt.template_id | html %]" selected="selected">[% mmt.name | html %]</option>
             [% ELSE %]
-              <option value="[% mmt.template_id %]">[% mmt.name %]</option>
+              <option value="[% mmt.template_id | html %]">[% mmt.name | html %]</option>
             [% END %]
           [% END %]
         </select>
+        <div id="marcPreview" class="modal" 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 | html %]/[% theme | html %]/img/spinner-small.gif" alt="" /> Loading </div>
+                    </div>
+                    <div class="modal-footer">
+                        <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
+                    </div>
+                </div>
+            </div>
+        </div>
         [% IF recordtype == 'biblio' %]
           <div id="toolbar">
-            <a id="selectall" href="#">Select All</a>
-            | <a id="clearall" href="#">Clear All</a>
+            <a id="selectall" href="#"><i class="fa fa-check"></i> Select all</a>
+            | <a id="clearall" href="#"><i class="fa fa-remove"></i> Clear all</a>
           </div>
           <table id="biblios" class="records">
             <thead>
               <tr>
-                <th></th>
+                <th>&nbsp;</th>
                 <th>Biblionumber</th>
                 <th>Title</th>
-                <th>Preview</th>
+                <th>&nbsp;</th>
               </tr>
             </thead>
             <tbody>
               [% FOR biblio IN records %]
                 <tr>
-                  <td><input type="checkbox" name="record_id" value="[% biblio.biblionumber %]" data-items="[% biblio.itemnumbers.size %]" data-issues="[% biblio.issues_count %]" data-reserves="[% biblio.reserves.size %]" /></td>
-                  <td>[% biblio.biblionumber %]</td>
-                  <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblio.biblionumber %]">[% biblio.title %]</a></td>
-                  <td><a href="/cgi-bin/koha/svc/records/preview?record_type=biblio&record_id=[% biblio.biblionumber %]&mmtid=[% mmtid %]" class="preview" data-record_type="biblio" data-record_id="[% biblio.biblionumber %]" data-mmtid="[% mmtid %]" title="Preview MARC" >Preview MARC</a>
+                  <td><input type="checkbox" name="record_id" value="[% biblio.biblionumber | html %]" /></td>
+                  <td>[% biblio.biblionumber | html %]</td>
+                  <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblio.biblionumber | uri %]">[% biblio.title | html %]</a></td>
+                  <td class="actions">
+                    <a href="/cgi-bin/koha/svc/records/preview?record_type=biblio&record_id=[% biblio.biblionumber | uri %]&mmtid=[% mmtid | uri %]" class="previewMARC btn btn-default btn-xs" data-record_type="biblio" data-record_id="[% biblio.biblionumber | html %]" data-mmtid="[% mmtid | html %]" title="Preview MARC"><i class="fa fa-eye"></i> Show MARC</a>
+                  </td>
                 </tr>
               [% END %]
             </tbody>
           </table>
-          <div class="note">Reminder: this action will modify all selected biblios!</div>
+          <div class="note"><i class="fa fa-exclamation"></i> Reminder: this action will modify all selected biblios!</div>
         [% ELSE %]
           <div id="toolbar">
-            <a id="selectall" href="#">Select All</a>
-            | <a id="clearall" href="#">Clear All</a>
+            <a id="selectall" href="#"><i class="fa fa-check"></i> Select all</a>
+            | <a id="clearall" href="#"><i class="fa fa-remove"></i> Clear all</a>
           </div>
           <table id="authorities" class="records">
             <thead>
@@ -204,59 +212,155 @@ $(document).ready(function() {
                 <th></th>
                 <th>Authid</th>
                 <th>Summary</th>
-                <th>Preview</th>
+                <th>&nbsp;</th>
               </tr>
             </thead>
             <tbody>
               [% FOR authority IN records %]
                 <tr>
-                  <td><input type="checkbox" name="record_id" value="[% authority.authid %]" data-usage="[% authority.count_usage %]" /></td>
-                  <td><a href="/cgi-bin/koha/authorities/detail.pl?authid=[% authority.authid %]">[% authority.authid %]</a></td>
+                  <td><input type="checkbox" name="record_id" value="[% authority.authid | html %]" data-usage="[% authority.count_usage | html %]" /></td>
+                  <td><a href="/cgi-bin/koha/authorities/detail.pl?authid=[% authority.authid | uri %]">[% authority.authid | html %]</a></td>
                   <td>[% PROCESS authresult summary=authority.summary %]</td>
-                  <td><a href="/cgi-bin/koha/svc/records/preview?record_type=authority&record_id=[% authority.authid %]&mmtid=[% mmtid %]" class="preview" data-record_type="authority" data-record_id="[% authority.authid %]" data-mmtid="[% mmtid %]" title="Preview MARC" rel="gb_page_center[600,500]">Preview MARC</a>
+                  <td class="actions"><a href="/cgi-bin/koha/svc/records/preview?record_type=authority&record_id=[% authority.authid | uri %]&mmtid=[% mmtid | uri %]" data-record_type="authority" data-record_id="[% authority.authid | html %]" data-mmtid="[% mmtid | html %]" class="previewMARC btn btn-default btn-xs"><i class='fa fa-eye'></i> Show MARC</a>
                 </tr>
               [% END %]
             </tbody>
           </table>
-          <div class="note">Reminder: this action will modify all selected authorities!</div>
+          <div class="note"><i class="fa fa-exclamation"></i> Reminder: this action will modify all selected authorities!</div>
         [% END %]
         <fieldset class="action">
           <input type="hidden" name="op" value="modify" />
-          <input type="hidden" name="recordtype" value="[% recordtype %]" />
+          <input type="hidden" name="recordtype" value="[% recordtype | html %]" />
           <input type="button" id="mainformsubmit" value="Modify selected records" class="button" />
           <input type="hidden" name="runinbackground" id="runinbackground" value="" />
           <input type="hidden" name="completedJobID" id="completedJobID" value="" />
           <a class="cancel" href="/cgi-bin/koha/tools/batch_record_modification.pl">Cancel</a>
         </fieldset>
         <div id="jobpanel">
-          <div id="jobstatus">Job progress: <div id="jobprogress"></div> <span id="jobprogresspercent">0</span>%</div>
+          <div id="jobstatus" class="progress_panel">Job progress: <div id="jobprogress"></div> <span id="jobprogresspercent">0</span>%</div>
           <div id="jobfailed"></div>
         </div>
       </form>
     [% ELSE %]
-      There is no record ids defined.
+        <div class="dialog message">
+            No records were modified. <a href="/cgi-bin/koha/tools/batch_record_modification.pl" title="New batch record modification">New batch record modification</a>
+        </div>
     [% END %]
   [% ELSIF view == 'report' %]
     [% IF report.total_records == report.total_success %]
-      All records have successfully been modified!
+        <div class="dialog message">
+            All records have successfully been modified! <a href="/cgi-bin/koha/tools/batch_record_modification.pl" title="New batch record modification">New batch record modification</a>
+        </div>
     [% ELSE %]
-      [% report.total_success %] / [% report.total_records %] records have successfully been modified.
-      Some errors occurred.
+        <div class="dialog message">
+            [% report.total_success | html %] / [% report.total_records | html %] records have successfully been modified. Some errors occurred. <a href="/cgi-bin/koha/tools/batch_record_modification.pl" title="New batch record modification">New batch record modification</a>
+        </div>
     [% END %]
-    <p><a href="/cgi-bin/koha/tools/batch_record_modification.pl" title="New batch record modification">New batch record modification</a></p>
   [% ELSIF view == 'errors' %]
     [% FOR error IN errors %]
       [% IF error == 'no_template_defined' %]
-        No MARC modification template is defined. You have <a href="/cgi-bin/koha/tools/marc_modification_templates.pl">to create</a> at least one template for using this tool.
+        <div class="dialog alert">
+            No MARC modification template is defined. You have <a href="/cgi-bin/koha/tools/marc_modification_templates.pl">to create</a> at least one template for using this tool.
+        </div>
       [% END %]
     [% END %]
   [% ELSE %]
-    No action defined for the template.
+        <div class="dialog alert">
+            No action defined for the template.
+        </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 %]
+    [% INCLUDE 'datatables.inc' %]
+    [% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") | $raw %]
+    [% Asset.js("js/background-job-progressbar.js") | $raw %]
+    <script>
+        $(document).ready(function() {
+
+          $("#batch_mod_form").tabs();
+
+          $("input[type='radio']").click(function(){
+            if ($(this).attr('id') == 'authority_type') {
+              $("#show_list_option").hide();
+            } else if ($(this).attr('id') == 'biblio_type') {
+              $("#show_list_option").show();
+            }
+          });
+          $("#selectall").click(function(e){
+            e.preventDefault();
+            $(".records").checkCheckboxes();
+          });
+          $("#clearall").click(function(e){
+            e.preventDefault();
+            $(".records").unCheckCheckboxes();
+          });
+          $("#selectall").click();
+
+          $("table#biblios").dataTable($.extend(true, {}, dataTablesDefaults, {
+            "aoColumnDefs": [
+              { "aTargets": [ 0, 3 ], "bSortable": false, "bSearchable": false },
+              { "aTargets": [ 1 ], "sType": "num-html" }
+            ],
+            "sDom": 't',
+            "aaSorting": [],
+            "bPaginate": false
+          }));
+
+          $("table#authorities").dataTable($.extend(true, {}, dataTablesDefaults, {
+            "aoColumnDefs": [
+              { "aTargets": [ 0, 3 ], "bSortable": false, "bSearchable": false },
+              { "aTargets": [ 1 ], "sType": "num-html" }
+            ],
+            "sDom": 't',
+            "aaSorting": [],
+            "bPaginate": false
+          }));
+
+          $("#mainformsubmit").click(function(){
+            if ($("input[type=checkbox][name='record_id']:checked").length == 0 ) {
+              alert(_("Please select at least one record to process"));
+              return false;
+            }
+            if ( $("#marc_modification_template_id").val() <= 0 ) {
+              alert(_("Please select a modification template."));
+              return false;
+            }
+            return submitBackgroundJob(document.getElementById("process"));
+          });
+
+          $("#marc_modification_template_id").change(function(){
+            var url = "/cgi-bin/koha/svc/records/preview?"
+            var mmtid = $(this).val();
+            $("a.previewMARC").each(function(){
+              $(this).attr("href", url + "record_type=" + $(this).attr("data-record_type") + "&record_id=" + $(this).attr("data-record_id") + "&mmtid=" + mmtid);
+            });
+          });
+
+            $("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 + " div");
+                $('#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>");
+            });
+
+        });
+    </script>
+[% END %]
+
 [% INCLUDE 'intranet-bottom.inc' %]