2009-11-21 02:22:52 +00:00
|
|
|
(function($){
|
2010-04-13 05:45:29 +00:00
|
|
|
$.entwine('ss', function($){
|
2009-11-21 02:33:06 +00:00
|
|
|
/**
|
2012-11-30 13:42:43 +13:00
|
|
|
* Lightweight wrapper around jQuery UI tabs for generic tab set-up
|
2009-11-21 02:33:06 +00:00
|
|
|
*/
|
2010-04-13 05:45:29 +00:00
|
|
|
$('.ss-tabset').entwine({
|
2012-12-11 11:30:06 +13:00
|
|
|
IgnoreTabState: false,
|
|
|
|
|
2012-06-12 22:48:08 +12:00
|
|
|
onadd: function() {
|
2011-07-21 18:39:26 +02:00
|
|
|
// Can't name redraw() as it clashes with other CMS entwine classes
|
|
|
|
this.redrawTabs();
|
2011-07-15 10:37:46 +02:00
|
|
|
this._super();
|
|
|
|
},
|
2012-06-12 22:48:08 +12:00
|
|
|
onremove: function() {
|
2014-07-14 11:15:38 +12:00
|
|
|
if(this.data('tabs')) this.tabs('destroy');
|
2012-05-11 17:36:18 +12:00
|
|
|
this._super();
|
|
|
|
},
|
2011-07-21 18:39:26 +02:00
|
|
|
redrawTabs: function() {
|
2009-11-21 02:32:38 +00:00
|
|
|
this.rewriteHashlinks();
|
2012-04-17 17:40:37 +02:00
|
|
|
this.tabs();
|
2009-11-21 02:32:38 +00:00
|
|
|
},
|
2009-11-21 02:33:06 +00:00
|
|
|
|
2009-11-21 02:32:38 +00:00
|
|
|
/**
|
2012-11-06 15:28:09 +01:00
|
|
|
* Ensure hash links are prefixed with the current page URL,
|
|
|
|
* otherwise jQuery interprets them as being external.
|
2009-11-21 02:32:38 +00:00
|
|
|
*/
|
|
|
|
rewriteHashlinks: function() {
|
|
|
|
$(this).find('ul a').each(function() {
|
2012-12-04 15:59:33 +11:00
|
|
|
if (!$(this).attr('href')) return;
|
|
|
|
|
2012-11-06 15:28:09 +01:00
|
|
|
var matches = $(this).attr('href').match(/#.*/);
|
|
|
|
if(!matches) return;
|
|
|
|
$(this).attr('href', document.location.href.replace(/#.*/, '') + matches[0]);
|
2009-11-21 02:32:38 +00:00
|
|
|
});
|
2014-07-14 11:15:38 +12:00
|
|
|
}
|
2009-11-21 02:33:06 +00:00
|
|
|
});
|
2009-11-21 02:22:52 +00:00
|
|
|
});
|
2012-05-11 17:36:18 +12:00
|
|
|
})(jQuery);
|