| // NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT |
| // IT'S ALL JUST JUNK FOR OUR DOCS! |
| // ++++++++++++++++++++++++++++++++++++++++++ |
| |
| !function ($) { |
| |
| $(function(){ |
| |
| // Disable certain links in docs |
| $('section [href^=#]').click(function (e) { |
| e.preventDefault() |
| }) |
| |
| // make code pretty |
| window.prettyPrint && prettyPrint() |
| |
| // 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' } |
| }) |
| } |
| |
| // fix sub nav on scroll |
| var $win = $(window) |
| , $nav = $('.subnav') |
| , navTop = $('.subnav').length && $('.subnav').offset().top - 40 |
| , isFixed = 0 |
| |
| 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') |
| } |
| } |
| |
| // 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: { |
| 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) |