From b82a80de025b33c9bdd4d6f20b91745f51b58604 Mon Sep 17 00:00:00 2001
From: Chris Hallberg <crhallberg@gmail.com>
Date: Thu, 22 Sep 2016 13:25:47 -0400
Subject: [PATCH] Prevent default tab and sessionStorage from double opening an
 accordion in embedded results.

---
 themes/bootstrap3/js/embedded_record.js                   | 2 +-
 .../bootstrap3/templates/record/ajaxview-accordion.phtml  | 8 ++------
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/themes/bootstrap3/js/embedded_record.js b/themes/bootstrap3/js/embedded_record.js
index e4543804e8b..71407324021 100644
--- a/themes/bootstrap3/js/embedded_record.js
+++ b/themes/bootstrap3/js/embedded_record.js
@@ -78,7 +78,7 @@ VuFind.register('embedded', function embedded() {
         }
       });
     }
-    if (click) {
+    if (click && !$tab.parent().hasClass('default')) {
       $tab.click();
     }
     return true;
diff --git a/themes/bootstrap3/templates/record/ajaxview-accordion.phtml b/themes/bootstrap3/templates/record/ajaxview-accordion.phtml
index 150886392be..b243a2fd548 100644
--- a/themes/bootstrap3/templates/record/ajaxview-accordion.phtml
+++ b/themes/bootstrap3/templates/record/ajaxview-accordion.phtml
@@ -61,18 +61,14 @@
       </div>
     </div>
   <? endif; ?>
-
   <? if (count($this->tabs) > 0): ?>
     <? foreach ($this->tabs as $tab => $obj): ?>
       <? // add current tab to breadcrumbs if applicable:
         $desc = $obj->getDescription();
         $tab_classes = array();
-        $active = false;
-        if ($this->defaultTab === strtolower($tab)) {
-          $active = !$this->ajaxTabs || !$obj->supportsAjax();
-        }
         if (!$obj->isVisible()) { $tab_classes[] = 'hidden'; }
         if (!$obj->supportsAjax()) { $tab_classes[] = 'noajax'; }
+        if ($this->defaultTab === strtolower($tab)) { $tab_classes[] = 'default'; }
       ?>
       <div class="panel panel-default <?=implode(' ', $tab_classes) ?>">
         <div id="<?=strtolower($tab)?>_<?=$idSuffix?>" class="list-tab-toggle panel-heading" data-toggle="collapse" data-parent="#accordion_<?=$idSuffix?>" data-target="#<?=strtolower($tab)?>_<?=$idSuffix?>-content"<? if ($obj->supportsAjax() && in_array($tab, $this->backgroundTabs)):?> data-background<? endif ?>>
@@ -80,7 +76,7 @@
             <a class="accordion-toggle" data-href="<?=$this->recordLink()->getTabUrl($this->driver, $tab)?>#tabnav"><?=$desc ?></a>
           </h4>
         </div>
-        <div id="<?=strtolower($tab)?>_<?=$idSuffix?>-content" class="list-tab-content panel-collapse collapse<? if($active): ?> in<? endif; ?>"></div>
+        <div id="<?=strtolower($tab)?>_<?=$idSuffix?>-content" class="list-tab-content panel-collapse collapse<? if($this->defaultTab === strtolower($tab)): ?> in<? endif; ?>"></div>
       </div>
     <? endforeach; ?>
   <? endif; ?>
-- 
GitLab