Optimize Code Block View toggling. Also auto-hide Code section for pages without code

This commit is contained in:
Gautham Warrier 2014-11-20 14:25:11 +05:30
parent 8c02c01831
commit 37226d4b66

View File

@ -5,15 +5,11 @@ $(function () {
$(this).next().slideToggle();
});
// Bootstrap Table Class
$('table').addClass('table');
// Responsive menu spinner
$('#menu-spinner-button').click(function () {
$('#sub-nav-collapse').slideToggle();
});
// Catch browser resize
$(window).resize(function () {
// Remove transition inline style on large screens
if ($(window).width() >= 768)
@ -26,40 +22,47 @@ var t = $('#github-ribbon');
var a = $('article');
if (t[0] && a[0] && a[0].scrollHeight > $('.right-column').height()) t[0].style.right = '16px';
//Toggle Code Block Visibility
function toggleCodeBlocks() {
var t = localStorage.getItem("toggleCodeStats")
t = (t + 1) % 3;
localStorage.setItem("toggleCodeStats", t);
var a = $('.content-page article');
var c = a.children().filter('pre');
var d = $('.right-column');
if (d.hasClass('float-view')) {
d.removeClass('float-view');
$('#toggleCodeBlockBtn')[0].innerHTML = "Hide Code Blocks";
} else {
if (c.hasClass('hidden')) {
d.addClass('float-view');
c.removeClass('hidden');
$('#toggleCodeBlockBtn')[0].innerHTML = "Show Code Blocks Inline";
} else {
c.addClass('hidden');
$('#toggleCodeBlockBtn')[0].innerHTML = "Show Code Blocks";
}
function setCodeBlockStyle(x) {
switch (x) {
default:
case 0:
toggleCodeBlockBtn.innerHTML = "Show Code Blocks Inline";
codeBlockView.addClass('float-view');
codeBlocks.removeClass('hidden');
break;
case 1:
toggleCodeBlockBtn.innerHTML = "Hide Code Blocks";
codeBlockView.removeClass('float-view');
codeBlocks.removeClass('hidden');
break;
case 2:
toggleCodeBlockBtn.innerHTML = "Show Code Blocks";
codeBlockView.removeClass('float-view');
codeBlocks.addClass('hidden');
break;
}
}
if (localStorage.getItem("toggleCodeStats") >= 0) {
var t = localStorage.getItem("toggleCodeStats");
if (t == 1) {
toggleCodeBlocks();
localStorage.setItem("toggleCodeStats", 1);
function toggleCodeBlocks() {
codeBlockState = (codeBlockState + 1) % 3;
localStorage.setItem("codeBlockState", codeBlockState);
setCodeBlockStyle(codeBlockState);
}
if (t == 2) {
toggleCodeBlocks();
toggleCodeBlocks();
localStorage.setItem("toggleCodeStats", 2);
}
} else {
localStorage.setItem("toggleCodeStats", 0);
//Initialize CodeBlock Visibility Settings
$(function () {
toggleCodeBlockBtn = $('#toggleCodeBlockBtn')[0];
codeBlockView = $('.right-column');
codeBlocks = $('.content-page article > pre');
codeBlockState = localStorage.getItem("codeBlockState");
if (!codeBlockState) {
codeBlockState = 0;
localStorage.setItem("codeBlockState", codeBlockState);
} else codeBlockState = parseInt(codeBlockState);
if (!codeBlockView.size()) return;
if (!codeBlocks.size()) {
codeBlockState = 2;
toggleCodeBlockBtn.classList.add('hidden');
}
setCodeBlockStyle(codeBlockState);
});