application.js 4.22 KB
Newer Older
1
$(function(){
2

3
4
5
  // NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
  // IT'S ALL JUST JUNK FOR OUR DOCS!
  // ++++++++++++++++++++++++++++++++++++++++++
Jacob Thornton's avatar
Jacob Thornton committed
6

7

8
9
10
  // Hide the Mobile Safari address bar once loaded
  // ==============================================

11
  // Set a timeout...
12
13
14
15
  // setTimeout(function(){
  //   // Hide the address bar!
  //   window.scrollTo(0, 1);
  // }, 0);
16

17

18
  // table sort example
Jacob Thornton's avatar
Jacob Thornton committed
19
20
  // ==================

21
  // make code pretty
22
  window.prettyPrint && prettyPrint()
23

24
  // table sort example
François Robichet's avatar
François Robichet committed
25
  if ($.fn.tablesorter) {
26
    $("#sortTableExample").tablesorter( { sortList: [[ 1, 0 ]] } )
Jacob Thornton's avatar
Jacob Thornton committed
27
    $(".tablesorter-example").tablesorter({ sortList: [[1,0]] })
28
  }
Jacob Thornton's avatar
Jacob Thornton committed
29
30

  // add on logic
31
32
33
34
  $('.add-on :checkbox').on('click', function () {
    var $this = $(this)
      , method = $this.attr('checked') ? 'addClass' : 'removeClass'
    $(this).parents('.add-on')[method]('active')
35
  })
Jacob Thornton's avatar
Jacob Thornton committed
36

37
  // Disable certain links in docs
38
39
40
  // 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!!
Jacob Thornton's avatar
Jacob Thornton committed
41

42
  $('section [href^=#]').click(function (e) {
43
44
    e.preventDefault()
  })
45

46
  // Copy code blocks in docs
47
48
49
  $(".copy-code").on('focus', function () {
    var el = this
    setTimeout(function () { $(el).select() }, 0)
50
  })
51

52
  if ($.fn.tooltip) {
53
54
55
56
57
58

    // position static twipsies for components page
    if ($(".twipsies a").length) {
      $(window).on('load resize', function () {
        $(".twipsies a").each(function () {
          $(this)
59
            .tooltip({
60
61
62
              placement: $(this).attr('title')
            , trigger: 'manual'
            })
63
            .tooltip('show')
64
65
66
67
68
69
70
          })
      })
    }

    // add tipsies to grid for scaffolding
    if ($('#grid-system').length) {

71
      $('#grid-system').tooltip({
72
73
74
75
76
77
78
          selector: '.show-grid > div'
        , title: function () { return $(this).width() + 'px' }
      })

    }
  }

79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
  // javascript build logic

  var inputs = $("#javascript input")

  // toggle all plugin checkboxes
  $('#selectAll').on('click', function (e) {
    e.preventDefault()
    inputs.attr('checked', !inputs.is(':checked'))
  })

  // handle build button dropdown
  var buildTypes = $('#javascriptBuilder .dropdown-menu li').on('click', function () {
    buildTypes.removeClass('active')
    $(this).addClass('active')
  })

  // request built javascript
  $('#javascriptBuild').on('click', function () {

    var names = $("#javascript input:checked")
      .map(function () { return this.value })
      .toArray()

    if (names[names.length - 1] == 'bootstrap-transition.js') {
      names.unshift(names.pop())
    }

    $.ajax({
      type: 'POST'
    , dataType: 'jsonpi'
    , params: {
        branch: '2.0-wip'
      , dir: 'js'
      , filenames: names
      , compress: buildTypes.first().hasClass('active')
      }
    , url: "http://bootstrap.herokuapp.com"
    })
  })

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
// JS for javascript demos
$(function () {
  // tooltip demo
  $('.tooltip-demo.well').tooltip({
    selector: "a[rel=tooltip]"
  })
  $('.tooltip-test').tooltip()

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

150
151
152
153

// Modified from the original jsonpi https://github.com/benvinegar/jquery-jsonpi
// by the talented Ben Vinegar
!function($) {
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
  $.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', v)
            .appendTo(form)
        });

        form.appendTo('body').submit()
      }
    }
  })
183
}(jQuery);