From 012177bd43b494ebe5441377d948732b07bce064 Mon Sep 17 00:00:00 2001
From: Owen Leonard <oleonard@myacpl.org>
Date: Wed, 8 Feb 2023 17:46:16 +0000
Subject: [PATCH] Bug 32914: Use template wrapper for batch record deletion and
 modification templates

This patch updates the batch record modification and batch record
deletion templates to replace tab markup with the use of WRAPPERs.

To test you should have at least one list and at least one MARC
modification template defined.

- Apply the patch and go to Cataloging -> Batch record modification
- You should see three tabs, "Upload a file," "Select a list of
  records," and "Enter a list of record numbers."
- The tabs should look correct and work correctly.
- Checking the "Authorities" radio button should hide the lists tab.
- Test that submissions from each form work correctly.

- Go to Cataloging -> Batch record deletion and perform the same tests.
---
 .../en/modules/tools/batch_delete_records.tt  | 117 ++++++++----------
 .../tools/batch_record_modification.tt        |  46 +++----
 2 files changed, 72 insertions(+), 91 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batch_delete_records.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batch_delete_records.tt
index 8a522832ca..f2be65ad30 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batch_delete_records.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batch_delete_records.tt
@@ -69,65 +69,55 @@
         </ol>
       </fieldset>
 
-      <div id="batch_del_form" class="toptabs">
-        <ul class="nav nav-tabs" role="tablist">
-          <li role="presentation" class="active">
-              <a href="#uploadfile_tab" aria-controls="uploadfile_tab" role="tab" data-toggle="tab">Upload a file</a>
-          </li>
-          [% IF lists.count %]
-            <li id="show_list_option" role="presentation">
-                <a href="#shelves_tab" aria-controls="shelves_tab" role="tab" data-toggle="tab">Select a list of records</a>
-            </li>
-          [% END %]
-          <li role="presentation">
-            <a href="#enterlist_tab" aria-controls="enterlist_tab" role="tab" data-toggle="tab">Enter a list of record numbers</a>
-          </li>
-        </ul>
+        [% WRAPPER tabs id= "batch_del_form" %]
+            [% WRAPPER tabs_nav %]
+                [% WRAPPER tab_item tabname= "uploadfile_tab" bt_active= 1 %] Upload a file [% END %]
+                [% IF lists.count %]
+                    [% WRAPPER tab_item tabname= "shelves_tab" %] Select a list of records [% END %]
+                [% END %]
+                [% WRAPPER tab_item tabname= "enterlist_tab" %] Enter a list of record numbers [% END %]
+            [% END # /WRAPPER tabs_nav %]
 
-    <div class="tab-content">
-        <div id="uploadfile_tab" role="tabpanel" class="tab-pane active">
-          <fieldset class="rows">
-            <ol>
-              <li><label for="uploadfile">File: </label> <input type="file" id="uploadfile" name="uploadfile" /></li>
-            </ol>
-          </fieldset>
-          &nbsp;
-        </div>
+            [% WRAPPER tab_panels %]
+                [% WRAPPER tab_panel tabname="uploadfile_tab" bt_active= 1 %]
+                    <fieldset class="rows">
+                        <ol>
+                        <li><label for="uploadfile">File: </label> <input type="file" id="uploadfile" name="uploadfile" /></li>
+                        </ol>
+                    </fieldset>
+                [% END # /WRAPPER tab_panel %]
 
-        [% IF lists.count %]
-            <div id="shelves_tab" role="tabpanel" class="tab-pane">
-              <fieldset class="rows">
-                <ol>
-                  <li>
-                    <label for="shelf_number">List: </label>
-                    <select name="shelf_number" id="shelf_number">
-                      <option value="">Select a list</option>
-                        [% FOREACH list IN lists %]
-                          <option value="[% list.shelfnumber | html %]">[% list.shelfname | html %]</option>
-                        [% END %]
-                    </select>
-                  </li>
-                </ol>
-              </fieldset>
-              &nbsp;
-            </div>
-        [% END %]
+                [% IF lists.count %]
+                    [% WRAPPER tab_panel tabname="shelves_tab" %]
+                        <fieldset class="rows">
+                            <ol>
+                                <li>
+                                    <label for="shelf_number">List: </label>
+                                    <select name="shelf_number" id="shelf_number">
+                                        <option value="">Select a list</option>
+                                        [% FOREACH list IN lists %]
+                                            <option value="[% list.shelfnumber | html %]">[% list.shelfname | html %]</option>
+                                        [% END %]
+                                    </select>
+                                </li>
+                            </ol>
+                        </fieldset>
+                    [% END # /WRAPPER tab_panel %]
+                [% END # /IF lists.count %]
 
-        <div id="enterlist_tab" role="tabpanel" class="tab-pane">
-          <fieldset class="rows">
-            <ol>
-              <li>
-                <label for="recordnumber_list">IDs: </label>
-                <textarea rows="10" cols="30" id="recordnumber_list" name="recordnumber_list"></textarea>
-                <div class="hint">Enter a list of biblionumbers or authority IDs, one per line.</div>
-              </li>
-            </ol>
-          </fieldset>
-          &nbsp;
-        </div>
-
-      </div> <!-- /.tab-content -->
-    </div>
+                [% WRAPPER tab_panel tabname="enterlist_tab" %]
+                    <fieldset class="rows">
+                        <ol>
+                            <li>
+                                <label for="recordnumber_list">IDs: </label>
+                                <textarea rows="10" cols="30" id="recordnumber_list" name="recordnumber_list"></textarea>
+                                <div class="hint">Enter a list of biblionumbers or authority IDs, one per line.</div>
+                            </li>
+                        </ol>
+                    </fieldset>
+                [% END # /WRAPPER tab_panel %]
+            [% END # /WRAPPER tab_panels %]
+        [% END # /WRAPPER tabs %]
 
       <fieldset class="action">
         <input type="hidden" name="op" value="list" />
@@ -238,13 +228,14 @@
         var MSG_CANNOT_BE_DELETED = _("This record cannot be deleted, at least one item is currently checked out.");
         $(document).ready(function() {
 
-          $("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();
-            }
-          });
+            $("input[type='radio']").click(function() {
+                if ($(this).attr('id') == 'authority_type') {
+                    $("a[href='#shelves_tab_panel']").parent().hide();
+                } else if ($(this).attr('id') == 'biblio_type') {
+                    $("a[href='#shelves_tab_panel']").parent().show();
+                }
+            });
+
             $("#selectall").click(function(e){
                 e.preventDefault();
                 $(".records input[type='checkbox']:not(:disabled)").each(function(){
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batch_record_modification.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batch_record_modification.tt
index fc2dcff60d..e028a04af2 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batch_record_modification.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batch_record_modification.tt
@@ -86,33 +86,26 @@
 
                             <br><br>
 
-                            <div id="batch_mod_form" class="toptabs" style="clear:both">
-                                <ul class="nav nav-tabs" role="tablist">
-                                    <li role="presentation" class="active">
-                                        <a href="#uploadfile_tab" aria-controls="uploadfile_tab" role="tab" data-toggle="tab">Upload a file</a>
-                                    </li>
+                            [% WRAPPER tabs id= "batch_mod_form" %]
+                                [% WRAPPER tabs_nav %]
+                                    [% WRAPPER tab_item tabname= "uploadfile_tab" bt_active= 1 %] Upload a file [% END %]
                                     [% IF lists.count %]
-                                        <li id="show_list_option">
-                                            <a href="#shelves_tab" aria-controls="shelves_tab" role="tab" data-toggle="tab">Select a list of records</a>
-                                        </li>
+                                        [% WRAPPER tab_item tabname= "shelves_tab" %] Select a list of records [% END %]
+                                        <!-- <li id="show_list_option"> -->
                                     [% END %]
-                                    <li role="presentation">
-                                        <a href="#enterlist_tab" aria-controls="enterlist_tab" role="tab" data-toggle="tab">Enter a list of record numbers</a>
-                                    </li>
-                                </ul>
-
-                                <div class="tab-content">
-                                    <div id="uploadfile_tab" role="tabpanel" class="tab-pane active">
+                                    [% WRAPPER tab_item tabname= "enterlist_tab" %] Enter a list of record numbers [% END %]
+                                [% END # /WRAPPER tabs_nav %]
+                                [% WRAPPER tab_panels %]
+                                    [% WRAPPER tab_panel tabname="uploadfile_tab" bt_active= 1 %]
                                         <fieldset class="rows">
                                             <ol>
                                                 <li><label for="uploadfile">File: </label> <input type="file" id="uploadfile" name="uploadfile" /></li>
                                             </ol>
                                         </fieldset>
-                                        &nbsp;
-                                    </div>
+                                    [% END # /tab_panel %]
 
                                     [% IF lists.count %]
-                                        <div id="shelves_tab" role="tabpanel" class="tab-pane">
+                                        [% WRAPPER tab_panel tabname="shelves_tab" %]
                                             <fieldset class="rows">
                                                 <ol>
                                                     <li>
@@ -127,11 +120,9 @@
                                                     </li>
                                                 </ol>
                                             </fieldset>
-                                            &nbsp;
-                                        </div>
+                                        [% END # /tab_panel %]
                                     [% END %]
-
-                                    <div id="enterlist_tab" role="tabpanel" class="tab-pane">
+                                    [% WRAPPER tab_panel tabname="enterlist_tab" %]
                                         <fieldset class="rows">
                                             <ol>
                                                 <li>
@@ -141,10 +132,9 @@
                                                 </li>
                                             </ol>
                                         </fieldset>
-                                        &nbsp;
-                                    </div>
-                                </div> <!-- /.tab-content -->
-                            </div> <!-- /#batch_mod_form -->
+                                    [% END # /tab_panel %]
+                                [% END # /WRAPPER tab_panels %]
+                            [% END # /WRAPPER tabs %]
 
                             <fieldset class="rows">
                                 <legend>MARC modification template</legend>
@@ -303,9 +293,9 @@
 
             $("input[type='radio']").click(function() {
                 if ($(this).attr('id') == 'authority_type') {
-                    $("#show_list_option").hide();
+                    $("a[href='#shelves_tab_panel']").parent().hide();
                 } else if ($(this).attr('id') == 'biblio_type') {
-                    $("#show_list_option").show();
+                    $("a[href='#shelves_tab_panel']").parent().show();
                 }
             });
 
-- 
2.30.2