application.js 3.85 KB
Newer Older
1
2
3
// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
// IT'S ALL JUST JUNK FOR OUR DOCS!
// ++++++++++++++++++++++++++++++++++++++++++
4

5
!function ($) {
6

7
  $(function(){
Jacob Thornton's avatar
Jacob Thornton committed
8

9
10
    var $window = $(window)

11
    // Disable certain links in docs
12
    $('.bs-docs-container [href=#]').click(function (e) {
13
14
15
      e.preventDefault()
    })

fat's avatar
fat committed
16

17
    // back to top
Mark Otto's avatar
Mark Otto committed
18
    setTimeout(function () {
fat's avatar
fat committed
19
20
21
      var $sideBar = $('.bs-sidebar')

      $sideBar.affix({
Mark Otto's avatar
Mark Otto committed
22
        offset: {
fat's avatar
fat committed
23
24
25
26
27
28
29
30
31
32
          top: function () {
            var offsetTop      = $sideBar.offset().top
            var sideBarMargin  = parseInt($sideBar.children(0).css('margin-top'), 10)
            var navOuterHeight = $('.bs-docs-nav').height()

            return (this.top = offsetTop - navOuterHeight - sideBarMargin)
          }
        , bottom: function () {
            return (this.bottom = $('.bs-footer').outerHeight(true))
          }
Mark Otto's avatar
Mark Otto committed
33
34
35
        }
      })
    }, 100)
36

37
    setTimeout(function () {
Mark Otto's avatar
Mark Otto committed
38
      $('.bs-top').affix()
39
40
    }, 100)

Jacob Thornton's avatar
Jacob Thornton committed
41
    // tooltip demo
42
    $('.tooltip-demo').tooltip({
43
      selector: "[data-toggle=tooltip]"
Jacob Thornton's avatar
Jacob Thornton committed
44
    })
45

46
47
    $('.tooltip-test').tooltip()
    $('.popover-test').popover()
Jacob Thornton's avatar
Jacob Thornton committed
48

Mark Otto's avatar
Mark Otto committed
49
50
51
52
53
    $('.bs-docs-navbar').tooltip({
      selector: "a[data-toggle=tooltip]",
      container: ".bs-docs-navbar .nav"
    })

Jacob Thornton's avatar
Jacob Thornton committed
54
    // popover demo
55
    $("a[data-toggle=popover]")
Jacob Thornton's avatar
Jacob Thornton committed
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
      .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
72
    $('.bs-docs-carousel-example').carousel()
Jacob Thornton's avatar
Jacob Thornton committed
73
74

    // javascript build logic
Mark Otto's avatar
Mark Otto committed
75
    var inputsComponent = $("#less input")
76
      , inputsPlugin = $("#plugins input")
77
      , inputsVariables = $("#less-variables input")
Jacob Thornton's avatar
Jacob Thornton committed
78
79

    // toggle all plugin checkboxes
80
    $('#less .toggle').on('click', function (e) {
Jacob Thornton's avatar
Jacob Thornton committed
81
      e.preventDefault()
82
      inputsComponent.prop('checked', !inputsComponent.is(':checked'))
Jacob Thornton's avatar
Jacob Thornton committed
83
84
    })

85
    $('#plugins .toggle').on('click', function (e) {
Jacob Thornton's avatar
Jacob Thornton committed
86
      e.preventDefault()
87
      inputsPlugin.prop('checked', !inputsPlugin.is(':checked'))
Jacob Thornton's avatar
Jacob Thornton committed
88
89
    })

90
    $('#less-variables .toggle').on('click', function (e) {
Jacob Thornton's avatar
Jacob Thornton committed
91
92
93
94
95
      e.preventDefault()
      inputsVariables.val('')
    })

    // request built javascript
96
97
    $('.bs-customize-download .btn').on('click', function (e) {
      e.preventDefault()
Jacob Thornton's avatar
Jacob Thornton committed
98

99
      var css = $("#less input:checked")
Jacob Thornton's avatar
Jacob Thornton committed
100
101
            .map(function () { return this.value })
            .toArray()
102
        , js = $("#plugins input:checked")
Jacob Thornton's avatar
Jacob Thornton committed
103
104
105
106
            .map(function () { return this.value })
            .toArray()
        , vars = {}

107
108
109
      $("#less-variables input")
        .each(function () {
          $(this).val() && (vars[ $(this).prev().text() ] = $(this).val())
Jacob Thornton's avatar
Jacob Thornton committed
110
111
112
113
      })

      $.ajax({
        type: 'POST'
114
      , url: /localhost/.test(window.location) ? 'http://localhost:9001' : 'http://bootstrap.herokuapp.com'
Jacob Thornton's avatar
Jacob Thornton committed
115
116
      , dataType: 'jsonpi'
      , params: {
Jacob Thornton's avatar
Jacob Thornton committed
117
          js: js
Jacob Thornton's avatar
Jacob Thornton committed
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
        , css: css
        , vars: vars
      }
      })
    })
  })

// 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()
    }
  }
})
156

157
}(window.jQuery)