diff --git a/src/bigblow_theme/js/bigblow.js b/src/bigblow_theme/js/bigblow.js index 453ca0c..7d5a42b 100644 --- a/src/bigblow_theme/js/bigblow.js +++ b/src/bigblow_theme/js/bigblow.js @@ -16,516 +16,571 @@ // URL: https://github.com/fniessen/org-html-themes/ // Version: 20140515.1841 -$(function() { - $('p'). - html(function(index, old) { - return old.replace('FIXME', - 'FIXME'); - }); - $('p'). - html(function(index, old) { - return old.replace('XXX', - 'XXX'); - }); +$(function () { + $("p").html(function (index, old) { + return old.replace("FIXME", 'FIXME'); + }); + $("p").html(function (index, old) { + return old.replace("XXX", 'XXX'); + }); }); // Remove leading section number -$(function() { - $('.section-number-2').text(""); - for (var i = 3; i <= 5; i++) { - $('.section-number-' + i).each(function() { - $(this).text($(this).text().replace(/^[0-9]+\./g, "")); - }); - } +$(function () { + $(".section-number-2").text(""); + for (var i = 3; i <= 5; i++) { + $(".section-number-" + i).each(function () { + $(this).text( + $(this) + .text() + .replace(/^[0-9]+\./g, "") + ); + }); + } }); -$(function() { - $('
').prependTo('body'); +$(function () { + $('
').prependTo("body"); }); // generate contents of minitoc function generateMiniToc(divId) { - $('#minitoc').empty().append('

In this section

'); - $('#' + divId).find('h3').each(function(i) { - let pos = $(this).text().search(" "); - let text = $(this).text().substring(0, pos); - $("#minitoc").append("" - + text + ""); - }); - // Ensure that the target is expanded (hideShow) - $('#minitoc a[href^="#"]').click(function() { - var href = $(this).attr('href'); - hsExpandAnchor(href); + $("#minitoc").empty().append("

In this section

"); + $("#" + divId) + .find("h3") + .each(function (i) { + let pos = $(this).text().search(" "); + let text = $(this).text().substring(0, pos); + $("#minitoc").append( + "" + text + "" + ); }); + // Ensure that the target is expanded (hideShow) + $('#minitoc a[href^="#"]').click(function () { + var href = $(this).attr("href"); + hsExpandAnchor(href); + }); } // display tabs function tabifySections() { + // hide TOC (if present) + $("#table-of-contents").hide(); - // hide TOC (if present) - $('#table-of-contents').hide(); + // grab the list of `h2' from the page + var allSections = []; + $("h2").each(function () { + // Remove TODO keywords and tags (contained in spans) + var tabText = $(this).clone().find("span").remove().end().text().trim(); + var tabId = $(this).parent().attr("id"); + if (tabText) { + // - remove heading number (all leading digits) + // - remove progress logging (between square brackets) + // - remove leading and trailing spaces + tabText = tabText + .replace(/^\d+\s+/, "") + .replace(/\[[\d/%]+\]/, "") + .trim(); - // grab the list of `h2' from the page - var allSections = []; - $('h2') - .each(function() { - // Remove TODO keywords and tags (contained in spans) - var tabText = $(this).clone().find('span').remove().end() - .text().trim(); - var tabId = $(this).parent().attr('id'); - if (tabText) { - // - remove heading number (all leading digits) - // - remove progress logging (between square brackets) - // - remove leading and trailing spaces - tabText = tabText.replace(/^\d+\s+/, '').replace(/\[[\d/%]+\]/, '').trim(); - - allSections.push({ - text: tabText, - id: tabId - }); - } - }); - - // create the tab links - var tabs = $(''); - for (i = 0; i < allSections.length; i++) { - var item = allSections[i]; - html = $('
  • ' + item.text + '
  • '); - tabs.append(html); + allSections.push({ + text: tabText, + id: tabId, + }); } + }); - // insert tabs menu after title (`h1'), or at the beginning of the content - if($('.title').length !== 0) { - $('.title').after(tabs); - } - else { - $('#content').prepend(tabs); - } + // create the tab links + var tabs = $(''); + for (i = 0; i < allSections.length; i++) { + var item = allSections[i]; + html = $('
  • ' + item.text + "
  • "); + tabs.append(html); + } + + // insert tabs menu after title (`h1'), or at the beginning of the content + if ($(".title").length !== 0) { + $(".title").after(tabs); + } else { + $("#content").prepend(tabs); + } } function selectTabAndScroll(href) { - // At this point we assume that href is local (starts with #) - // alert(href); + // At this point we assume that href is local (starts with #) + // alert(href); - // Find the tab to activate - var targetTab = $(href).closest('.ui-tabs-panel'); - var targetTabId = targetTab.attr('id'); - var targetTabAriaLabel = targetTab.attr('aria-labelledby'); + // Find the tab to activate + var targetTab = $(href).closest(".ui-tabs-panel"); + var targetTabId = targetTab.attr("id"); + var targetTabAriaLabel = targetTab.attr("aria-labelledby"); - var targetTabIndex = $("#content ul li") - .index($('[aria-labelledby="' + targetTabAriaLabel + '"]')); + var targetTabIndex = $("#content ul li").index( + $('[aria-labelledby="' + targetTabAriaLabel + '"]') + ); - // Activate target tab - $('#content').tabs('option', 'active', targetTabIndex); + // Activate target tab + $("#content").tabs("option", "active", targetTabIndex); - // Rebuild minitoc - generateMiniToc(targetTabId); + // Rebuild minitoc + generateMiniToc(targetTabId); - // Set the location hash - // document.location.hash = href; + // Set the location hash + // document.location.hash = href; - // Scroll to top if href was a tab - if (href == '#' + targetTabId) { - // alert(targetTabId); - $.scrollTo(0); - } - // Scroll to href if href was not a tab - else { - $.scrollTo(href); - } + // Scroll to top if href was a tab + if (href == "#" + targetTabId) { + // alert(targetTabId); + $.scrollTo(0); + } + // Scroll to href if href was not a tab + else { + $.scrollTo(href); + } } -$(document).ready(function() { - $('#preamble').remove(); - $('#table-of-contents').remove(); +$(document).ready(function () { + $("#preamble").remove(); + $("#table-of-contents").remove(); - // Prepare for tabs - tabifySections(); + // Prepare for tabs + tabifySections(); - // Build the tabs from the #content div - $('#content').tabs(); + // Build the tabs from the #content div + $("#content").tabs(); - // Set default animation - $('#content').tabs('option', 'show', true); + // Set default animation + $("#content").tabs("option", "show", true); - // Rebuild minitoc when a tab is activated - $('#content').tabs({ - activate: function(event, ui) { - var divId = ui.newTab.attr('aria-controls'); - generateMiniToc(divId); - } - }); + // Rebuild minitoc when a tab is activated + $("#content").tabs({ + activate: function (event, ui) { + var divId = ui.newTab.attr("aria-controls"); + generateMiniToc(divId); + }, + }); - // Required to get the link of the tab in URL - $('#content ul').localScroll({ - target: '#content', - duration: 0, - hash: true - }); + // Required to get the link of the tab in URL + $("#content ul").localScroll({ + target: "#content", + duration: 0, + hash: true, + }); - // Handle hash in URL - if ($('#content') && document.location.hash) { - hsExpandAnchor(document.location.hash); - selectTabAndScroll(document.location.hash); - } - // If no hash, build the minitoc anyway for selected tab - else { - var divId = $('#content div[aria-expanded=true]').attr('id'); - generateMiniToc(divId); - } + // Handle hash in URL + if ($("#content") && document.location.hash) { + hsExpandAnchor(document.location.hash); + selectTabAndScroll(document.location.hash); + } + // If no hash, build the minitoc anyway for selected tab + else { + var divId = $("#content div[aria-expanded=true]").attr("id"); + generateMiniToc(divId); + } - // Handle click on internal links - $('.ui-tabs-panel a[href^="#"]').click(function(e) { - var href = $(this).attr('href'); - hsExpandAnchor(href); - selectTabAndScroll(href); - e.preventDefault(); - }); + // Handle click on internal links + $('.ui-tabs-panel a[href^="#"]').click(function (e) { + var href = $(this).attr("href"); + hsExpandAnchor(href); + selectTabAndScroll(href); + e.preventDefault(); + }); - // Initialize hideShow - hsInit(); + // Initialize hideShow + hsInit(); - // add sticky headers to tables - $('table').stickyTableHeaders(); + // add sticky headers to tables + $("table").stickyTableHeaders(); }); -function copyToClipboard(text) -{ - if (window.clipboardData && window.clipboardData.setData) { // Internet Explorer - window.clipboardData.setData("Text", text); - } - else { // Fallback solution - window.prompt("Copy to clipboard: Ctrl+C, Enter", text); - } +function copyToClipboard(text) { + if (window.clipboardData && window.clipboardData.setData) { + // Internet Explorer + window.clipboardData.setData("Text", text); + } else { + // Copy text to clipboard + navigator.clipboard.writeText(text).then( + () => {}, + () => {} + ); + } } -$(document).ready(function() { - // Assuming that the ZeroClipboard swf file is in the same folder than bigblow, - // get the path to it (it will be relative to the current page location). - var bbScriptPath = $('script[src$="bigblow.js"]').attr('src'); // the js file path - var bbPathToZeroClipboardSwf = bbScriptPath.replace('bigblow.js', 'ZeroClipboard.swf'); +$(document).ready(function () { + // Assuming that the ZeroClipboard swf file is in the same folder than bigblow, + // get the path to it (it will be relative to the current page location). + var bbScriptPath = $('script[src$="bigblow.js"]').attr("src"); // the js file path + var bbPathToZeroClipboardSwf = bbScriptPath.replace( + "bigblow.js", + "ZeroClipboard.swf" + ); - // Add copy to clipboard snippets - $('.org-src-container').prepend('
    [copy]
    '); + // Add copy to clipboard snippets + $(".org-src-container").prepend( + '
    [copy]
    ' + ); - // Display/hide snippets on source block mouseenter/mouseleave - $(document).on('mouseenter', '.org-src-container', function () { - $(this).find('.snippet-copy-to-clipboard').show(); - - // Need to call zclip here, once the button is visible. - // Beacause when the button is not visible, zclip does nothing. - if ((window.location.protocol != 'file:') && ($(this).find('.zclip').length == 0)) { - $(this).find('.copy-to-clipboard-button').zclip({ - //path: 'http://www.steamdev.com/zclip/js/ZeroClipboard.swf', - //path: 'src/bigblow_theme/js/ZeroClipboard.swf', - path: bbPathToZeroClipboardSwf, - copy: function() { - return $(this).parent().parent().find('.src').text(); - } - }); - } - }).on('mouseleave', '.org-src-container', function () { - $(this).find('.snippet-copy-to-clipboard').hide(); + // Display/hide snippets on source block mouseenter/mouseleave + $(document) + .on("mouseenter", ".org-src-container", function () { + $(this).find(".snippet-copy-to-clipboard").show(); + }) + .on("mouseleave", ".org-src-container", function () { + $(this).find(".snippet-copy-to-clipboard").hide(); }); - // Handle copy to clipboard (here, for a local file only 'file://...' - if (window.location.protocol == 'file:') { // if local file use browser-specific code - $('.copy-to-clipboard-button').click(function() { - // Get the text to be copied - var text = $(this).parent().parent().find('.src').text(); - text = text.replace(/\n/g, "\r\n"); - // alert(text); - copyToClipboard(text); - }); + // Handle copy to clipboard (here, for a local file only 'file://...' + if (window.location.protocol == "file:") { + // if local file use browser-specific code + $(".copy-to-clipboard-button").click(function () { + // Copy of src block + var codeBlock = $(this).parent().parent().find(".src").clone(); + // Remove line numbers if present + $(codeBlock).children(".linenr").remove(); + + // Text to be copied + text = $(codeBlock).text(); + text = text.replace(/\n/g, "\r\n", ""); + copyToClipboard(text); + }); + } +}); + +$(function () { + $('li > code :contains("[X]")').parent().addClass("checked").end().remove(); + $('li > code :contains("[-]")') + .parent() + .addClass("halfchecked") + .end() + .remove(); + $('li > code :contains("[ ]")').parent().addClass("unchecked").end().remove(); +}); + +$(function () { + $('i :contains("[#A]")').replaceWith( + '[#A]' + ); + $('i :contains("[#B]")').replaceWith( + '[#B]' + ); + $('i :contains("[#C]")').replaceWith( + '[#C]' + ); +}); + +$(function () { + $( + '
    ^ Back to Top
    ' + ).appendTo("body"); + + $(window).scroll(function () { + if ($(this).scrollTop() != 0) { + $("#toTop").fadeIn(); + } else { + $("#toTop").fadeOut(); } -}); + }); -$(function() { - $('li > code :contains("[X]")') - .parent() - .addClass('checked') - .end() - .remove(); - $('li > code :contains("[-]")') - .parent() - .addClass('halfchecked') - .end() - .remove(); - $('li > code :contains("[ ]")') - .parent() - .addClass('unchecked') - .end() - .remove(); -}); - -$(function() { - $('i :contains("[#A]")') - .replaceWith('[#A]'); - $('i :contains("[#B]")') - .replaceWith('[#B]'); - $('i :contains("[#C]")') - .replaceWith('[#C]'); -}); - -$(function() { - $('
    ^ Back to Top
    ').appendTo('body'); - - $(window).scroll(function() { - if ($(this).scrollTop() != 0) { - $('#toTop').fadeIn(); - } else { - $('#toTop').fadeOut(); - } - }); - - $('#toTop').click(function(e) { - $('html, body').animate({scrollTop: 0}, 800); - e.preventDefault(); // Disable default browser behavior - }); + $("#toTop").click(function (e) { + $("html, body").animate({ scrollTop: 0 }, 800); + e.preventDefault(); // Disable default browser behavior + }); }); function togglePanel(e) { - e.preventDefault(); + e.preventDefault(); - $("#left-panel-contents").toggleClass('active').toggle(200); - $("#right-panel-contents").toggleClass('active').toggle(200); + $("#left-panel-contents").toggleClass("active").toggle(200); + $("#right-panel-contents").toggleClass("active").toggle(200); - var slidePos = - $("#left-panel-button").css("left") == "-23px"? '182px': '-23px'; + var slidePos = + $("#left-panel-button").css("left") == "-23px" ? "182px" : "-23px"; - $("#left-panel-button"). - animate({"left": slidePos, "opacity": 0.9}, {duration: "200" }); + $("#left-panel-button").animate( + { left: slidePos, opacity: 0.9 }, + { duration: "200" } + ); - // if ($("#left-panel-contents").hasClass('active')) { - // hsHideTodoKeyword('done'); - // } else { - // hsShowTodoKeyword('done'); - // } + // if ($("#left-panel-contents").hasClass('active')) { + // hsHideTodoKeyword('done'); + // } else { + // hsShowTodoKeyword('done'); + // } - // return false; + // return false; } -$(function() { - $('
    Dashboard
    ') - .appendTo('body'); +$(function () { + $( + '
    Dashboard
    ' + ).appendTo("body"); - $('
    ') - .appendTo('body'); + $( + '
    ' + ).appendTo("body"); - $('#left-panel-button').click(togglePanel); + $("#left-panel-button").click(togglePanel); }); -$(function() { - var ul = $('').appendTo('#left-panel-contents'); - var countOfTodo = {}, listOfTodo = [], totalOfTodo = 0; +$(function () { + var ul = $('').appendTo("#left-panel-contents"); + var countOfTodo = {}, + listOfTodo = [], + totalOfTodo = 0; - // assign the counts (avoid double-counting elements from the ToC) - $('span.todo').not($('#table-of-contents span.todo')).each(function() { - var $thisTodo = $(this).text().trim(); + // assign the counts (avoid double-counting elements from the ToC) + $("span.todo") + .not($("#table-of-contents span.todo")) + .each(function () { + var $thisTodo = $(this).text().trim(); - if ($.inArray($thisTodo, listOfTodo) == -1) { - countOfTodo[$thisTodo] = 1; - listOfTodo.push($thisTodo); - } - else - countOfTodo[$thisTodo] += 1; - totalOfTodo += 1; + if ($.inArray($thisTodo, listOfTodo) == -1) { + countOfTodo[$thisTodo] = 1; + listOfTodo.push($thisTodo); + } else countOfTodo[$thisTodo] += 1; + totalOfTodo += 1; }); - function scoreTodo(t) { - switch (t) { - case 'NEW': return 1; - case 'TODO': return 2; - case 'STRT': return 3; - case 'WAIT': return 4; - case 'DLGT': return 5; - case 'SDAY': return 6; - case 'DFRD': return 7; - case 'DONE': return 8; - case 'CANX': return 9; - default: return 0; - } - } - - function compareTodo(a, b) { - if (scoreTodo(a) < scoreTodo(b)) return -1; - if (scoreTodo(a) > scoreTodo(b)) return 1; + function scoreTodo(t) { + switch (t) { + case "NEW": + return 1; + case "TODO": + return 2; + case "STRT": + return 3; + case "WAIT": + return 4; + case "DLGT": + return 5; + case "SDAY": + return 6; + case "DFRD": + return 7; + case "DONE": + return 8; + case "CANX": + return 9; + default: return 0; } + } - listOfTodo.sort(compareTodo); + function compareTodo(a, b) { + if (scoreTodo(a) < scoreTodo(b)) return -1; + if (scoreTodo(a) > scoreTodo(b)) return 1; + return 0; + } - // display - for (i = 0; i < listOfTodo.length; i++) { - var $thisTodo = listOfTodo[i]; - $(ul).append('
  • '+ $thisTodo + '' - + ' (' + countOfTodo[$thisTodo] + ')
  • '); - } + listOfTodo.sort(compareTodo); - $('#listOfTodo') - .before('Next Actions (' + totalOfTodo + '):
    '); + // display + for (i = 0; i < listOfTodo.length; i++) { + var $thisTodo = listOfTodo[i]; + $(ul).append( + '
  • ' + + $thisTodo + + "" + + " (" + + countOfTodo[$thisTodo] + + ")
  • " + ); + } + + $("#listOfTodo").before( + "Next Actions (" + totalOfTodo + "):
    " + ); }); -$(function() { - var ul = $('').appendTo('#left-panel-contents'); - var countOfDone = {}, listOfDone = [], totalOfDone = 0; +$(function () { + var ul = $('').appendTo("#left-panel-contents"); + var countOfDone = {}, + listOfDone = [], + totalOfDone = 0; - // assign the counts (avoid double-counting elements from the ToC) - $('span.done').not($('#table-of-contents span.done')).each(function() { - var $thisDone = $(this).text().trim(); + // assign the counts (avoid double-counting elements from the ToC) + $("span.done") + .not($("#table-of-contents span.done")) + .each(function () { + var $thisDone = $(this).text().trim(); - if ($.inArray($thisDone, listOfDone) == -1) { - countOfDone[$thisDone] = 1; - listOfDone.push($thisDone); - } - else - countOfDone[$thisDone] += 1; - totalOfDone += 1; + if ($.inArray($thisDone, listOfDone) == -1) { + countOfDone[$thisDone] = 1; + listOfDone.push($thisDone); + } else countOfDone[$thisDone] += 1; + totalOfDone += 1; }); - // display - for (i = 0; i < listOfDone.length; i++) { - var $thisDone = listOfDone[i]; - $(ul).append('
  • '+ $thisDone + '' - + ' (' + countOfDone[$thisDone] + ')
  • '); - } + // display + for (i = 0; i < listOfDone.length; i++) { + var $thisDone = listOfDone[i]; + $(ul).append( + '
  • ' + + $thisDone + + "" + + " (" + + countOfDone[$thisDone] + + ")
  • " + ); + } - $('#listOfDone') - .before('Done Actions (' + totalOfDone + '):
    '); + $("#listOfDone").before( + "Done Actions (" + totalOfDone + "):
    " + ); }); -$(function() { - var ul = $('').appendTo('#right-panel-contents'); - var countOfTags = {}, listOfTags = [], totalOfTags = 0; +$(function () { + var ul = $('').appendTo("#right-panel-contents"); + var countOfTags = {}, + listOfTags = [], + totalOfTags = 0; - // assign the counts (avoid double-counting elements from the ToC) - $('span.tag').not($('#table-of-contents span.tag')).each(function() { - var $thisTagGroup = $(this).text().trim().split(/\s/); - // \s matches spaces, tabs, new lines, etc. + // assign the counts (avoid double-counting elements from the ToC) + $("span.tag") + .not($("#table-of-contents span.tag")) + .each(function () { + var $thisTagGroup = $(this).text().trim().split(/\s/); + // \s matches spaces, tabs, new lines, etc. - for (tag in $thisTagGroup) { - if ($.inArray($thisTagGroup[tag], listOfTags) == -1) { - countOfTags[$thisTagGroup[tag]] = 1; - listOfTags.push($thisTagGroup[tag]); - } - else - countOfTags[$thisTagGroup[tag]] += 1; - totalOfTags += 1; - } + for (tag in $thisTagGroup) { + if ($.inArray($thisTagGroup[tag], listOfTags) == -1) { + countOfTags[$thisTagGroup[tag]] = 1; + listOfTags.push($thisTagGroup[tag]); + } else countOfTags[$thisTagGroup[tag]] += 1; + totalOfTags += 1; + } }); - listOfTags.sort(); + listOfTags.sort(); - // display - for (i = 0; i < listOfTags.length; i++) { - var $thisTag = listOfTags[i]; - // $(ul).append('
  • '+ - // $thisTag + ' (' + countOfTags[$thisTag] + ')
  • '); - $(ul).append('
  • ' + $thisTag - + '' - + ' (' + countOfTags[$thisTag] + ')
  • '); - } + // display + for (i = 0; i < listOfTags.length; i++) { + var $thisTag = listOfTags[i]; + // $(ul).append('
  • '+ + // $thisTag + ' (' + countOfTags[$thisTag] + ')
  • '); + $(ul).append( + '
  • ' + + $thisTag + + "" + + " (" + + countOfTags[$thisTag] + + ")
  • " + ); + } - $('#listOfTags') - .before('Contexts (' + totalOfTags + '):
    '); + $("#listOfTags").before( + "Contexts (" + totalOfTags + "):
    " + ); }); -$(function() { - $('.done').parent(':header').parent().find(':header').addClass('DONEheader'); - $('.done').parent(':header').parent().css({color: '#999999'}); +$(function () { + $(".done").parent(":header").parent().find(":header").addClass("DONEheader"); + $(".done").parent(":header").parent().css({ color: "#999999" }); }); -$(function() { - $('span.todo').click(function(e) { - var orgKeyword = $(this).text().trim(); - $('.' + orgKeyword).toggleClass('selected'); - $('#content .' + orgKeyword).parent().parent() - .toggleClass('match' + orgKeyword); - $('#left-panel-wrapper .' + orgKeyword).parent() - .toggleClass('match' + orgKeyword); - e.preventDefault(); - }) +$(function () { + $("span.todo").click(function (e) { + var orgKeyword = $(this).text().trim(); + $("." + orgKeyword).toggleClass("selected"); + $("#content ." + orgKeyword) + .parent() + .parent() + .toggleClass("match" + orgKeyword); + $("#left-panel-wrapper ." + orgKeyword) + .parent() + .toggleClass("match" + orgKeyword); + e.preventDefault(); + }); }); -$(function() { - $('.tag span').click(function(e) { - var orgTag = $(this).text().trim(); - $('.' + orgTag).toggleClass('selected'); - $('#content .' + orgTag).parent().parent().parent() - .toggleClass('matchtag'); - $('#right-panel-wrapper .' + orgTag).parent().parent() - .toggleClass('matchtag'); - e.preventDefault(); - }) +$(function () { + $(".tag span").click(function (e) { + var orgTag = $(this).text().trim(); + $("." + orgTag).toggleClass("selected"); + $("#content ." + orgTag) + .parent() + .parent() + .parent() + .toggleClass("matchtag"); + $("#right-panel-wrapper ." + orgTag) + .parent() + .parent() + .toggleClass("matchtag"); + e.preventDefault(); + }); }); function clickPreviousTab() { - var active = $('#content').tabs('option', 'active'); - // Avoid going back to last tab - if (active == 0) return; + var active = $("#content").tabs("option", "active"); + // Avoid going back to last tab + if (active == 0) return; - $('#content').tabs('option', 'active', active - 1); + $("#content").tabs("option", "active", active - 1); - // Set the location href - var href = $('#content div[aria-expanded=true]').attr('id'); - document.location.hash = href; - $.scrollTo(0); + // Set the location href + var href = $("#content div[aria-expanded=true]").attr("id"); + document.location.hash = href; + $.scrollTo(0); } function clickNextTab() { - var active = $('#content').tabs('option', 'active'); - $('#content').tabs('option', 'active', active + 1); + var active = $("#content").tabs("option", "active"); + $("#content").tabs("option", "active", active + 1); - // Set the location href - var href = $('#content div[aria-expanded=true]').attr('id'); - document.location.hash = href; - $.scrollTo(0); + // Set the location href + var href = $("#content div[aria-expanded=true]").attr("id"); + document.location.hash = href; + $.scrollTo(0); } function orgDefkey(e) { - if (!e) - var e = window.event; - var keycode = (e.keyCode) ? e.keyCode : e.which; - var actualkey = String.fromCharCode(keycode); - switch (actualkey) { - case "?": // help (dashboard) - case "h": - togglePanel(e); - break; - case "n": // next - clickNextTab(); - break; - case "p": // previous - clickPreviousTab(); - break; - // case "b": // scroll down - should be mapped to Shift-SPC - // $(window).scrollTop($(window).scrollTop()-$(window).height()); - // break; - case "<": // scroll to top - $(window).scrollTop(0); - break; - case ">": // scroll to bottom - $(window).scrollTop($(document).height()); - break; - case "-": // collapse all - hsCollapseAll(); - break; - case "+": // expand all - hsExpandAll(); - break; - case "r": // go to next task - hsReviewTaskNext(); - break; - case "R": // go to previous task - hsReviewTaskPrev(); - break; - case "q": // quit reviewing - hsReviewTaskQuit(); - break; - case "g": // refresh the page (from the server, rather than the cache) - location.reload(true); - break; - } + if (!e) var e = window.event; + var keycode = e.keyCode ? e.keyCode : e.which; + var actualkey = String.fromCharCode(keycode); + switch (actualkey) { + case "?": // help (dashboard) + case "h": + togglePanel(e); + break; + case "n": // next + clickNextTab(); + break; + case "p": // previous + clickPreviousTab(); + break; + // case "b": // scroll down - should be mapped to Shift-SPC + // $(window).scrollTop($(window).scrollTop()-$(window).height()); + // break; + case "<": // scroll to top + $(window).scrollTop(0); + break; + case ">": // scroll to bottom + $(window).scrollTop($(document).height()); + break; + case "-": // collapse all + hsCollapseAll(); + break; + case "+": // expand all + hsExpandAll(); + break; + case "r": // go to next task + hsReviewTaskNext(); + break; + case "R": // go to previous task + hsReviewTaskPrev(); + break; + case "q": // quit reviewing + hsReviewTaskQuit(); + break; + case "g": // refresh the page (from the server, rather than the cache) + location.reload(true); + break; + } } document.onkeypress = orgDefkey;