diff options
Diffstat (limited to 'docs/assets/js/application.js')
| -rw-r--r-- | docs/assets/js/application.js | 209 |
1 files changed, 169 insertions, 40 deletions
diff --git a/docs/assets/js/application.js b/docs/assets/js/application.js index 5beba46e1..b29b63aee 100644 --- a/docs/assets/js/application.js +++ b/docs/assets/js/application.js @@ -1,52 +1,181 @@ -$(document).ready(function(){ +// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT +// IT'S ALL JUST JUNK FOR OUR DOCS! +// ++++++++++++++++++++++++++++++++++++++++++ - // table sort example - // ================== +!function ($) { - $("#sortTableExample").tablesorter( { sortList: [[ 1, 0 ]] } ) + $(function(){ + // Disable certain links in docs + $('section [href^=#]').click(function (e) { + e.preventDefault() + }) - // add on logic - // ============ + // make code pretty + window.prettyPrint && prettyPrint() - $('.add-on :checkbox').click(function () { - if ($(this).attr('checked')) { - $(this).parents('.add-on').addClass('active') - } else { - $(this).parents('.add-on').removeClass('active') + // add-ons + $('.add-on :checkbox').on('click', function () { + var $this = $(this) + , method = $this.attr('checked') ? 'addClass' : 'removeClass' + $(this).parents('.add-on')[method]('active') + }) + + // position static twipsies for components page + if ($(".twipsies a").length) { + $(window).on('load resize', function () { + $(".twipsies a").each(function () { + $(this) + .tooltip({ + placement: $(this).attr('title') + , trigger: 'manual' + }) + .tooltip('show') + }) + }) } - }) + // add tipsies to grid for scaffolding + if ($('#grid-system').length) { + $('#grid-system').tooltip({ + selector: '.show-grid > div' + , title: function () { return $(this).width() + 'px' } + }) + } - // Disable certain links in docs - // ============================= - // Please do not carry these styles over to your projects, it's merely here to prevent button clicks form taking you away from your spot on page + // fix sub nav on scroll + var $win = $(window) + , $nav = $('.subnav') + , navTop = $('.subnav').length && $('.subnav').offset().top - 40 + , isFixed = 0 - $('ul.tabs a, ul.pills a, .pagination a, .well .btn, .actions .btn, .alert-message .btn, a.close').click(function (e) { - e.preventDefault() - }) + processScroll() + + $win.on('scroll', processScroll) + + function processScroll() { + var i, scrollTop = $win.scrollTop() + if (scrollTop >= navTop && !isFixed) { + isFixed = 1 + $nav.addClass('subnav-fixed') + } else if (scrollTop <= navTop && isFixed) { + isFixed = 0 + $nav.removeClass('subnav-fixed') + } + } - // Copy code blocks in docs - $(".copy-code").focus(function () { - var el = this; - // push select to event loop for chrome :{o - setTimeout(function () { $(el).select(); }, 0); - }); - - - // POSITION STATIC TWIPSIES - // ======================== - - $(window).bind( 'load resize', function () { - $(".twipsies a").each(function () { - $(this) - .twipsy({ - live: false - , placement: $(this).attr('title') - , trigger: 'manual' - , offset: 2 - }) - .twipsy('show') + // tooltip demo + $('.tooltip-demo.well').tooltip({ + selector: "a[rel=tooltip]" + }) + + $('.tooltip-test').tooltip() + $('.popover-test').popover() + + // popover demo + $("a[rel=popover]") + .popover() + .click(function(e) { + e.preventDefault() }) + + // button state demo + $('#fat-btn') + .click(function () { + var btn = $(this) + btn.button('loading') + setTimeout(function () { + btn.button('reset') + }, 3000) + }) + + // carousel demo + $('#myCarousel').carousel() + + // javascript build logic + var inputsComponent = $("#components.download input") + , inputsPlugin = $("#plugins.download input") + , inputsVariables = $("#variables.download input") + + // toggle all plugin checkboxes + $('#components.download .toggle-all').on('click', function (e) { + e.preventDefault() + inputsComponent.attr('checked', !inputsComponent.is(':checked')) + }) + + $('#plugins.download .toggle-all').on('click', function (e) { + e.preventDefault() + inputsPlugin.attr('checked', !inputsPlugin.is(':checked')) + }) + + $('#variables.download .toggle-all').on('click', function (e) { + e.preventDefault() + inputsVariables.val('') + }) + + // request built javascript + $('.download-btn').on('click', function () { + + var css = $("#components.download input:checked") + .map(function () { return this.value }) + .toArray() + , js = $("#plugins.download input:checked") + .map(function () { return this.value }) + .toArray() + , vars = {} + , img = ['glyphicons-halflings.png', 'glyphicons-halflings-white.png'] + + $("#variables.download input") + .each(function () { + $(this).val() && (vars[ $(this).prev().text() ] = $(this).val()) + }) + + $.ajax({ + type: 'POST' + , url: 'http://bootstrap.herokuapp.com' + , dataType: 'jsonpi' + , params: { + branch: '2.0-wip' + , js: js + , css: css + , vars: vars + , img: img + } + }) + }) + }) -}); + +// Modified from the original jsonpi https://github.com/benvinegar/jquery-jsonpi +$.ajaxTransport('jsonpi', function(opts, originalOptions, jqXHR) { + var url = opts.url; + + return { + send: function(_, completeCallback) { + var name = 'jQuery_iframe_' + jQuery.now() + , iframe, form + + iframe = $('<iframe>') + .attr('name', name) + .appendTo('head') + + form = $('<form>') + .attr('method', opts.type) // GET or POST + .attr('action', url) + .attr('target', name) + + $.each(opts.params, function(k, v) { + + $('<input>') + .attr('type', 'hidden') + .attr('name', k) + .attr('value', typeof v == 'string' ? v : JSON.stringify(v)) + .appendTo(form) + }) + + form.appendTo('body').submit() + } + } +}) + +}(window.jQuery)
\ No newline at end of file |
