application.js 4.45 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

19
20
21
    // // Scrollspy
    // var $window = $(window)
    // var $body   = $(document.body)
22

23
24
25
26
27
28
    // $body.scrollspy({
    //   target: '.active .bs-docs-sidenav'
    // })
    // $window.on('load', function () {
    //   $body.scrollspy('refresh')
    // })
29

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

35
    // theme toggler
Mark Otto's avatar
Mark Otto committed
36
    (function () {
37
      var stylesheetLink = $('#bs-theme-stylesheet')
Mark Otto's avatar
Mark Otto committed
38
      var themeBtn = $('.bs-docs-theme-toggle')
39
40
41
42
43
44
45
46
47
48
49

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

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

50
      themeBtn.click(function () {
51
        var href = stylesheetLink.attr('href')
52
        if (!href || href.indexOf('data') === 0) {
53
54
          activateTheme()
        } else {
55
          stylesheetLink.attr('href', '')
Mark Otto's avatar
Mark Otto committed
56
          themeBtn.text('Preview theme')
57
          localStorage.removeItem('previewTheme')
58
        }
59
      })
Mark Otto's avatar
Mark Otto committed
60
    })
61

Mark Otto's avatar
Mark Otto committed
62
    // Tooltip and popover demos
63
    $('.tooltip-demo').tooltip({
64
      selector: '[data-toggle="tooltip"]',
XhmikosR's avatar
XhmikosR committed
65
      container: 'body'
Jacob Thornton's avatar
Jacob Thornton committed
66
    })
67
68
69
70
    $('.popover-demo').popover({
      selector: '[data-toggle="popover"]',
      container: 'body'
    })
71

72
    // Demos within modals
73
74
    $('.tooltip-test').tooltip()
    $('.popover-test').popover()
Jacob Thornton's avatar
Jacob Thornton committed
75

76
    // Popover demos
Mark Otto's avatar
Mark Otto committed
77
78
    $('.bs-docs-popover').popover()

Mark Otto's avatar
Mark Otto committed
79
    // Button state demo
80
    $('#loading-example-btn').on('click', function () {
Mark Otto's avatar
Mark Otto committed
81
82
83
84
85
      var btn = $(this)
      btn.button('loading')
      setTimeout(function () {
        btn.button('reset')
      }, 3000)
Mark Otto's avatar
Mark Otto committed
86
    })
Jacob Thornton's avatar
Jacob Thornton committed
87

88
89
90
91
92
93
94
95
96
97
98
    // Modal relatedTarget demo
    $('#exampleModal').on('show.bs.modal', function (event) {
      var button = $(event.relatedTarget) // Button that triggered the modal
      var recipient = button.data('whatever') // Extract info from data-* attributes
      // If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
      // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
      var modal = $(this)
      modal.find('.modal-title').text('New message to ' + recipient)
      modal.find('.modal-body input').val(recipient)
    })

99
100
    // Activate animated progress bar
    $('.bs-docs-activate-animated-progressbar').on('click', function () {
Mark Otto's avatar
Mark Otto committed
101
      $(this).prev('.progress-striped').toggleClass('progress-animated')
102
    })
Mark Otto's avatar
Mark Otto committed
103

Mark Otto's avatar
Mark Otto committed
104
105
106
    // Custom indeterminate checkbox
    $('.bs-example-indeterminate input').prop('indeterminate', true)

Mark Otto's avatar
Mark Otto committed
107
108
    // Config ZeroClipboard
    ZeroClipboard.config({
XhmikosR's avatar
XhmikosR committed
109
      moviePath: '/assets/flash/ZeroClipboard.swf',
Mark Otto's avatar
Mark Otto committed
110
111
112
      hoverClass: 'btn-clipboard-hover'
    })

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

    // Handlers for ZeroClipboard
122
    zeroClipboard.on('load', function () {
123
      htmlBridge
Mark Otto's avatar
Mark Otto committed
124
125
        .data('placement', 'top')
        .attr('title', 'Copy to clipboard')
126
127
128
129
        .tooltip()
    })

    // Copy to clipboard
130
    zeroClipboard.on('dataRequested', function (client) {
131
132
133
134
135
      var highlight = $(this).parent().nextAll('.highlight').first()
      client.setText(highlight.text())
    })

    // Notify copy success and reset tooltip title
136
    zeroClipboard.on('complete', function () {
137
      htmlBridge
Mark Otto's avatar
Mark Otto committed
138
        .attr('title', 'Copied!')
139
140
        .tooltip('fixTitle')
        .tooltip('show')
Mark Otto's avatar
Mark Otto committed
141
        .attr('title', 'Copy to clipboard')
142
143
144
145
        .tooltip('fixTitle')
    })

    // Notify copy failure
146
    zeroClipboard.on('noflash wrongflash', function () {
147
      htmlBridge
Mark Otto's avatar
Mark Otto committed
148
        .attr('title', 'Flash required')
149
150
151
152
        .tooltip('fixTitle')
        .tooltip('show')
    })

153
  })
154

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