mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-01 21:58:51 +02:00
3e3fc3d7d7
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@92479 467b73ca-7a2a-4603-9d3b-597d59a354a9
42 lines
1.0 KiB
JavaScript
42 lines
1.0 KiB
JavaScript
(function($){
|
||
/**
|
||
* Lightweight wrapper around jQuery UI tabs.
|
||
* Ensures that anchor links are set properly,
|
||
* and any nested tabs are scrolled if they have
|
||
* their height explicitly set. This is important
|
||
* for forms inside the CMS layout.
|
||
*/
|
||
$('.ss-tabset').concrete({
|
||
onmatch: function() {
|
||
this.rewriteHashlinks();
|
||
|
||
// Initialize jQuery UI tabs
|
||
this.tabs();
|
||
},
|
||
|
||
/**
|
||
* Replace prefixes for all hashlinks in tabs.
|
||
* SSViewer rewrites them from "#Root_MyTab" to
|
||
* e.g. "/admin/#Root_MyTab" which makes them
|
||
* unusable for jQuery UI.
|
||
*/
|
||
rewriteHashlinks: function() {
|
||
$(this).find('ul a').each(function() {
|
||
var href = $(this).attr('href').replace(/.*(#.*)/, '$1');
|
||
if(href) $(this).attr('href', href);
|
||
})
|
||
},
|
||
|
||
/**
|
||
* If tab has no nested tabs, set overflow to auto
|
||
*/
|
||
setOverflows: function() {
|
||
$(this).find('.tab').not(':has(.tab)').css('overflow', 'auto');
|
||
}
|
||
});
|
||
})(jQuery);
|
||
|
||
jQuery(document).ready(function() {
|
||
// @todo remove
|
||
jQuery.concrete.triggerMatching();
|
||
}); |