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 in the template makes problems // with the tabstrip library otherwise $link_base = Director::absoluteURL($this->Link("login")); - Requirements::javascript(THIRDPARTY_DIR . "/jquery/jquery.js"); - Requirements::javascript(THIRDPARTY_DIR . "/jquery/jquery_improvements.js"); - Requirements::javascript(THIRDPARTY_DIR . '/jquery/plugins/livequery/jquery.livequery.js'); - Requirements::javascript(THIRDPARTY_DIR . "/tabstrip/tabstrip.js"); - Requirements::css(THIRDPARTY_DIR . "/tabstrip/tabstrip.css"); + Requirements::javascript(SAPPHIRE_DIR . '/thirdparty/jquery/jquery.js'); + Requirements::javascript(SAPPHIRE_DIR . "/javascript/jquery_improvements.js"); + Requirements::javascript(SAPPHIRE_DIR . '/thirdparty/jquery-ui/jquery-ui.js'); + Requirements::javascript(SAPPHIRE_DIR . '/thirdparty/jquery-ui/ui.core.js'); + Requirements::javascript(SAPPHIRE_DIR . '/thirdparty/jquery-ui/ui.tabs.js'); + + // concrete + Requirements::javascript(SAPPHIRE_DIR . '/thirdparty/jquery-concrete/jquery.class.js'); + Requirements::javascript(SAPPHIRE_DIR . '/thirdparty/jquery-concrete/jquery.selector.js'); + Requirements::javascript(SAPPHIRE_DIR . '/thirdparty/jquery-concrete/jquery.selector.specifity.js'); + Requirements::javascript(SAPPHIRE_DIR . '/thirdparty/jquery-concrete/jquery.selector.matches.js'); + Requirements::javascript(SAPPHIRE_DIR . '/thirdparty/jquery-concrete/jquery.dat.js'); + Requirements::javascript(SAPPHIRE_DIR . '/thirdparty/jquery-concrete/jquery.concrete.js'); + + Requirements::css(SAPPHIRE_DIR . '/thirdparty/jquery-ui-themes/smoothness/ui.all.css'); + Requirements::css(SAPPHIRE_DIR . '/thirdparty/jquery-ui-themes/smoothness/ui.tabs.css'); $content = '
'; - $content .= '\n" . $content_forms . "\n
\n\n"; } else { $content .= $forms[0]->forTemplate(); }