twitter-bootstrap-rails 2.2.8 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +160 -228
  3. data/Rakefile +4 -6
  4. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  5. data/app/assets/fonts/fontawesome-webfont.svg +279 -38
  6. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  7. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  8. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  9. data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  10. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  11. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  12. data/app/assets/javascripts/twitter/bootstrap/affix.js +142 -0
  13. data/app/assets/javascripts/twitter/bootstrap/alert.js +92 -0
  14. data/app/assets/javascripts/twitter/bootstrap/button.js +110 -0
  15. data/app/assets/javascripts/twitter/bootstrap/carousel.js +223 -0
  16. data/app/assets/javascripts/twitter/bootstrap/collapse.js +170 -0
  17. data/app/assets/javascripts/twitter/bootstrap/dropdown.js +151 -0
  18. data/app/assets/javascripts/twitter/bootstrap/modal.js +280 -0
  19. data/app/assets/javascripts/twitter/bootstrap/popover.js +113 -0
  20. data/app/assets/javascripts/twitter/bootstrap/scrollspy.js +170 -0
  21. data/app/assets/javascripts/twitter/bootstrap/tab.js +128 -0
  22. data/app/assets/javascripts/twitter/bootstrap/tooltip.js +457 -0
  23. data/app/assets/javascripts/twitter/bootstrap/transition.js +59 -0
  24. data/app/assets/javascripts/twitter/bootstrap.js +12 -13
  25. data/app/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +1 -890
  26. data/app/assets/stylesheets/twitter-bootstrap-static/fontawesome.css.erb +2026 -787
  27. data/app/assets/stylesheets/twitter-bootstrap-static/sprites.css.erb +1 -146
  28. data/app/helpers/bootstrap_flash_helper.rb +14 -7
  29. data/app/helpers/form_errors_helper.rb +22 -0
  30. data/app/helpers/glyph_helper.rb +8 -5
  31. data/app/helpers/modal_helper.rb +26 -22
  32. data/app/helpers/navbar_helper.rb +47 -32
  33. data/app/helpers/twitter_breadcrumbs_helper.rb +6 -2
  34. data/app/views/twitter-bootstrap/_breadcrumbs.html.erb +8 -8
  35. data/lib/generators/bootstrap/install/install_generator.rb +3 -2
  36. data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.less +13 -11
  37. data/lib/generators/bootstrap/install/templates/en.bootstrap.yml +5 -0
  38. data/lib/generators/bootstrap/layout/layout_generator.rb +1 -4
  39. data/lib/generators/bootstrap/layout/templates/layout.html.erb +27 -48
  40. data/lib/generators/bootstrap/layout/templates/layout.html.haml +19 -34
  41. data/lib/generators/bootstrap/layout/templates/layout.html.slim +13 -30
  42. data/lib/generators/bootstrap/partial/templates/_login.html.erb +2 -3
  43. data/lib/generators/bootstrap/themed/templates/_form.html.erb +30 -10
  44. data/lib/generators/bootstrap/themed/templates/_form.html.haml +10 -8
  45. data/lib/generators/bootstrap/themed/templates/_form.html.slim +11 -9
  46. data/lib/generators/bootstrap/themed/templates/edit.html.slim +1 -1
  47. data/lib/generators/bootstrap/themed/templates/index.html.erb +2 -2
  48. data/lib/generators/bootstrap/themed/templates/index.html.haml +2 -2
  49. data/lib/generators/bootstrap/themed/templates/index.html.slim +4 -5
  50. data/lib/generators/bootstrap/themed/templates/new.html.slim +1 -1
  51. data/lib/generators/bootstrap/themed/templates/show.html.erb +5 -7
  52. data/lib/generators/bootstrap/themed/templates/show.html.haml +4 -4
  53. data/lib/generators/bootstrap/themed/templates/show.html.slim +6 -7
  54. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.erb +5 -5
  55. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.haml +3 -3
  56. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.slim +4 -4
  57. data/lib/generators/bootstrap/themed/themed_generator.rb +2 -2
  58. data/lib/twitter/bootstrap/rails/breadcrumbs.rb +69 -0
  59. data/lib/twitter/bootstrap/rails/engine.rb +17 -10
  60. data/lib/twitter/bootstrap/rails/version.rb +2 -2
  61. data/spec/lib/breadcrumbs_spec.rb +99 -0
  62. data/spec/lib/twitter_bootstrap_rails/badge_label_helper_spec.rb +12 -4
  63. data/spec/lib/twitter_bootstrap_rails/bootstrap_flash_helper_spec.rb +128 -0
  64. data/spec/lib/twitter_bootstrap_rails/form_errors_helper_spec.rb +148 -0
  65. data/spec/lib/twitter_bootstrap_rails/glyph_helper_spec.rb +24 -0
  66. data/spec/lib/twitter_bootstrap_rails/modal_helper_spec.rb +15 -15
  67. data/spec/lib/twitter_bootstrap_rails/navbar_helper_spec.rb +207 -173
  68. data/spec/lib/twitter_bootstrap_rails/uri_state_spec.rb +18 -16
  69. data/spec/spec_helper.rb +11 -1
  70. data/vendor/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +5796 -1
  71. data/vendor/static-source/bootstrap.less +0 -1
  72. data/vendor/static-source/fontawesome.less +0 -1
  73. data/vendor/static-source/sprites.less +1 -1
  74. data/vendor/toolkit/fontawesome/bordered-pulled.less +16 -0
  75. data/vendor/toolkit/fontawesome/core.less +8 -126
  76. data/vendor/toolkit/fontawesome/fixed-width.less +6 -0
  77. data/vendor/toolkit/fontawesome/font-awesome.less +9 -25
  78. data/vendor/toolkit/fontawesome/icons.less +549 -378
  79. data/vendor/toolkit/fontawesome/larger.less +13 -0
  80. data/vendor/toolkit/fontawesome/list.less +19 -0
  81. data/vendor/toolkit/fontawesome/mixins.less +16 -39
  82. data/vendor/toolkit/fontawesome/path.less +5 -5
  83. data/vendor/toolkit/fontawesome/rotated-flipped.less +20 -0
  84. data/vendor/toolkit/fontawesome/spinning.less +29 -0
  85. data/vendor/toolkit/fontawesome/stacked.less +20 -0
  86. data/vendor/toolkit/fontawesome/variables.less +557 -731
  87. data/vendor/toolkit/twitter/bootstrap/alerts.less +47 -58
  88. data/vendor/toolkit/twitter/bootstrap/badges.less +55 -0
  89. data/vendor/toolkit/twitter/bootstrap/bootstrap.less +26 -39
  90. data/vendor/toolkit/twitter/bootstrap/breadcrumbs.less +11 -9
  91. data/vendor/toolkit/twitter/bootstrap/button-groups.less +168 -152
  92. data/vendor/toolkit/twitter/bootstrap/buttons.less +101 -170
  93. data/vendor/toolkit/twitter/bootstrap/carousel.less +150 -65
  94. data/vendor/toolkit/twitter/bootstrap/close.less +20 -19
  95. data/vendor/toolkit/twitter/bootstrap/code.less +38 -30
  96. data/vendor/toolkit/twitter/bootstrap/component-animations.less +12 -3
  97. data/vendor/toolkit/twitter/bootstrap/dropdowns.less +115 -148
  98. data/vendor/toolkit/twitter/bootstrap/forms.less +401 -547
  99. data/vendor/toolkit/twitter/bootstrap/glyphicons.less +234 -0
  100. data/vendor/toolkit/twitter/bootstrap/grid.less +74 -11
  101. data/vendor/toolkit/twitter/bootstrap/input-groups.less +166 -0
  102. data/vendor/toolkit/twitter/bootstrap/jumbotron.less +48 -0
  103. data/vendor/toolkit/twitter/bootstrap/labels.less +64 -0
  104. data/vendor/toolkit/twitter/bootstrap/list-group.less +132 -0
  105. data/vendor/toolkit/twitter/bootstrap/media.less +8 -7
  106. data/vendor/toolkit/twitter/bootstrap/mixins/alerts.less +14 -0
  107. data/vendor/toolkit/twitter/bootstrap/mixins/background-variant.less +8 -0
  108. data/vendor/toolkit/twitter/bootstrap/mixins/border-radius.less +18 -0
  109. data/vendor/toolkit/twitter/bootstrap/mixins/buttons.less +52 -0
  110. data/vendor/toolkit/twitter/bootstrap/mixins/center-block.less +7 -0
  111. data/vendor/toolkit/twitter/bootstrap/mixins/clearfix.less +22 -0
  112. data/vendor/toolkit/twitter/bootstrap/mixins/forms.less +85 -0
  113. data/vendor/toolkit/twitter/bootstrap/mixins/gradients.less +59 -0
  114. data/vendor/toolkit/twitter/bootstrap/mixins/grid-framework.less +91 -0
  115. data/vendor/toolkit/twitter/bootstrap/mixins/grid.less +122 -0
  116. data/vendor/toolkit/twitter/bootstrap/mixins/hide-text.less +21 -0
  117. data/vendor/toolkit/twitter/bootstrap/mixins/image.less +33 -0
  118. data/vendor/toolkit/twitter/bootstrap/mixins/labels.less +12 -0
  119. data/vendor/toolkit/twitter/bootstrap/mixins/list-group.less +29 -0
  120. data/vendor/toolkit/twitter/bootstrap/mixins/nav-divider.less +10 -0
  121. data/vendor/toolkit/twitter/bootstrap/mixins/nav-vertical-align.less +9 -0
  122. data/vendor/toolkit/twitter/bootstrap/mixins/opacity.less +8 -0
  123. data/vendor/toolkit/twitter/bootstrap/mixins/pagination.less +23 -0
  124. data/vendor/toolkit/twitter/bootstrap/mixins/panels.less +24 -0
  125. data/vendor/toolkit/twitter/bootstrap/mixins/progress-bar.less +10 -0
  126. data/vendor/toolkit/twitter/bootstrap/mixins/reset-filter.less +8 -0
  127. data/vendor/toolkit/twitter/bootstrap/mixins/resize.less +6 -0
  128. data/vendor/toolkit/twitter/bootstrap/mixins/responsive-visibility.less +15 -0
  129. data/vendor/toolkit/twitter/bootstrap/mixins/size.less +10 -0
  130. data/vendor/toolkit/twitter/bootstrap/mixins/tab-focus.less +9 -0
  131. data/vendor/toolkit/twitter/bootstrap/mixins/table-row.less +28 -0
  132. data/vendor/toolkit/twitter/bootstrap/mixins/text-emphasis.less +8 -0
  133. data/vendor/toolkit/twitter/bootstrap/mixins/text-overflow.less +8 -0
  134. data/vendor/toolkit/twitter/bootstrap/mixins/vendor-prefixes.less +224 -0
  135. data/vendor/toolkit/twitter/bootstrap/mixins.less +36 -699
  136. data/vendor/toolkit/twitter/bootstrap/modals.less +109 -54
  137. data/vendor/toolkit/twitter/bootstrap/navbar.less +542 -384
  138. data/vendor/toolkit/twitter/bootstrap/navs.less +192 -359
  139. data/vendor/toolkit/twitter/bootstrap/normalize.less +425 -0
  140. data/vendor/toolkit/twitter/bootstrap/pager.less +46 -34
  141. data/vendor/toolkit/twitter/bootstrap/pagination.less +70 -105
  142. data/vendor/toolkit/twitter/bootstrap/panels.less +248 -0
  143. data/vendor/toolkit/twitter/bootstrap/popovers.less +61 -61
  144. data/vendor/toolkit/twitter/bootstrap/print.less +101 -0
  145. data/vendor/toolkit/twitter/bootstrap/progress-bars.less +51 -73
  146. data/vendor/toolkit/twitter/bootstrap/responsive-embed.less +34 -0
  147. data/vendor/toolkit/twitter/bootstrap/responsive-utilities.less +177 -42
  148. data/vendor/toolkit/twitter/bootstrap/scaffolding.less +120 -23
  149. data/vendor/toolkit/twitter/bootstrap/tables.less +171 -182
  150. data/vendor/toolkit/twitter/bootstrap/theme.less +260 -0
  151. data/vendor/toolkit/twitter/bootstrap/thumbnails.less +26 -43
  152. data/vendor/toolkit/twitter/bootstrap/tooltip.less +49 -24
  153. data/vendor/toolkit/twitter/bootstrap/type.less +208 -147
  154. data/vendor/toolkit/twitter/bootstrap/utilities.less +33 -7
  155. data/vendor/toolkit/twitter/bootstrap/variables.less +761 -215
  156. data/vendor/toolkit/twitter/bootstrap/wells.less +7 -7
  157. metadata +156 -130
  158. data/app/assets/images/twitter/bootstrap/glyphicons-halflings-white.png +0 -0
  159. data/app/assets/images/twitter/bootstrap/glyphicons-halflings.png +0 -0
  160. data/app/assets/javascripts/twitter/bootstrap/bootstrap-affix.js +0 -117
  161. data/app/assets/javascripts/twitter/bootstrap/bootstrap-alert.js +0 -99
  162. data/app/assets/javascripts/twitter/bootstrap/bootstrap-button.js +0 -105
  163. data/app/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js +0 -207
  164. data/app/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js +0 -167
  165. data/app/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js +0 -169
  166. data/app/assets/javascripts/twitter/bootstrap/bootstrap-modal.js +0 -247
  167. data/app/assets/javascripts/twitter/bootstrap/bootstrap-popover.js +0 -114
  168. data/app/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js +0 -162
  169. data/app/assets/javascripts/twitter/bootstrap/bootstrap-tab.js +0 -144
  170. data/app/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js +0 -361
  171. data/app/assets/javascripts/twitter/bootstrap/bootstrap-transition.js +0 -60
  172. data/app/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js +0 -335
  173. data/lib/twitter/bootstrap/rails/twitter-bootstrap-breadcrumbs.rb +0 -42
  174. data/test/lib/breadcrumbs_test.rb +0 -75
  175. data/test/test_helper.rb +0 -11
  176. data/vendor/toolkit/fontawesome/bootstrap.less +0 -84
  177. data/vendor/toolkit/fontawesome/extras.less +0 -93
  178. data/vendor/toolkit/fontawesome/font-awesome-ie7.less +0 -1953
  179. data/vendor/toolkit/twitter/bootstrap/accordion.less +0 -34
  180. data/vendor/toolkit/twitter/bootstrap/hero-unit.less +0 -25
  181. data/vendor/toolkit/twitter/bootstrap/labels-badges.less +0 -84
  182. data/vendor/toolkit/twitter/bootstrap/layouts.less +0 -16
  183. data/vendor/toolkit/twitter/bootstrap/reset.less +0 -216
  184. data/vendor/toolkit/twitter/bootstrap/responsive-1200px-min.less +0 -28
  185. data/vendor/toolkit/twitter/bootstrap/responsive-767px-max.less +0 -193
  186. data/vendor/toolkit/twitter/bootstrap/responsive-768px-979px.less +0 -19
  187. data/vendor/toolkit/twitter/bootstrap/responsive-navbar.less +0 -189
  188. data/vendor/toolkit/twitter/bootstrap/responsive.less +0 -48
  189. data/vendor/toolkit/twitter/bootstrap/sprites.less +0 -197
@@ -1,169 +0,0 @@
1
- /* ============================================================
2
- * bootstrap-dropdown.js v2.3.2
3
- * http://twitter.github.com/bootstrap/javascript.html#dropdowns
4
- * ============================================================
5
- * Copyright 2012 Twitter, Inc.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- * ============================================================ */
19
-
20
-
21
- !function ($) {
22
-
23
- "use strict"; // jshint ;_;
24
-
25
-
26
- /* DROPDOWN CLASS DEFINITION
27
- * ========================= */
28
-
29
- var toggle = '[data-toggle=dropdown]'
30
- , Dropdown = function (element) {
31
- var $el = $(element).on('click.dropdown.data-api', this.toggle)
32
- $('html').on('click.dropdown.data-api', function () {
33
- $el.parent().removeClass('open')
34
- })
35
- }
36
-
37
- Dropdown.prototype = {
38
-
39
- constructor: Dropdown
40
-
41
- , toggle: function (e) {
42
- var $this = $(this)
43
- , $parent
44
- , isActive
45
-
46
- if ($this.is('.disabled, :disabled')) return
47
-
48
- $parent = getParent($this)
49
-
50
- isActive = $parent.hasClass('open')
51
-
52
- clearMenus()
53
-
54
- if (!isActive) {
55
- if ('ontouchstart' in document.documentElement) {
56
- // if mobile we we use a backdrop because click events don't delegate
57
- $('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
58
- }
59
- $parent.toggleClass('open')
60
- }
61
-
62
- $this.focus()
63
-
64
- return false
65
- }
66
-
67
- , keydown: function (e) {
68
- var $this
69
- , $items
70
- , $active
71
- , $parent
72
- , isActive
73
- , index
74
-
75
- if (!/(38|40|27)/.test(e.keyCode)) return
76
-
77
- $this = $(this)
78
-
79
- e.preventDefault()
80
- e.stopPropagation()
81
-
82
- if ($this.is('.disabled, :disabled')) return
83
-
84
- $parent = getParent($this)
85
-
86
- isActive = $parent.hasClass('open')
87
-
88
- if (!isActive || (isActive && e.keyCode == 27)) {
89
- if (e.which == 27) $parent.find(toggle).focus()
90
- return $this.click()
91
- }
92
-
93
- $items = $('[role=menu] li:not(.divider):visible a', $parent)
94
-
95
- if (!$items.length) return
96
-
97
- index = $items.index($items.filter(':focus'))
98
-
99
- if (e.keyCode == 38 && index > 0) index-- // up
100
- if (e.keyCode == 40 && index < $items.length - 1) index++ // down
101
- if (!~index) index = 0
102
-
103
- $items
104
- .eq(index)
105
- .focus()
106
- }
107
-
108
- }
109
-
110
- function clearMenus() {
111
- $('.dropdown-backdrop').remove()
112
- $(toggle).each(function () {
113
- getParent($(this)).removeClass('open')
114
- })
115
- }
116
-
117
- function getParent($this) {
118
- var selector = $this.attr('data-target')
119
- , $parent
120
-
121
- if (!selector) {
122
- selector = $this.attr('href')
123
- selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
124
- }
125
-
126
- $parent = selector && $(selector)
127
-
128
- if (!$parent || !$parent.length) $parent = $this.parent()
129
-
130
- return $parent
131
- }
132
-
133
-
134
- /* DROPDOWN PLUGIN DEFINITION
135
- * ========================== */
136
-
137
- var old = $.fn.dropdown
138
-
139
- $.fn.dropdown = function (option) {
140
- return this.each(function () {
141
- var $this = $(this)
142
- , data = $this.data('dropdown')
143
- if (!data) $this.data('dropdown', (data = new Dropdown(this)))
144
- if (typeof option == 'string') data[option].call($this)
145
- })
146
- }
147
-
148
- $.fn.dropdown.Constructor = Dropdown
149
-
150
-
151
- /* DROPDOWN NO CONFLICT
152
- * ==================== */
153
-
154
- $.fn.dropdown.noConflict = function () {
155
- $.fn.dropdown = old
156
- return this
157
- }
158
-
159
-
160
- /* APPLY TO STANDARD DROPDOWN ELEMENTS
161
- * =================================== */
162
-
163
- $(document)
164
- .on('click.dropdown.data-api', clearMenus)
165
- .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
166
- .on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
167
- .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
168
-
169
- }(window.jQuery);
@@ -1,247 +0,0 @@
1
- /* =========================================================
2
- * bootstrap-modal.js v2.3.2
3
- * http://twitter.github.com/bootstrap/javascript.html#modals
4
- * =========================================================
5
- * Copyright 2012 Twitter, Inc.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- * ========================================================= */
19
-
20
-
21
- !function ($) {
22
-
23
- "use strict"; // jshint ;_;
24
-
25
-
26
- /* MODAL CLASS DEFINITION
27
- * ====================== */
28
-
29
- var Modal = function (element, options) {
30
- this.options = options
31
- this.$element = $(element)
32
- .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
33
- this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
34
- }
35
-
36
- Modal.prototype = {
37
-
38
- constructor: Modal
39
-
40
- , toggle: function () {
41
- return this[!this.isShown ? 'show' : 'hide']()
42
- }
43
-
44
- , show: function () {
45
- var that = this
46
- , e = $.Event('show')
47
-
48
- this.$element.trigger(e)
49
-
50
- if (this.isShown || e.isDefaultPrevented()) return
51
-
52
- this.isShown = true
53
-
54
- this.escape()
55
-
56
- this.backdrop(function () {
57
- var transition = $.support.transition && that.$element.hasClass('fade')
58
-
59
- if (!that.$element.parent().length) {
60
- that.$element.appendTo(document.body) //don't move modals dom position
61
- }
62
-
63
- that.$element.show()
64
-
65
- if (transition) {
66
- that.$element[0].offsetWidth // force reflow
67
- }
68
-
69
- that.$element
70
- .addClass('in')
71
- .attr('aria-hidden', false)
72
-
73
- that.enforceFocus()
74
-
75
- transition ?
76
- that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
77
- that.$element.focus().trigger('shown')
78
-
79
- })
80
- }
81
-
82
- , hide: function (e) {
83
- e && e.preventDefault()
84
-
85
- var that = this
86
-
87
- e = $.Event('hide')
88
-
89
- this.$element.trigger(e)
90
-
91
- if (!this.isShown || e.isDefaultPrevented()) return
92
-
93
- this.isShown = false
94
-
95
- this.escape()
96
-
97
- $(document).off('focusin.modal')
98
-
99
- this.$element
100
- .removeClass('in')
101
- .attr('aria-hidden', true)
102
-
103
- $.support.transition && this.$element.hasClass('fade') ?
104
- this.hideWithTransition() :
105
- this.hideModal()
106
- }
107
-
108
- , enforceFocus: function () {
109
- var that = this
110
- $(document).on('focusin.modal', function (e) {
111
- if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
112
- that.$element.focus()
113
- }
114
- })
115
- }
116
-
117
- , escape: function () {
118
- var that = this
119
- if (this.isShown && this.options.keyboard) {
120
- this.$element.on('keyup.dismiss.modal', function ( e ) {
121
- e.which == 27 && that.hide()
122
- })
123
- } else if (!this.isShown) {
124
- this.$element.off('keyup.dismiss.modal')
125
- }
126
- }
127
-
128
- , hideWithTransition: function () {
129
- var that = this
130
- , timeout = setTimeout(function () {
131
- that.$element.off($.support.transition.end)
132
- that.hideModal()
133
- }, 500)
134
-
135
- this.$element.one($.support.transition.end, function () {
136
- clearTimeout(timeout)
137
- that.hideModal()
138
- })
139
- }
140
-
141
- , hideModal: function () {
142
- var that = this
143
- this.$element.hide()
144
- this.backdrop(function () {
145
- that.removeBackdrop()
146
- that.$element.trigger('hidden')
147
- })
148
- }
149
-
150
- , removeBackdrop: function () {
151
- this.$backdrop && this.$backdrop.remove()
152
- this.$backdrop = null
153
- }
154
-
155
- , backdrop: function (callback) {
156
- var that = this
157
- , animate = this.$element.hasClass('fade') ? 'fade' : ''
158
-
159
- if (this.isShown && this.options.backdrop) {
160
- var doAnimate = $.support.transition && animate
161
-
162
- this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
163
- .appendTo(document.body)
164
-
165
- this.$backdrop.click(
166
- this.options.backdrop == 'static' ?
167
- $.proxy(this.$element[0].focus, this.$element[0])
168
- : $.proxy(this.hide, this)
169
- )
170
-
171
- if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
172
-
173
- this.$backdrop.addClass('in')
174
-
175
- if (!callback) return
176
-
177
- doAnimate ?
178
- this.$backdrop.one($.support.transition.end, callback) :
179
- callback()
180
-
181
- } else if (!this.isShown && this.$backdrop) {
182
- this.$backdrop.removeClass('in')
183
-
184
- $.support.transition && this.$element.hasClass('fade')?
185
- this.$backdrop.one($.support.transition.end, callback) :
186
- callback()
187
-
188
- } else if (callback) {
189
- callback()
190
- }
191
- }
192
- }
193
-
194
-
195
- /* MODAL PLUGIN DEFINITION
196
- * ======================= */
197
-
198
- var old = $.fn.modal
199
-
200
- $.fn.modal = function (option) {
201
- return this.each(function () {
202
- var $this = $(this)
203
- , data = $this.data('modal')
204
- , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
205
- if (!data) $this.data('modal', (data = new Modal(this, options)))
206
- if (typeof option == 'string') data[option]()
207
- else if (options.show) data.show()
208
- })
209
- }
210
-
211
- $.fn.modal.defaults = {
212
- backdrop: true
213
- , keyboard: true
214
- , show: true
215
- }
216
-
217
- $.fn.modal.Constructor = Modal
218
-
219
-
220
- /* MODAL NO CONFLICT
221
- * ================= */
222
-
223
- $.fn.modal.noConflict = function () {
224
- $.fn.modal = old
225
- return this
226
- }
227
-
228
-
229
- /* MODAL DATA-API
230
- * ============== */
231
-
232
- $(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
233
- var $this = $(this)
234
- , href = $this.attr('href')
235
- , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
236
- , option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
237
-
238
- e.preventDefault()
239
-
240
- $target
241
- .modal(option)
242
- .one('hide', function () {
243
- $this.focus()
244
- })
245
- })
246
-
247
- }(window.jQuery);
@@ -1,114 +0,0 @@
1
- /* ===========================================================
2
- * bootstrap-popover.js v2.3.2
3
- * http://twitter.github.com/bootstrap/javascript.html#popovers
4
- * ===========================================================
5
- * Copyright 2012 Twitter, Inc.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- * =========================================================== */
19
-
20
-
21
- !function ($) {
22
-
23
- "use strict"; // jshint ;_;
24
-
25
-
26
- /* POPOVER PUBLIC CLASS DEFINITION
27
- * =============================== */
28
-
29
- var Popover = function (element, options) {
30
- this.init('popover', element, options)
31
- }
32
-
33
-
34
- /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
35
- ========================================== */
36
-
37
- Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
38
-
39
- constructor: Popover
40
-
41
- , setContent: function () {
42
- var $tip = this.tip()
43
- , title = this.getTitle()
44
- , content = this.getContent()
45
-
46
- $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
47
- $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
48
-
49
- $tip.removeClass('fade top bottom left right in')
50
- }
51
-
52
- , hasContent: function () {
53
- return this.getTitle() || this.getContent()
54
- }
55
-
56
- , getContent: function () {
57
- var content
58
- , $e = this.$element
59
- , o = this.options
60
-
61
- content = (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
62
- || $e.attr('data-content')
63
-
64
- return content
65
- }
66
-
67
- , tip: function () {
68
- if (!this.$tip) {
69
- this.$tip = $(this.options.template)
70
- }
71
- return this.$tip
72
- }
73
-
74
- , destroy: function () {
75
- this.hide().$element.off('.' + this.type).removeData(this.type)
76
- }
77
-
78
- })
79
-
80
-
81
- /* POPOVER PLUGIN DEFINITION
82
- * ======================= */
83
-
84
- var old = $.fn.popover
85
-
86
- $.fn.popover = function (option) {
87
- return this.each(function () {
88
- var $this = $(this)
89
- , data = $this.data('popover')
90
- , options = typeof option == 'object' && option
91
- if (!data) $this.data('popover', (data = new Popover(this, options)))
92
- if (typeof option == 'string') data[option]()
93
- })
94
- }
95
-
96
- $.fn.popover.Constructor = Popover
97
-
98
- $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
99
- placement: 'right'
100
- , trigger: 'click'
101
- , content: ''
102
- , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
103
- })
104
-
105
-
106
- /* POPOVER NO CONFLICT
107
- * =================== */
108
-
109
- $.fn.popover.noConflict = function () {
110
- $.fn.popover = old
111
- return this
112
- }
113
-
114
- }(window.jQuery);
@@ -1,162 +0,0 @@
1
- /* =============================================================
2
- * bootstrap-scrollspy.js v2.3.2
3
- * http://twitter.github.com/bootstrap/javascript.html#scrollspy
4
- * =============================================================
5
- * Copyright 2012 Twitter, Inc.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- * ============================================================== */
19
-
20
-
21
- !function ($) {
22
-
23
- "use strict"; // jshint ;_;
24
-
25
-
26
- /* SCROLLSPY CLASS DEFINITION
27
- * ========================== */
28
-
29
- function ScrollSpy(element, options) {
30
- var process = $.proxy(this.process, this)
31
- , $element = $(element).is('body') ? $(window) : $(element)
32
- , href
33
- this.options = $.extend({}, $.fn.scrollspy.defaults, options)
34
- this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
35
- this.selector = (this.options.target
36
- || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
37
- || '') + ' .nav li > a'
38
- this.$body = $('body')
39
- this.refresh()
40
- this.process()
41
- }
42
-
43
- ScrollSpy.prototype = {
44
-
45
- constructor: ScrollSpy
46
-
47
- , refresh: function () {
48
- var self = this
49
- , $targets
50
-
51
- this.offsets = $([])
52
- this.targets = $([])
53
-
54
- $targets = this.$body
55
- .find(this.selector)
56
- .map(function () {
57
- var $el = $(this)
58
- , href = $el.data('target') || $el.attr('href')
59
- , $href = /^#\w/.test(href) && $(href)
60
- return ( $href
61
- && $href.length
62
- && [[ $href.position().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]] ) || null
63
- })
64
- .sort(function (a, b) { return a[0] - b[0] })
65
- .each(function () {
66
- self.offsets.push(this[0])
67
- self.targets.push(this[1])
68
- })
69
- }
70
-
71
- , process: function () {
72
- var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
73
- , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
74
- , maxScroll = scrollHeight - this.$scrollElement.height()
75
- , offsets = this.offsets
76
- , targets = this.targets
77
- , activeTarget = this.activeTarget
78
- , i
79
-
80
- if (scrollTop >= maxScroll) {
81
- return activeTarget != (i = targets.last()[0])
82
- && this.activate ( i )
83
- }
84
-
85
- for (i = offsets.length; i--;) {
86
- activeTarget != targets[i]
87
- && scrollTop >= offsets[i]
88
- && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
89
- && this.activate( targets[i] )
90
- }
91
- }
92
-
93
- , activate: function (target) {
94
- var active
95
- , selector
96
-
97
- this.activeTarget = target
98
-
99
- $(this.selector)
100
- .parent('.active')
101
- .removeClass('active')
102
-
103
- selector = this.selector
104
- + '[data-target="' + target + '"],'
105
- + this.selector + '[href="' + target + '"]'
106
-
107
- active = $(selector)
108
- .parent('li')
109
- .addClass('active')
110
-
111
- if (active.parent('.dropdown-menu').length) {
112
- active = active.closest('li.dropdown').addClass('active')
113
- }
114
-
115
- active.trigger('activate')
116
- }
117
-
118
- }
119
-
120
-
121
- /* SCROLLSPY PLUGIN DEFINITION
122
- * =========================== */
123
-
124
- var old = $.fn.scrollspy
125
-
126
- $.fn.scrollspy = function (option) {
127
- return this.each(function () {
128
- var $this = $(this)
129
- , data = $this.data('scrollspy')
130
- , options = typeof option == 'object' && option
131
- if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
132
- if (typeof option == 'string') data[option]()
133
- })
134
- }
135
-
136
- $.fn.scrollspy.Constructor = ScrollSpy
137
-
138
- $.fn.scrollspy.defaults = {
139
- offset: 10
140
- }
141
-
142
-
143
- /* SCROLLSPY NO CONFLICT
144
- * ===================== */
145
-
146
- $.fn.scrollspy.noConflict = function () {
147
- $.fn.scrollspy = old
148
- return this
149
- }
150
-
151
-
152
- /* SCROLLSPY DATA-API
153
- * ================== */
154
-
155
- $(window).on('load', function () {
156
- $('[data-spy="scroll"]').each(function () {
157
- var $spy = $(this)
158
- $spy.scrollspy($spy.data())
159
- })
160
- })
161
-
162
- }(window.jQuery);