application.js 4.64 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
/* global SimpleJekyllSearch */
14

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

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

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

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

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

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

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

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

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

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

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

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

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

89
90
91
92
93
94
95
96
97
98
99
    // 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)
    })

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

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

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

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

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

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

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

Mark Otto's avatar
Mark Otto committed
151
152
153
154
155
156
157
    SimpleJekyllSearch.init({
      searchInput: document.getElementById('search-input'),
      resultsContainer: document.getElementById('search-results'),
      searchResultTemplate: '<li><a href="{url}">{title}</a></li>',
      dataSource: '/search.json'
    })

158
  })
159

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