doc/js/app.js in attrtastic-0.2.2 vs doc/js/app.js in attrtastic-0.3.0

- old
+ new

@@ -29,18 +29,16 @@ function createFullTreeLinks() { var tHeight = 0; $('.inheritanceTree').toggle(function() { tHeight = $(this).parent().prev().height(); - $(this).prev().prev().hide(); - $(this).prev().show(); + $(this).parent().toggleClass('showAll'); $(this).text("(hide)"); $(this).parent().prev().height($(this).parent().height()); }, function() { - $(this).prev().prev().show(); - $(this).prev().hide(); + $(this).parent().toggleClass('showAll'); $(this).parent().prev().height(tHeight); $(this).text("show all") }); } @@ -85,15 +83,120 @@ function framesInit() { if (window.top.frames.main) { document.body.className = 'frames'; $('#menu .noframes a').attr('href', document.location); + $('html head title', window.parent.document).text($('html head title').text()); } } +function keyboardShortcuts() { + if (window.top.frames.main) return; + $(document).keypress(function(evt) { + if (evt.altKey || evt.ctrlKey || evt.metaKey || evt.shiftKey) return; + if (evt.originalTarget.nodeName == "INPUT" || + evt.originalTarget.nodeName == "TEXTAREA") return; + switch (evt.charCode) { + case 67: case 99: $('#class_list_link').click(); break; // 'c' + case 77: case 109: $('#method_list_link').click(); break; // 'm' + case 70: case 102: $('#file_list_link').click(); break; // 'f' + } + }); +} + +function summaryToggle() { + $('.summary_toggle').click(function() { + localStorage.summaryCollapsed = $(this).text(); + $(this).text($(this).text() == "collapse" ? "expand" : "collapse"); + var next = $(this).parent().parent().next(); + if (next.hasClass('compact')) { + next.toggle(); + next.next().toggle(); + } + else if (next.hasClass('summary')) { + var list = $('<ul class="summary compact" />'); + list.html(next.html()); + list.find('.summary_desc, .note').remove(); + list.find('a').each(function() { + $(this).html($(this).find('strong').html()); + $(this).parent().html($(this)[0].outerHTML); + }); + next.before(list); + next.toggle(); + } + return false; + }); + if (localStorage) { + if (localStorage.summaryCollapsed == "collapse") $('.summary_toggle').click(); + else localStorage.summaryCollapsed = "expand"; + } +} + +function fixOutsideWorldLinks() { + $('a').each(function() { + if (window.location.host != this.host) this.target = '_parent'; + }); +} + +function generateTOC() { + if ($('#filecontents').length == 0) return; + var _toc = $('<ol class="top"></ol>'); + var show = false; + var toc = _toc; + var counter = 0; + var tags = ['h2', 'h3', 'h4', 'h5', 'h6']; + if ($('#filecontents h1').length > 1) tags.unshift('h1'); + for (i in tags) { tags[i] = '#filecontents ' + tags[i] } + var lastTag = parseInt(tags[0][1]); + $(tags.join(', ')).each(function() { + if (this.id == "filecontents") return; + show = true; + var thisTag = parseInt(this.tagName[1]); + if (this.id.length == 0) { + var proposedId = $(this).text().replace(/[^a-z0-9:\.()=-]/ig, '_'); + if ($('#' + proposedId).length > 0) proposedId += counter++; + this.id = proposedId; + } + if (thisTag > lastTag) { + for (var i = 0; i < thisTag - lastTag; i++) { + var tmp = $('<ol/>'); toc.append(tmp); toc = tmp; + } + } + if (thisTag < lastTag) { + for (var i = 0; i < lastTag - thisTag; i++) toc = toc.parent(); + } + toc.append('<li><a href="#' + this.id + '">' + $(this).text() + '</a></li>'); + lastTag = thisTag; + }); + if (!show) return; + html = '<div id="toc"><p class="title"><a class="hide_toc" href="#"><strong>Table of Contents</strong></a> <small>(<a href="#" class="float_toc">left</a>)</small></p></div>'; + $('#content').prepend(html); + $('#toc').append(_toc); + $('#toc .hide_toc').toggle(function() { + $('#toc .top').slideUp('fast'); + $('#toc').toggleClass('hidden'); + $('#toc .title small').toggle(); + }, function() { + $('#toc .top').slideDown('fast'); + $('#toc').toggleClass('hidden'); + $('#toc .title small').toggle(); + }); + $('#toc .float_toc').toggle(function() { + $(this).text('float'); + $('#toc').toggleClass('nofloat'); + }, function() { + $(this).text('left') + $('#toc').toggleClass('nofloat'); + }); +} + $(framesInit); $(createSourceLinks); $(createDefineLinks); $(createFullTreeLinks); $(fixBoxInfoHeights); $(searchFrameLinks); $(linkSummaries); +$(keyboardShortcuts); +$(summaryToggle); +$(fixOutsideWorldLinks); +$(generateTOC); \ No newline at end of file