Bug 19103: Fix Stored XSS in patron-attr-types.pl
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / tools / batch_record_modification.tt
index 9b53c5a..52b3b2b 100644 (file)
@@ -2,11 +2,10 @@
 [% 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" />
+<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
 [% INCLUDE 'datatables.inc' %]
 <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
-<script type="text/javascript" src="[% themelang %]/js/background-job-progressbar.js"></script>
+<script type="text/javascript" src="[% interface %]/[% theme %]/js/background-job-progressbar.js"></script>
 <script type="text/javascript">
 //<![CDATA[
 $(document).ready(function() {
@@ -41,25 +40,37 @@ $(document).ready(function() {
   }));
 
   $("#mainformsubmit").click(function(){
-    if ( $("#marc_modification_template_id").val() > 0 ) {
-      return submitBackgroundJob(document.getElementById("process"));
+    if ($("input[type=checkbox][name='record_id']:checked").length == 0 ) {
+      alert(_("Please select at least one record to process"));
+      return false;
     }
-    alert(_("Please select a modification template."));
-    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.preview").each(function(){
+    $("a.previewMARC").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);
-  });
+    $("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", function(){
+        $("#marcPreviewLabel").html("");
+        $("#marcPreview .modal-body").html("<div id=\"loading\"><img src=\"[% interface %]/[% theme %]/img/spinner-small.gif\" alt=\"\" /> "+_("Loading")+"</div>");
+    });
 
 });
 //]]>
@@ -80,35 +91,42 @@ $(document).ready(function() {
 <div id="yui-main">
 <div class="yui-b">
   <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%]) does not exist or no action is defined.
+                [% ELSIF message.code == 'biblio_not_exists' %]
+                    Bibliographic record [% message.biblionumber %] does not exist in the database.
+                [% ELSIF message.code == 'authority_not_exists' %]
+                    Authority record [% message.authid %] 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 %]">[% message.biblionumber %]</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 %]">[% message.authid %]</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 %]">[% message.biblionumber %]</a> has successfully been modified.
+                [% ELSIF message.code == 'authority_modified' %]
+                    Bibliographic record <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).
+                [% 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">
@@ -128,7 +146,7 @@ $(document).ready(function() {
         <legend>Or enter a list of record numbers</legend>
         <ol>
           <li>
-            <label for="recordnumber_list">Record number list (one per line): </label>
+            <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>
@@ -167,18 +185,34 @@ $(document).ready(function() {
             [% 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 %]/[% theme %]/img/loading-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>
@@ -187,16 +221,18 @@ $(document).ready(function() {
                   <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 class="actions">
+                    <a href="/cgi-bin/koha/svc/records/preview?record_type=biblio&record_id=[% biblio.biblionumber %]&mmtid=[% mmtid %]" class="previewMARC btn btn-default btn-xs" data-record_type="biblio" data-record_id="[% biblio.biblionumber %]" data-mmtid="[% mmtid %]" 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,7 +240,7 @@ $(document).ready(function() {
                 <th></th>
                 <th>Authid</th>
                 <th>Summary</th>
-                <th>Preview</th>
+                <th>&nbsp;</th>
               </tr>
             </thead>
             <tbody>
@@ -213,12 +249,12 @@ $(document).ready(function() {
                   <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>[% 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 %]&mmtid=[% mmtid %]" data-record_type="authority" data-record_id="[% authority.authid %]" data-mmtid="[% mmtid %]" 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" />
@@ -229,29 +265,37 @@ $(document).ready(function() {
           <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 %] / [% report.total_records %] 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>