mirror of https://github.com/twbs/bootstrap.git
				
				
				
			
		
			
				
	
	
		
			168 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			168 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
 | 
						|
// IT'S ALL JUST JUNK FOR OUR DOCS!
 | 
						|
// ++++++++++++++++++++++++++++++++++++++++++
 | 
						|
 | 
						|
!function ($) {
 | 
						|
 | 
						|
  $(function(){
 | 
						|
 | 
						|
    var $window = $(window)
 | 
						|
 | 
						|
    // Disable certain links in docs
 | 
						|
    $('section [href^=#]').click(function (e) {
 | 
						|
      e.preventDefault()
 | 
						|
    })
 | 
						|
 | 
						|
    // side bar
 | 
						|
    $('.bs-docs-sidenav').affix({
 | 
						|
      offset: {
 | 
						|
        top: function () { return $window.width() <= 980 ? 290 : 210 }
 | 
						|
      , bottom: 270
 | 
						|
      }
 | 
						|
    })
 | 
						|
 | 
						|
    // 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 ($('#gridSystem').length) {
 | 
						|
      $('#gridSystem').tooltip({
 | 
						|
          selector: '.show-grid > div'
 | 
						|
        , title: function () { return $(this).width() + 'px' }
 | 
						|
      })
 | 
						|
    }
 | 
						|
 | 
						|
    // tooltip demo
 | 
						|
    $('.tooltip-demo').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: /\?dev/.test(window.location) ? 'http://localhost:3000' : '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) |