aboutsummaryrefslogtreecommitdiff
path: root/docs/js/app.js
diff options
context:
space:
mode:
authorTim Meusel <tim@bastelfreak.de>2017-09-18 15:23:36 +0200
committerTim Meusel <tim@bastelfreak.de>2018-03-15 17:06:08 +0100
commit2d355a4c1baadc761d6b12645d0274da8866f722 (patch)
treee6d1a78f9719397ed9ce9144bf4706a3ccd46c48 /docs/js/app.js
downloadpuppet-ferm-2d355a4c1baadc761d6b12645d0274da8866f722.tar.gz
puppet-ferm-2d355a4c1baadc761d6b12645d0274da8866f722.tar.bz2
initial commit
Diffstat (limited to 'docs/js/app.js')
-rw-r--r--docs/js/app.js248
1 files changed, 248 insertions, 0 deletions
diff --git a/docs/js/app.js b/docs/js/app.js
new file mode 100644
index 0000000..b9f2120
--- /dev/null
+++ b/docs/js/app.js
@@ -0,0 +1,248 @@
+(function() {
+
+var localStorage = {}, sessionStorage = {};
+try { localStorage = window.localStorage; } catch (e) { }
+try { sessionStorage = window.sessionStorage; } catch (e) { }
+
+function createSourceLinks() {
+ $('.method_details_list .source_code').
+ before("<span class='showSource'>[<a href='#' class='toggleSource'>View source</a>]</span>");
+ $('.toggleSource').toggle(function() {
+ $(this).parent().nextAll('.source_code').slideDown(100);
+ $(this).text("Hide source");
+ },
+ function() {
+ $(this).parent().nextAll('.source_code').slideUp(100);
+ $(this).text("View source");
+ });
+}
+
+function createDefineLinks() {
+ var tHeight = 0;
+ $('.defines').after(" <a href='#' class='toggleDefines'>more...</a>");
+ $('.toggleDefines').toggle(function() {
+ tHeight = $(this).parent().prev().height();
+ $(this).prev().css('display', 'inline');
+ $(this).parent().prev().height($(this).parent().height());
+ $(this).text("(less)");
+ },
+ function() {
+ $(this).prev().hide();
+ $(this).parent().prev().height(tHeight);
+ $(this).text("more...");
+ });
+}
+
+function createFullTreeLinks() {
+ var tHeight = 0;
+ $('.inheritanceTree').toggle(function() {
+ tHeight = $(this).parent().prev().height();
+ $(this).parent().toggleClass('showAll');
+ $(this).text("(hide)");
+ $(this).parent().prev().height($(this).parent().height());
+ },
+ function() {
+ $(this).parent().toggleClass('showAll');
+ $(this).parent().prev().height(tHeight);
+ $(this).text("show all");
+ });
+}
+
+function searchFrameButtons() {
+ $('.full_list_link').click(function() {
+ toggleSearchFrame(this, $(this).attr('href'));
+ return false;
+ });
+ window.addEventListener('message', function(e) {
+ if (e.data === 'navEscape') {
+ $('#nav').slideUp(100);
+ $('#search a').removeClass('active inactive');
+ $(window).focus();
+ }
+ });
+
+ $(window).resize(function() {
+ if ($('#search:visible').length === 0) {
+ $('#nav').removeAttr('style');
+ $('#search a').removeClass('active inactive');
+ $(window).focus();
+ }
+ });
+}
+
+function toggleSearchFrame(id, link) {
+ var frame = $('#nav');
+ $('#search a').removeClass('active').addClass('inactive');
+ if (frame.attr('src') === link && frame.css('display') !== "none") {
+ frame.slideUp(100);
+ $('#search a').removeClass('active inactive');
+ }
+ else {
+ $(id).addClass('active').removeClass('inactive');
+ if (frame.attr('src') !== link) frame.attr('src', link);
+ frame.slideDown(100);
+ }
+}
+
+function linkSummaries() {
+ $('.summary_signature').click(function() {
+ document.location = $(this).find('a').attr('href');
+ });
+}
+
+function summaryToggle() {
+ $('.summary_toggle').click(function(e) {
+ e.preventDefault();
+ localStorage.summaryCollapsed = $(this).text();
+ $('.summary_toggle').each(function() {
+ $(this).text($(this).text() == "collapse" ? "expand" : "collapse");
+ var next = $(this).parent().parent().nextAll('ul.summary').first();
+ if (next.hasClass('compact')) {
+ next.toggle();
+ next.nextAll('ul.summary').first().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.summaryCollapsed == "collapse") {
+ $('.summary_toggle').first().click();
+ } else { localStorage.summaryCollapsed = "expand"; }
+}
+
+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'];
+ var i;
+ if ($('#filecontents h1').length > 1) tags.unshift('h1');
+ for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
+ var lastTag = parseInt(tags[0][1], 10);
+ $(tags.join(', ')).each(function() {
+ if ($(this).parents('.method_details .docstring').length != 0) return;
+ if (this.id == "filecontents") return;
+ show = true;
+ var thisTag = parseInt(this.tagName[1], 10);
+ if (this.id.length === 0) {
+ var proposedId = $(this).attr('toc-id');
+ if (typeof(proposedId) != "undefined") this.id = proposedId;
+ else {
+ var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
+ if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
+ this.id = proposedId;
+ }
+ }
+ if (thisTag > lastTag) {
+ for (i = 0; i < thisTag - lastTag; i++) {
+ var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
+ }
+ }
+ if (thisTag < lastTag) {
+ for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
+ }
+ var title = $(this).attr('toc-title');
+ if (typeof(title) == "undefined") title = $(this).text();
+ toc.append('<li><a href="#' + this.id + '">' + title + '</a></li>');
+ lastTag = thisTag;
+ });
+ if (!show) return;
+ html = '<div id="toc"><p class="title hide_toc"><a href="#"><strong>Table of Contents</strong></a></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();
+ });
+}
+
+function navResizeFn(e) {
+ if (e.which !== 1) {
+ navResizeFnStop();
+ return;
+ }
+
+ sessionStorage.navWidth = e.pageX.toString();
+ $('.nav_wrap').css('width', e.pageX);
+ $('.nav_wrap').css('-ms-flex', 'inherit');
+}
+
+function navResizeFnStop() {
+ $(window).unbind('mousemove', navResizeFn);
+ window.removeEventListener('message', navMessageFn, false);
+}
+
+function navMessageFn(e) {
+ if (e.data.action === 'mousemove') navResizeFn(e.data.event);
+ if (e.data.action === 'mouseup') navResizeFnStop();
+}
+
+function navResizer() {
+ $('#resizer').mousedown(function(e) {
+ e.preventDefault();
+ $(window).mousemove(navResizeFn);
+ window.addEventListener('message', navMessageFn, false);
+ });
+ $(window).mouseup(navResizeFnStop);
+
+ if (sessionStorage.navWidth) {
+ navResizeFn({which: 1, pageX: parseInt(sessionStorage.navWidth, 10)});
+ }
+}
+
+function navExpander() {
+ var done = false, timer = setTimeout(postMessage, 500);
+ function postMessage() {
+ if (done) return;
+ clearTimeout(timer);
+ var opts = { action: 'expand', path: pathId };
+ document.getElementById('nav').contentWindow.postMessage(opts, '*');
+ done = true;
+ }
+
+ window.addEventListener('message', function(event) {
+ if (event.data === 'navReady') postMessage();
+ return false;
+ }, false);
+}
+
+function mainFocus() {
+ var hash = window.location.hash;
+ if (hash !== '' && $(hash)[0]) {
+ $(hash)[0].scrollIntoView();
+ }
+
+ setTimeout(function() { $('#main').focus(); }, 10);
+}
+
+$(document).ready(function() {
+ navResizer();
+ navExpander();
+ createSourceLinks();
+ createDefineLinks();
+ createFullTreeLinks();
+ searchFrameButtons();
+ linkSummaries();
+ summaryToggle();
+ generateTOC();
+ mainFocus();
+});
+
+})();