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

5
/*!
6
 * JavaScript for Bootstrap's docs (http://getbootstrap.com)
7
 * Copyright 2011-2014 Twitter, Inc.
8
9
 * Licensed under the Creative Commons Attribution 3.0 Unported License. For
 * details, see http://creativecommons.org/licenses/by/3.0/.
10
11
 */

12
/* global ZeroClipboard */
13

14
!function ($) {
XhmikosR's avatar
XhmikosR committed
15
  'use strict';
16

17
  $(function () {
Jacob Thornton's avatar
Jacob Thornton committed
18

Mark Otto's avatar
Mark Otto committed
19
    // Scrollspy
20
    var $window = $(window)
Jacob Thornton's avatar
Jacob Thornton committed
21
    var $body   = $(document.body)
22

Jacob Thornton's avatar
Jacob Thornton committed
23
    $body.scrollspy({
XhmikosR's avatar
XhmikosR committed
24
      target: '.bs-docs-sidebar'
fat's avatar
fat committed
25
    })
26
27
28
29
    $window.on('load', function () {
      $body.scrollspy('refresh')
    })

Mark Otto's avatar
Mark Otto committed
30
    // Kill links
Jacob Thornton's avatar
Jacob Thornton committed
31
    $('.bs-docs-container [href=#]').click(function (e) {
32
33
34
      e.preventDefault()
    })

Mark Otto's avatar
Mark Otto committed
35
    // Sidenav affixing
Mark Otto's avatar
Mark Otto committed
36
    setTimeout(function () {
37
      var $sideBar = $('.bs-docs-sidebar')
fat's avatar
fat committed
38
39

      $sideBar.affix({
Mark Otto's avatar
Mark Otto committed
40
        offset: {
fat's avatar
fat committed
41
42
43
44
45
46
          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)
47
48
          },
          bottom: function () {
49
            return (this.bottom = $('.bs-docs-footer').outerHeight(true))
fat's avatar
fat committed
50
          }
Mark Otto's avatar
Mark Otto committed
51
52
53
        }
      })
    }, 100)
54

55
    setTimeout(function () {
Mark Otto's avatar
Mark Otto committed
56
      $('.bs-top').affix()
57
58
    }, 100)

59
60
61
    // theme toggler
    ;(function () {
      var stylesheetLink = $('#bs-theme-stylesheet')
Mark Otto's avatar
Mark Otto committed
62
      var themeBtn = $('.bs-docs-theme-toggle')
63
64
65
66
67
68
69
70
71
72
73

      var activateTheme = function () {
        stylesheetLink.attr('href', stylesheetLink.attr('data-href'))
        themeBtn.text('Disable theme preview')
        localStorage.setItem('previewTheme', true)
      }

      if (localStorage.getItem('previewTheme')) {
        activateTheme()
      }

74
      themeBtn.click(function () {
75
        var href = stylesheetLink.attr('href')
76
        if (!href || href.indexOf('data') === 0) {
77
78
          activateTheme()
        } else {
79
          stylesheetLink.attr('href', '')
Mark Otto's avatar
Mark Otto committed
80
          themeBtn.text('Preview theme')
81
          localStorage.removeItem('previewTheme')
82
        }
83
84
85
      })
    })();

Mark Otto's avatar
Mark Otto committed
86
    // Tooltip and popover demos
87
    $('.tooltip-demo').tooltip({
88
      selector: '[data-toggle="tooltip"]',
XhmikosR's avatar
XhmikosR committed
89
      container: 'body'
Jacob Thornton's avatar
Jacob Thornton committed
90
    })
91
92
93
94
    $('.popover-demo').popover({
      selector: '[data-toggle="popover"]',
      container: 'body'
    })
95

96
    // Demos within modals
97
98
    $('.tooltip-test').tooltip()
    $('.popover-test').popover()
Jacob Thornton's avatar
Jacob Thornton committed
99

100
    // Popover demos
Mark Otto's avatar
Mark Otto committed
101
102
    $('.bs-docs-popover').popover()

Mark Otto's avatar
Mark Otto committed
103
104
105
106
107
108
109
    // Button state demo
    $('#loading-example-btn').click(function () {
      var btn = $(this)
      btn.button('loading')
      setTimeout(function () {
        btn.button('reset')
      }, 3000)
Mark Otto's avatar
Mark Otto committed
110
    })
Jacob Thornton's avatar
Jacob Thornton committed
111

Mark Otto's avatar
Mark Otto committed
112
113
114

    // Config ZeroClipboard
    ZeroClipboard.config({
XhmikosR's avatar
XhmikosR committed
115
      moviePath: '/assets/flash/ZeroClipboard.swf',
Mark Otto's avatar
Mark Otto committed
116
117
118
      hoverClass: 'btn-clipboard-hover'
    })

XhmikosR's avatar
XhmikosR committed
119
    // Insert copy to clipboard button before .highlight
120
    $('.highlight').each(function () {
Mark Otto's avatar
Mark Otto committed
121
      var btnHtml = '<div class="zero-clipboard"><span class="btn-clipboard">Copy</span></div>'
XhmikosR's avatar
XhmikosR committed
122
      $(this).before(btnHtml)
Mark Otto's avatar
Mark Otto committed
123
124
125
    })
    var zeroClipboard = new ZeroClipboard($('.btn-clipboard'))
    var htmlBridge = $('#global-zeroclipboard-html-bridge')
126
127

    // Handlers for ZeroClipboard
128
    zeroClipboard.on('load', function () {
129
      htmlBridge
Mark Otto's avatar
Mark Otto committed
130
131
        .data('placement', 'top')
        .attr('title', 'Copy to clipboard')
132
133
134
135
        .tooltip()
    })

    // Copy to clipboard
136
    zeroClipboard.on('dataRequested', function (client) {
137
138
139
140
141
      var highlight = $(this).parent().nextAll('.highlight').first()
      client.setText(highlight.text())
    })

    // Notify copy success and reset tooltip title
142
    zeroClipboard.on('complete', function () {
143
      htmlBridge
Mark Otto's avatar
Mark Otto committed
144
        .attr('title', 'Copied!')
145
146
        .tooltip('fixTitle')
        .tooltip('show')
Mark Otto's avatar
Mark Otto committed
147
        .attr('title', 'Copy to clipboard')
148
149
150
151
        .tooltip('fixTitle')
    })

    // Notify copy failure
152
    zeroClipboard.on('noflash wrongflash', function () {
153
      htmlBridge
Mark Otto's avatar
Mark Otto committed
154
        .attr('title', 'Flash required')
155
156
157
158
        .tooltip('fixTitle')
        .tooltip('show')
    })

159
  })
160

Zlatan Vasović's avatar
Zlatan Vasović committed
161
}(jQuery)