diff --git a/css/Form.css b/css/Form.css
index 33da7900d..cab55d3dd 100644
--- a/css/Form.css
+++ b/css/Form.css
@@ -162,3 +162,7 @@ form .message {
#ForgotPassword {
margin-top: 1em;
}
+
+.typography .ss-tabset ul {
+ margin: 0;
+}
\ No newline at end of file
diff --git a/forms/TabSet.php b/forms/TabSet.php
index 1b6a8b467..8dd6572f6 100644
--- a/forms/TabSet.php
+++ b/forms/TabSet.php
@@ -54,10 +54,13 @@ class TabSet extends CompositeField {
Requirements::javascript(THIRDPARTY_DIR . '/jquery/ui/jquery-ui.js');
Requirements::javascript(THIRDPARTY_DIR . '/jquery/ui/ui.core.js');
Requirements::javascript(THIRDPARTY_DIR . '/jquery/ui/ui.tabs.js');
- Requirements::javascript(SAPPHIRE_DIR . '/javascript/TabSet.js');
+ Requirements::javascript(THIRDPARTY_DIR . '/jquery/plugins/fitheighttoparent/jquery.fitheighttoparent.js');
+
Requirements::css(THIRDPARTY_DIR . '/jquery/themes/smoothness/ui.all.css');
Requirements::css(THIRDPARTY_DIR . '/jquery/themes/smoothness/ui.tabs.css');
+ Requirements::javascript(SAPPHIRE_DIR . '/javascript/TabSet.js');
+
return $this->renderWith("TabSetFieldHolder");
}
diff --git a/javascript/TabSet.js b/javascript/TabSet.js
index 5aa3078a0..6b825b419 100644
--- a/javascript/TabSet.js
+++ b/javascript/TabSet.js
@@ -13,51 +13,6 @@ jQuery(document).ready(function () {
// Initialize tabset
jQuery('.ss-tabset').tabs();
- /**
- * Adjust height of nested tabset panels contained
- * in jQuery.layout panels to allow scrolling.
- */
- var ss_tabset_fixHeight = function(e) {
- console.debug(jQuery('.ss-tabset .tab'));
- jQuery('.ss-tabset .tab').each(function() {
- console.debug(this);
- var $tabPane = jQuery(this);
- var $layoutPane = $tabPane.parents('.ui-layout-pane:first');
-
- // don't apply resizing if tabset is not contained in a layout pane
- if(!$layoutPane) return;
-
- // substract heights of unrelated tab elements
- var $tabSets = $tabPane.parents('.ss-tabset');
- var $tabBars = $tabSets.children('.ui-tabs-nav');
- var tabPaneHeight = $layoutPane.height();
- console.log('total', tabPaneHeight);
- // each tabset has certain padding and borders
- $tabSets.each(function() {
- console.log('tabset',jQuery(this).outerHeight(true) - jQuery(this).innerHeight());
- tabPaneHeight -= jQuery(this).outerHeight(true) - jQuery(this).innerHeight();
- });
- // get all "parent" tab navigation bars to substract their heights
- // from the total panel height
- $tabBars.each(function() {
- console.log('tabbar', jQuery(this).outerHeight(true));
- // substract height of every tab bar from the total panel height
- tabPaneHeight -= jQuery(this).outerHeight(true);
- });
- // Remove any margins from the tab pane
- console.log('tabpane', $tabPane.outerHeight(true) - $tabPane.innerHeight());
- tabPaneHeight -= $tabPane.outerHeight(true) - $tabPane.innerHeight();
- console.log('final', tabPaneHeight);
- $tabPane.height(tabPaneHeight);
-
- // if tab has no nested tabs, set overflow to auto
- if(!$tabPane.find('.tab').length) {
- $tabPane.css('overflow', 'auto');
- }
- });
- }
-
- ss_tabset_fixHeight();
-
- jQuery(window).bind('resize', ss_tabset_fixHeight);
+ // if tab has no nested tabs, set overflow to auto
+ jQuery('.ss-tabset .tab').not(':has(.tab)').css('overflow', 'auto');
});
\ No newline at end of file
diff --git a/security/Security.php b/security/Security.php
index e6b731c1a..f45af4211 100644
--- a/security/Security.php
+++ b/security/Security.php
@@ -327,33 +327,45 @@ class Security extends Controller {
// only display tabs when more than one authenticator is provided
// to save bandwidth and reduce the amount of custom styling needed
if(count($forms) > 1) {
- Requirements::javascript(THIRDPARTY_DIR . "/loader.js");
- Requirements::javascript(THIRDPARTY_DIR . "/prototype.js");
- Requirements::javascript(THIRDPARTY_DIR . "/behaviour.js");
- Requirements::javascript(THIRDPARTY_DIR . "/prototype_improvements.js");
- Requirements::javascript(THIRDPARTY_DIR . "/scriptaculous/effects.js");
+ Requirements::javascript(SAPPHIRE_DIR . "/thirdparty/prototype/loader.js");
+ Requirements::javascript(SAPPHIRE_DIR . "/thirdparty/prototype/prototype.js");
+ Requirements::javascript(SAPPHIRE_DIR . "/thirdparty/behaviour/behaviour.js");
+ Requirements::javascript(SAPPHIRE_DIR . "/javascript/prototype_improvements.js");
+ Requirements::javascript(SAPPHIRE_DIR . "/thirdparty/scriptaculous/effects.js");
Requirements::css(SAPPHIRE_DIR . "/css/Form.css");
// Needed because the