From 68c398e6169d2678583b38b54d2ce3feb733d29c Mon Sep 17 00:00:00 2001
From: Owen Leonard <oleonard@myacpl.org>
Date: Thu, 9 Mar 2023 17:47:54 +0000
Subject: [PATCH] Bug 33185: Use template wrapper for tabs on authority and
 biblio MARC details

This patch updates the MARC detail views of bibliographic and authority
records so that they use the new WRAPPER directives to build tabs.

To test, apply the patch and locate a bibliographic record in the
catalog.

- Click the "MARC" menu item in the left-hand sidebar.
- Confirm that all tabs work correctly.

Perform the same test by going to Authorities and doing a search for
authorities. Clicking one of the results should take you to a
tabbed MARC view.

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
---
 .../prog/en/modules/authorities/detail.tt     |  24 +--
 .../prog/en/modules/catalogue/MARCdetail.tt   | 159 +++++++++---------
 2 files changed, 93 insertions(+), 90 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/detail.tt
index 83a1e0623e..f5b5861321 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/detail.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/detail.tt
@@ -73,17 +73,18 @@
                     [% END %]
                 </div>
 
-                <div id="authoritiestabs" class="toptabs numbered">
-                    <ul class="nav nav-tabs" role="tablist">
+                [% WRAPPER tabs id= "authoritiestabs" %]
+                    [% WRAPPER tabs_nav %]
                         [% FOREACH BIG_LOO IN BIG_LOOP %]
-                            <li role="presentation">
-                                <a href="#tab[% BIG_LOO.number | uri %]XX" aria-controls="tab[% BIG_LOO.number | uri %]XX" role="tab" data-toggle="tab">[% BIG_LOO.number | html %]</a>
-                            </li>
+                            [% WRAPPER tab_item tabname= "tab${ BIG_LOO.number }XX" %]
+                                [% BIG_LOO.number | html %]
+                            [% END %]
                         [% END %]
-                    </ul>
-                    <div class="tab-content">
+                    [% END # /WRAPPER tabs_nav %]
+
+                    [% WRAPPER tab_panels %]
                         [% FOREACH BIG_LOO IN BIG_LOOP %]
-                            <div id="tab[% BIG_LOO.number | html %]XX" role="tabpanel" class="tab-pane">
+                            [% WRAPPER tab_panel tabname="tab${ BIG_LOO.number }XX" %]
                                 [% FOREACH innerloo IN BIG_LOO.innerloop %]
                                     [% IF ( innerloo.tag_number ) %]
                                         <div class="tag">
@@ -121,10 +122,11 @@
                                         [% END #/FOREACH subfiel %]
                                     </div> <!-- /.tag -->
                                 [% END # /FOREACH innerloo %]
-                            </div> <!-- /.tab-pane -->
+                            [% END # /tab_panel#tab${ BIG_LOO.number }XX  %]
                         [% END # /FOREACH BIG_LOO %]
-                    </div> <!-- /.tab-content -->
-                </div> <!-- /#authoritiestabs -->
+                    [% END # /WRAPPER tab_panels %]
+                [% END # /WRAPPER tabs %]
+
             [% END # /IF ( unknownauthid ) %]
         </div> <!-- /.col-md-8 col-md-offset-2 -->
     </div> <!-- /.row -->
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/MARCdetail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/MARCdetail.tt
index 0996fa9293..7f9307709d 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/MARCdetail.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/MARCdetail.tt
@@ -82,7 +82,7 @@
 
 
 [% BLOCK show_tab_html %]
-    <div role="tabpanel" class="tab-pane" id="[% tab_id | html %]">
+    [% WRAPPER tab_panel tabname="${ tab_id }" %]
         [% FOREACH tab0X IN tab_data %]
             [% IF ( tab0X.tag ) %]
                 <div class="tag">
@@ -116,86 +116,87 @@
             [% END %]
             </div> <!-- class='tag' -->
         [% END %]
-    </div>
+    [% END # /tab_panel#tab${tab_id} %]
 [% END %]
 
-    <div id="bibliotabs" class="toptabs">
-        <ul class="nav nav-tabs" role="tablist">
-            [% IF ( tab0XX ) %]
-                <li role="presentation"><a href="#tab0XX" aria-controls="tab0XX" role="tab" data-toggle="tab">&#48;</a></li>
-            [% END %]
-            [% IF ( tab1XX ) %]
-                <li role="presentation"><a href="#tab1XX" aria-controls="tab1XX" role="tab" data-toggle="tab">1</a></li>
-            [% END %]
-            [% IF ( tab2XX ) %]
-                <li role="presentation"><a href="#tab2XX" aria-controls="tab2XX" role="tab" data-toggle="tab">2</a></li>
-            [% END %]
-            [% IF ( tab3XX ) %]
-                <li role="presentation"><a href="#tab3XX" aria-controls="tab3XX" role="tab" data-toggle="tab">3</a></li>
-            [% END %]
-            [% IF ( tab4XX ) %]
-                <li role="presentation"><a href="#tab4XX" aria-controls="tab4XX" role="tab" data-toggle="tab">4</a></li>
-            [% END %]
-            [% IF ( tab5XX ) %]
-                <li role="presentation"><a href="#tab5XX" aria-controls="tab5XX" role="tab" data-toggle="tab">5</a></li>
-            [% END %]
-            [% IF ( tab6XX ) %]
-                <li role="presentation"><a href="#tab6XX" aria-controls="tab6XX" role="tab" data-toggle="tab">6</a></li>
-            [% END %]
-            [% IF ( tab7XX ) %]
-                <li role="presentation"><a href="#tab7XX" aria-controls="tab7XX" role="tab" data-toggle="tab">7</a></li>
-            [% END %]
-            [% IF ( tab8XX ) %]
-                <li role="presentation"><a href="#tab8XX" aria-controls="tab8XX" role="tab" data-toggle="tab">8</a></li>
-            [% END %]
-            [% IF ( tab9XX ) %]
-                <li role="presentation"><a href="#tab9XX" aria-controls="tab9XX" role="tab" data-toggle="tab">9</a></li>
-            [% END %]
-            [% IF ( tab10XX ) %]
-                <li role="presentation"><a href="#tab10XX" aria-controls="tab10XX" role="tab" data-toggle="tab">Item(s)</a></li>
-            [% END %]
-        </ul>
-        <div class="tab-content">
-            [% PROCESS show_tab_html tab_id="tab0XX" tab_data=tab0XX %]
-
-            [% PROCESS show_tab_html tab_id="tab1XX" tab_data=tab1XX %]
-
-            [% PROCESS show_tab_html tab_id="tab2XX" tab_data=tab2XX %]
-
-            [% PROCESS show_tab_html tab_id="tab3XX" tab_data=tab3XX %]
-
-            [% PROCESS show_tab_html tab_id="tab4XX" tab_data=tab4XX %]
-
-            [% PROCESS show_tab_html tab_id="tab5XX" tab_data=tab5XX %]
-
-            [% PROCESS show_tab_html tab_id="tab6XX" tab_data=tab6XX %]
-
-            [% PROCESS show_tab_html tab_id="tab7XX" tab_data=tab7XX %]
-
-            [% PROCESS show_tab_html tab_id="tab8XX" tab_data=tab8XX %]
-
-            [% PROCESS show_tab_html tab_id="tab9XX" tab_data=tab9XX %]
-
-            [% IF ( tab10XX ) %]
-                <div role="tabpanel" class="tab-pane" id="tab10XX">
-                    <table>
-                            <tr>
-                                [% FOREACH header IN item_header_loop %]
-                                    <th>[% header | html %]</th>
-                                [% END %]
-                            </tr>
-                            [% FOREACH item IN item_loop %]
-                                <tr>
-                                    [% FOREACH sf_code IN item_subfield_codes %]
-                                        <td>[% item.$sf_code | $raw %]</td>
-                                    [% END %]
-                                </tr>
-                            [% END %]
-                    </table>
-                </div>
-            [% END %]
-        </div> <!-- /.tab-content -->
-    </div> <!-- /#bibliotabs -->
+                [% WRAPPER tabs id= "bibliotabs" %]
+                    [% WRAPPER tabs_nav %]
+                        [% IF ( tab0XX ) %]
+                            [% WRAPPER tab_item tabname= "tab0XX" %] &#48; [% END %]
+                        [% END %]
+                        [% IF ( tab1XX ) %]
+                            [% WRAPPER tab_item tabname= "tab1XX" %] 1 [% END %]
+                        [% END %]
+                        [% IF ( tab2XX ) %]
+                            [% WRAPPER tab_item tabname= "tab2XX" %] 2 [% END %]
+                        [% END %]
+                        [% IF ( tab3XX ) %]
+                            [% WRAPPER tab_item tabname= "tab3XX" %] 3 [% END %]
+                        [% END %]
+                        [% IF ( tab4XX ) %]
+                            [% WRAPPER tab_item tabname= "tab4XX" %] 4 [% END %]
+                        [% END %]
+                        [% IF ( tab5XX ) %]
+                            [% WRAPPER tab_item tabname= "tab5XX" %] 5 [% END %]
+                        [% END %]
+                        [% IF ( tab6XX ) %]
+                            [% WRAPPER tab_item tabname= "tab6XX" %] 6 [% END %]
+                        [% END %]
+                        [% IF ( tab7XX ) %]
+                            [% WRAPPER tab_item tabname= "tab7XX" %] 7 [% END %]
+                        [% END %]
+                        [% IF ( tab8XX ) %]
+                            [% WRAPPER tab_item tabname= "tab8XX" %] 8 [% END %]
+                        [% END %]
+                        [% IF ( tab9XX ) %]
+                            [% WRAPPER tab_item tabname= "tab9XX" %] 9 [% END %]
+                        [% END %]
+                        [% IF ( tab10XX ) %]
+                            [% WRAPPER tab_item tabname= "tab10XX" %] Item(s) [% END %]
+                        [% END %]
+                    [% END # /WRAPPER tabs_nav %]
+
+                    [% WRAPPER tab_panels %]
+                        [% PROCESS show_tab_html tab_id="tab0XX" tab_data=tab0XX %]
+
+                        [% PROCESS show_tab_html tab_id="tab1XX" tab_data=tab1XX %]
+
+                        [% PROCESS show_tab_html tab_id="tab2XX" tab_data=tab2XX %]
+
+                        [% PROCESS show_tab_html tab_id="tab3XX" tab_data=tab3XX %]
+
+                        [% PROCESS show_tab_html tab_id="tab4XX" tab_data=tab4XX %]
+
+                        [% PROCESS show_tab_html tab_id="tab5XX" tab_data=tab5XX %]
+
+                        [% PROCESS show_tab_html tab_id="tab6XX" tab_data=tab6XX %]
+
+                        [% PROCESS show_tab_html tab_id="tab7XX" tab_data=tab7XX %]
+
+                        [% PROCESS show_tab_html tab_id="tab8XX" tab_data=tab8XX %]
+
+                        [% PROCESS show_tab_html tab_id="tab9XX" tab_data=tab9XX %]
+
+                        [% IF ( tab10XX ) %]
+                            [% WRAPPER tab_panel tabname="tab10XX" %]
+                                <table>
+                                        <tr>
+                                            [% FOREACH header IN item_header_loop %]
+                                                <th>[% header | html %]</th>
+                                            [% END %]
+                                        </tr>
+                                        [% FOREACH item IN item_loop %]
+                                            <tr>
+                                                [% FOREACH sf_code IN item_subfield_codes %]
+                                                    <td>[% item.$sf_code | $raw %]</td>
+                                                [% END %]
+                                            </tr>
+                                        [% END %]
+                                </table>
+                            [% END # /tab_panel#tab10XX %]
+                        [% END # /IF tab10XX %]
+                    [% END # /tab_panels %]
+                [% END # /WRAPPER tabs %]
 
             </main>
         </div> <!-- /.col-sm-10.col-sm-push-2 -->
-- 
2.30.2