blob: 29c4f2ed7977e8460718fa1ec34b6ae17ee3518a [file] [log] [blame]
$('#mysidebar').height($(".nav").height());
$( document ).ready(function() {
//this script says, if the height of the viewport is greater than 800px, then insert affix class, which makes the nav bar float in a fixed
// position as your scroll. if you have a lot of nav items, this height may not work for you.
// commented out...to add back, uncomment the next line, then the 3 after the "console.log" comment
//var h = $(window).height();
//console.log (h);
//if (h > 800) {
// $( "#mysidebar" ).attr("class", "nav affix");
// }
// activate tooltips. although this is a bootstrap js function, it must be activated this way in your theme.
$('[data-toggle="tooltip"]').tooltip({
placement : 'top'
});
/**
* AnchorJS
*/
anchors.add('h2,h3,h4,h5');
// "Bootstrap Bootstrap"
// NOTE: by default, we use "dynamic-tabs" in our wrapper instead of "tab-content"
// so that if javascript is disabled, bootstrap's CSS doesn't hide all non-active "tab-pane" divs
$(".dynamic-tabs").each(function(ignored) {
$(this).addClass("tab-content");
var nav_ul = $("<ul>", { "class": "nav nav-pills" });
$(".tab-pane", this).each(function(tab_index) {
var pill_li = $("<li>");
// force the first tab to always be the active tab
if (0 == tab_index) {
$(this).addClass("active");
pill_li.addClass("active");
} else {
// our validator should have prevented this, but remove them just in case
$(this).removeClass("active");
}
var pill_a = $("<a>", { "data-toggle" : "pill" } );
if ($(this)[0].hasAttribute("id")) {
pill_a.attr("href", "#" + $(this).attr("id"));
} else {
// our validator will complain if a tab-pane has no id, but if the user
// views the resultin HTML, draw attention to it...
pill_a.append( " BAD TAB-PANE HAS NO ID ");
}
var label = $(".tab-label", this);
if (0==label.length) {
// our validator will complain if a tab-pane has no tab-label, but if the user
// views the resultin HTML, draw attention to it...
pill_a.append( " BAD TAB-PANE HAS NO TAB-LABEL ");
} else {
// NOTE: using the "inner" HTML of the label...
// so by default we can use "bold" (or whatever) in our asciidoc and have that
// be what people see when javascript is disabled,
// but when the pills+tabs get active, the pills won't all be bold (or whatever)
pill_a.append( label.html() );
// NOTE: Removing the label isn't strictly neccessary, but makes the pills/tabs less redundent
label.remove();
}
pill_li.append(pill_a);
nav_ul.append(pill_li);
});
$(this).before(nav_ul);
});
});
// needed for nav tabs on pages. See Formatting > Nav tabs for more details.
// script from http://stackoverflow.com/questions/10523433/how-do-i-keep-the-current-tab-active-with-twitter-bootstrap-after-a-page-reload
$(function() {
var json, tabsState;
$('a[data-toggle="pill"], a[data-toggle="tab"]').on('shown.bs.tab', function(e) {
var href, json, parentId, tabsState;
tabsState = localStorage.getItem("tabs-state");
json = JSON.parse(tabsState || "{}");
parentId = $(e.target).parents("ul.nav.nav-pills, ul.nav.nav-tabs").attr("id");
href = $(e.target).attr('href');
json[parentId] = href;
return localStorage.setItem("tabs-state", JSON.stringify(json));
});
tabsState = localStorage.getItem("tabs-state");
json = JSON.parse(tabsState || "{}");
$.each(json, function(containerId, href) {
return $("#" + containerId + " a[href=" + href + "]").tab('show');
});
$("ul.nav.nav-pills, ul.nav.nav-tabs").each(function() {
var $this = $(this);
if (!json[$this.attr("id")]) {
return $this.find("a[data-toggle=tab]:first, a[data-toggle=pill]:first").tab("show");
}
});
});