twitter-bootstrap-rails 2.1.4 → 2.1.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of twitter-bootstrap-rails might be problematic. Click here for more details.

Files changed (54) hide show
  1. data/README.md +16 -2
  2. data/app/helpers/bootstrap_flash_helper.rb +2 -0
  3. data/app/helpers/glyph_helper.rb +1 -1
  4. data/lib/generators/bootstrap/install/install_generator.rb +5 -1
  5. data/lib/generators/bootstrap/install/templates/bootstrap.js +5 -0
  6. data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.less +5 -2
  7. data/lib/twitter/bootstrap/rails/version.rb +1 -1
  8. data/lib/twitter-bootstrap-rails.rb +1 -1
  9. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-affix.js +4 -2
  10. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-alert.js +2 -4
  11. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-button.js +5 -7
  12. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js +12 -12
  13. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js +9 -11
  14. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js +9 -11
  15. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-modal.js +20 -25
  16. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-popover.js +1 -1
  17. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js +1 -1
  18. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-tab.js +5 -7
  19. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js +12 -11
  20. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-transition.js +5 -5
  21. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js +19 -9
  22. data/vendor/toolkit/fontawesome.less +6 -5
  23. data/vendor/toolkit/twitter/bootstrap/accordion.less +1 -1
  24. data/vendor/toolkit/twitter/bootstrap/alerts.less +1 -1
  25. data/vendor/toolkit/twitter/bootstrap/bootstrap.less +2 -2
  26. data/vendor/toolkit/twitter/bootstrap/breadcrumbs.less +1 -1
  27. data/vendor/toolkit/twitter/bootstrap/button-groups.less +5 -8
  28. data/vendor/toolkit/twitter/bootstrap/buttons.less +17 -16
  29. data/vendor/toolkit/twitter/bootstrap/code.less +1 -1
  30. data/vendor/toolkit/twitter/bootstrap/dropdowns.less +32 -5
  31. data/vendor/toolkit/twitter/bootstrap/forms.less +47 -14
  32. data/vendor/toolkit/twitter/bootstrap/hero-unit.less +6 -5
  33. data/vendor/toolkit/twitter/bootstrap/labels-badges.less +4 -2
  34. data/vendor/toolkit/twitter/bootstrap/media.less +55 -0
  35. data/vendor/toolkit/twitter/bootstrap/mixins.less +15 -10
  36. data/vendor/toolkit/twitter/bootstrap/modals.less +7 -11
  37. data/vendor/toolkit/twitter/bootstrap/navbar.less +6 -6
  38. data/vendor/toolkit/twitter/bootstrap/navs.less +3 -2
  39. data/vendor/toolkit/twitter/bootstrap/pager.less +10 -9
  40. data/vendor/toolkit/twitter/bootstrap/pagination.less +69 -12
  41. data/vendor/toolkit/twitter/bootstrap/popovers.less +2 -2
  42. data/vendor/toolkit/twitter/bootstrap/progress-bars.less +2 -2
  43. data/vendor/toolkit/twitter/bootstrap/reset.less +5 -4
  44. data/vendor/toolkit/twitter/bootstrap/responsive-767px-max.less +20 -1
  45. data/vendor/toolkit/twitter/bootstrap/responsive-navbar.less +12 -4
  46. data/vendor/toolkit/twitter/bootstrap/responsive.less +1 -1
  47. data/vendor/toolkit/twitter/bootstrap/sprites.less +8 -8
  48. data/vendor/toolkit/twitter/bootstrap/tables.less +20 -29
  49. data/vendor/toolkit/twitter/bootstrap/thumbnails.less +1 -1
  50. data/vendor/toolkit/twitter/bootstrap/tooltip.less +1 -1
  51. data/vendor/toolkit/twitter/bootstrap/type.less +30 -24
  52. data/vendor/toolkit/twitter/bootstrap/variables.less +23 -1
  53. data/vendor/toolkit/twitter/bootstrap/wells.less +3 -3
  54. metadata +19 -24
data/README.md CHANGED
@@ -20,10 +20,22 @@ in this episode continues on the Twitter Bootstrap project showing how to displa
20
20
 
21
21
 
22
22
  ## Installing Gem
23
+ The gem includes the source LESS and JS files. You'll need to choose a javascript runtime.
24
+ ExecJS supports these runtimes:
23
25
 
24
- Include the [Twitter Bootstrap Rails gem](http://rubygems.org/gems/twitter-bootstrap-rails) in Gemfile to install it from [RubyGems.org](http://rubygems.org);
26
+ * [therubyracer](https://github.com/cowboyd/therubyracer) - Google V8
27
+ embedded within Ruby
28
+ * [therubyrhino](https://github.com/cowboyd/therubyrhino) - Mozilla
29
+ Rhino embedded within JRuby
30
+ * [Node.js](http://nodejs.org/)
31
+ * Apple JavaScriptCore - Included with Mac OS X
32
+ * [Microsoft Windows Script Host](http://msdn.microsoft.com/en-us/library/9bbdkx3k.aspx) (JScript)
33
+
34
+ Include the [Twitter Bootstrap Rails gem](http://rubygems.org/gems/twitter-bootstrap-rails) in Gemfile to install it from [RubyGems.org](http://rubygems.org):
25
35
 
26
36
  ```ruby
37
+ gem "therubyracer"
38
+ gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS
27
39
  gem "twitter-bootstrap-rails"
28
40
  ```
29
41
 
@@ -58,7 +70,7 @@ Layout (generates Twitter Bootstrap compatible layout) - (Haml and Slim supporte
58
70
  Usage:
59
71
 
60
72
 
61
- rails g bootstrap:layout [LAYOUT_NAME] [*fixed or fluid]
73
+ rails g bootstrap:layout [LAYOUT_NAME] [*fixed or fluid]
62
74
 
63
75
 
64
76
  Example:
@@ -191,6 +203,8 @@ gem 'twitter-bootstrap-rails', :git => 'git://github.com/seyhunak/twitter-bootst
191
203
  <li>Released gem v.2.1.2 (minor fixes and updated to Twitter Bootstrap 2.1.0)</li>
192
204
  <li>Released gem v.2.1.3 (minor fixes and updated to Twitter Bootstrap 2.1.1)</li>
193
205
  <li>Released gem v.2.1.4 (minor fixes)</li>
206
+ <li>Released gem v.2.1.5 (minor fixes, install generator detects javascript template engine, updated to Twitter Bootstrap 2.2.1)</li>
207
+ <li>Released gem v.2.1.6 (minor fixes)</li>
194
208
  </ul>
195
209
 
196
210
 
@@ -2,6 +2,8 @@ module BootstrapFlashHelper
2
2
  def bootstrap_flash
3
3
  flash_messages = []
4
4
  flash.each do |type, message|
5
+ # Skip Devise :timeout flag
6
+ next if type == :timeout
5
7
  type = :success if type == :notice
6
8
  type = :error if type == :alert
7
9
  text = content_tag(:div,
@@ -6,7 +6,7 @@ module GlyphHelper
6
6
  # # => <i class="icon-lock icon-white"></i>
7
7
 
8
8
  def glyph(*names)
9
- content_tag :i, nil, class: names.map{|name| "icon-#{name.to_s.gsub('_','-')}" }
9
+ content_tag :i, nil, :class => names.map{|name| "icon-#{name.to_s.gsub('_','-')}" }
10
10
  end
11
11
  end
12
12
 
@@ -31,7 +31,11 @@ module Bootstrap
31
31
  end
32
32
 
33
33
  def add_bootstrap
34
- copy_file "bootstrap.coffee", "app/assets/javascripts/bootstrap.js.coffee"
34
+ if Rails.configuration.app_generators.rails[:javascript_engine] == :coffee
35
+ copy_file "bootstrap.coffee", "app/assets/javascripts/bootstrap.js.coffee"
36
+ else
37
+ copy_file "bootstrap.js", "app/assets/javascripts/bootstrap.js"
38
+ end
35
39
  copy_file "bootstrap_and_overrides.less", "app/assets/stylesheets/bootstrap_and_overrides.css.less"
36
40
  end
37
41
 
@@ -0,0 +1,5 @@
1
+ jQuery(function() {
2
+ $("a[rel=popover]").popover();
3
+ $(".tooltip").tooltip();
4
+ $("a[rel=tooltip]").tooltip();
5
+ });
@@ -2,8 +2,8 @@
2
2
  @import "twitter/bootstrap/responsive";
3
3
 
4
4
  // Set the correct sprite paths
5
- @iconSpritePath: asset-path("twitter/bootstrap/glyphicons-halflings.png");
6
- @iconWhiteSpritePath: asset-path("twitter/bootstrap/glyphicons-halflings-white.png");
5
+ @iconSpritePath: asset-path("twitter/bootstrap/glyphicons-halflings");
6
+ @iconWhiteSpritePath: asset-path("twitter/bootstrap/glyphicons-halflings-white");
7
7
 
8
8
  // Set the Font Awesome (Font Awesome is default. You can disable by commenting below lines)
9
9
  // Note: If you use asset_path() here, your compiled boostrap_and_overrides.css will not
@@ -16,6 +16,9 @@
16
16
  // Font Awesome
17
17
  @import "fontawesome";
18
18
 
19
+ // Glyphicons
20
+ //@import "twitter/bootstrap/sprites.less";
21
+
19
22
  // Your custom LESS stylesheets goes here
20
23
  //
21
24
  // Since bootstrap was imported above you have access to its mixins which
@@ -1,7 +1,7 @@
1
1
  module Twitter
2
2
  module Bootstrap
3
3
  module Rails
4
- VERSION = "2.1.4"
4
+ VERSION = "2.1.6"
5
5
  end
6
6
  end
7
7
  end
@@ -6,5 +6,5 @@ module Twitter
6
6
  end
7
7
  end
8
8
 
9
- require 'less-rails'
9
+ #require 'less-rails'
10
10
  require 'twitter/bootstrap/rails/bootstrap' if defined?(Rails)
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================
2
- * bootstrap-affix.js v2.1.1
2
+ * bootstrap-affix.js v2.2.1
3
3
  * http://twitter.github.com/bootstrap/javascript.html#affix
4
4
  * ==========================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -28,7 +28,9 @@
28
28
 
29
29
  var Affix = function (element, options) {
30
30
  this.options = $.extend({}, $.fn.affix.defaults, options)
31
- this.$window = $(window).on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
31
+ this.$window = $(window)
32
+ .on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
33
+ .on('click.affix.data-api', $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
32
34
  this.$element = $(element)
33
35
  this.checkPosition()
34
36
  }
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================
2
- * bootstrap-alert.js v2.1.1
2
+ * bootstrap-alert.js v2.2.1
3
3
  * http://twitter.github.com/bootstrap/javascript.html#alerts
4
4
  * ==========================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -83,8 +83,6 @@
83
83
  /* ALERT DATA-API
84
84
  * ============== */
85
85
 
86
- $(function () {
87
- $('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
88
- })
86
+ $(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
89
87
 
90
88
  }(window.jQuery);
@@ -1,5 +1,5 @@
1
1
  /* ============================================================
2
- * bootstrap-button.js v2.1.1
2
+ * bootstrap-button.js v2.2.1
3
3
  * http://twitter.github.com/bootstrap/javascript.html#buttons
4
4
  * ============================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -85,12 +85,10 @@
85
85
  /* BUTTON DATA-API
86
86
  * =============== */
87
87
 
88
- $(function () {
89
- $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) {
90
- var $btn = $(e.target)
91
- if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
92
- $btn.button('toggle')
93
- })
88
+ $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) {
89
+ var $btn = $(e.target)
90
+ if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
91
+ $btn.button('toggle')
94
92
  })
95
93
 
96
94
  }(window.jQuery);
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================
2
- * bootstrap-carousel.js v2.1.1
2
+ * bootstrap-carousel.js v2.2.1
3
3
  * http://twitter.github.com/bootstrap/javascript.html#carousel
4
4
  * ==========================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -94,9 +94,7 @@
94
94
  , direction = type == 'next' ? 'left' : 'right'
95
95
  , fallback = type == 'next' ? 'first' : 'last'
96
96
  , that = this
97
- , e = $.Event('slide', {
98
- relatedTarget: $next[0]
99
- })
97
+ , e
100
98
 
101
99
  this.sliding = true
102
100
 
@@ -104,6 +102,10 @@
104
102
 
105
103
  $next = $next.length ? $next : this.$element.find('.item')[fallback]()
106
104
 
105
+ e = $.Event('slide', {
106
+ relatedTarget: $next[0]
107
+ })
108
+
107
109
  if ($next.hasClass('active')) return
108
110
 
109
111
  if ($.support.transition && this.$element.hasClass('slide')) {
@@ -163,14 +165,12 @@
163
165
  /* CAROUSEL DATA-API
164
166
  * ================= */
165
167
 
166
- $(function () {
167
- $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) {
168
- var $this = $(this), href
169
- , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
170
- , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data())
171
- $target.carousel(options)
172
- e.preventDefault()
173
- })
168
+ $(document).on('click.carousel.data-api', '[data-slide]', function (e) {
169
+ var $this = $(this), href
170
+ , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
171
+ , options = $.extend({}, $target.data(), $this.data())
172
+ $target.carousel(options)
173
+ e.preventDefault()
174
174
  })
175
175
 
176
176
  }(window.jQuery);
@@ -1,5 +1,5 @@
1
1
  /* =============================================================
2
- * bootstrap-collapse.js v2.1.1
2
+ * bootstrap-collapse.js v2.2.1
3
3
  * http://twitter.github.com/bootstrap/javascript.html#collapse
4
4
  * =============================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -143,16 +143,14 @@
143
143
  /* COLLAPSIBLE DATA-API
144
144
  * ==================== */
145
145
 
146
- $(function () {
147
- $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
148
- var $this = $(this), href
149
- , target = $this.attr('data-target')
150
- || e.preventDefault()
151
- || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
152
- , option = $(target).data('collapse') ? 'toggle' : $this.data()
153
- $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
154
- $(target).collapse(option)
155
- })
146
+ $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
147
+ var $this = $(this), href
148
+ , target = $this.attr('data-target')
149
+ || e.preventDefault()
150
+ || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
151
+ , option = $(target).data('collapse') ? 'toggle' : $this.data()
152
+ $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
153
+ $(target).collapse(option)
156
154
  })
157
155
 
158
156
  }(window.jQuery);
@@ -1,5 +1,5 @@
1
1
  /* ============================================================
2
- * bootstrap-dropdown.js v2.1.1
2
+ * bootstrap-dropdown.js v2.2.1
3
3
  * http://twitter.github.com/bootstrap/javascript.html#dropdowns
4
4
  * ============================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -100,8 +100,9 @@
100
100
  }
101
101
 
102
102
  function clearMenus() {
103
- getParent($(toggle))
104
- .removeClass('open')
103
+ $(toggle).each(function () {
104
+ getParent($(this)).removeClass('open')
105
+ })
105
106
  }
106
107
 
107
108
  function getParent($this) {
@@ -138,13 +139,10 @@
138
139
  /* APPLY TO STANDARD DROPDOWN ELEMENTS
139
140
  * =================================== */
140
141
 
141
- $(function () {
142
- $('html')
143
- .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
144
- $('body')
145
- .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
146
- .on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
147
- .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
148
- })
142
+ $(document)
143
+ .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
144
+ .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
145
+ .on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
146
+ .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
149
147
 
150
148
  }(window.jQuery);
@@ -1,5 +1,5 @@
1
1
  /* =========================================================
2
- * bootstrap-modal.js v2.1.1
2
+ * bootstrap-modal.js v2.2.1
3
3
  * http://twitter.github.com/bootstrap/javascript.html#modals
4
4
  * =========================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -49,8 +49,6 @@
49
49
 
50
50
  if (this.isShown || e.isDefaultPrevented()) return
51
51
 
52
- $('body').addClass('modal-open')
53
-
54
52
  this.isShown = true
55
53
 
56
54
  this.escape()
@@ -72,13 +70,12 @@
72
70
  that.$element
73
71
  .addClass('in')
74
72
  .attr('aria-hidden', false)
75
- .focus()
76
73
 
77
74
  that.enforceFocus()
78
75
 
79
76
  transition ?
80
- that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) :
81
- that.$element.trigger('shown')
77
+ that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
78
+ that.$element.focus().trigger('shown')
82
79
 
83
80
  })
84
81
  }
@@ -96,8 +93,6 @@
96
93
 
97
94
  this.isShown = false
98
95
 
99
- $('body').removeClass('modal-open')
100
-
101
96
  this.escape()
102
97
 
103
98
  $(document).off('focusin.modal')
@@ -167,9 +162,11 @@
167
162
  this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
168
163
  .appendTo(document.body)
169
164
 
170
- if (this.options.backdrop != 'static') {
171
- this.$backdrop.click($.proxy(this.hide, this))
172
- }
165
+ this.$backdrop.click(
166
+ this.options.backdrop == 'static' ?
167
+ $.proxy(this.$element[0].focus, this.$element[0])
168
+ : $.proxy(this.hide, this)
169
+ )
173
170
 
174
171
  if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
175
172
 
@@ -219,21 +216,19 @@
219
216
  /* MODAL DATA-API
220
217
  * ============== */
221
218
 
222
- $(function () {
223
- $('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
224
- var $this = $(this)
225
- , href = $this.attr('href')
226
- , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
227
- , option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
219
+ $(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
220
+ var $this = $(this)
221
+ , href = $this.attr('href')
222
+ , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
223
+ , option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
228
224
 
229
- e.preventDefault()
225
+ e.preventDefault()
230
226
 
231
- $target
232
- .modal(option)
233
- .one('hide', function () {
234
- $this.focus()
235
- })
236
- })
227
+ $target
228
+ .modal(option)
229
+ .one('hide', function () {
230
+ $this.focus()
231
+ })
237
232
  })
238
233
 
239
- }(window.jQuery);
234
+ }(window.jQuery);
@@ -1,5 +1,5 @@
1
1
  /* ===========================================================
2
- * bootstrap-popover.js v2.1.1
2
+ * bootstrap-popover.js v2.2.1
3
3
  * http://twitter.github.com/bootstrap/javascript.html#popovers
4
4
  * ===========================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -1,5 +1,5 @@
1
1
  /* =============================================================
2
- * bootstrap-scrollspy.js v2.1.1
2
+ * bootstrap-scrollspy.js v2.2.1
3
3
  * http://twitter.github.com/bootstrap/javascript.html#scrollspy
4
4
  * =============================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -1,5 +1,5 @@
1
1
  /* ========================================================
2
- * bootstrap-tab.js v2.1.1
2
+ * bootstrap-tab.js v2.2.1
3
3
  * http://twitter.github.com/bootstrap/javascript.html#tabs
4
4
  * ========================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -49,7 +49,7 @@
49
49
 
50
50
  if ( $this.parent('li').hasClass('active') ) return
51
51
 
52
- previous = $ul.find('.active a').last()[0]
52
+ previous = $ul.find('.active:last a')[0]
53
53
 
54
54
  e = $.Event('show', {
55
55
  relatedTarget: previous
@@ -125,11 +125,9 @@
125
125
  /* TAB DATA-API
126
126
  * ============ */
127
127
 
128
- $(function () {
129
- $('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
130
- e.preventDefault()
131
- $(this).tab('show')
132
- })
128
+ $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
129
+ e.preventDefault()
130
+ $(this).tab('show')
133
131
  })
134
132
 
135
133
  }(window.jQuery);
@@ -1,5 +1,5 @@
1
1
  /* ===========================================================
2
- * bootstrap-tooltip.js v2.1.1
2
+ * bootstrap-tooltip.js v2.2.1
3
3
  * http://twitter.github.com/bootstrap/javascript.html#tooltips
4
4
  * Inspired by the original jQuery.tipsy by Jason Frame
5
5
  * ===========================================================
@@ -119,9 +119,9 @@
119
119
  inside = /in/.test(placement)
120
120
 
121
121
  $tip
122
- .remove()
122
+ .detach()
123
123
  .css({ top: 0, left: 0, display: 'block' })
124
- .appendTo(inside ? this.$element : document.body)
124
+ .insertAfter(this.$element)
125
125
 
126
126
  pos = this.getPosition(inside)
127
127
 
@@ -144,7 +144,7 @@
144
144
  }
145
145
 
146
146
  $tip
147
- .css(tp)
147
+ .offset(tp)
148
148
  .addClass(placement)
149
149
  .addClass('in')
150
150
  }
@@ -166,18 +166,18 @@
166
166
 
167
167
  function removeWithAnimation() {
168
168
  var timeout = setTimeout(function () {
169
- $tip.off($.support.transition.end).remove()
169
+ $tip.off($.support.transition.end).detach()
170
170
  }, 500)
171
171
 
172
172
  $tip.one($.support.transition.end, function () {
173
173
  clearTimeout(timeout)
174
- $tip.remove()
174
+ $tip.detach()
175
175
  })
176
176
  }
177
177
 
178
178
  $.support.transition && this.$tip.hasClass('fade') ?
179
179
  removeWithAnimation() :
180
- $tip.remove()
180
+ $tip.detach()
181
181
 
182
182
  return this
183
183
  }
@@ -235,8 +235,9 @@
235
235
  this.enabled = !this.enabled
236
236
  }
237
237
 
238
- , toggle: function () {
239
- this[this.tip().hasClass('in') ? 'hide' : 'show']()
238
+ , toggle: function (e) {
239
+ var self = $(e.currentTarget)[this.type](this._options).data(this.type)
240
+ self[self.tip().hasClass('in') ? 'hide' : 'show']()
240
241
  }
241
242
 
242
243
  , destroy: function () {
@@ -269,7 +270,7 @@
269
270
  , trigger: 'hover'
270
271
  , title: ''
271
272
  , delay: 0
272
- , html: true
273
+ , html: false
273
274
  }
274
275
 
275
- }(window.jQuery);
276
+ }(window.jQuery);
@@ -1,5 +1,5 @@
1
1
  /* ===================================================
2
- * bootstrap-transition.js v2.1.1
2
+ * bootstrap-transition.js v2.2.1
3
3
  * http://twitter.github.com/bootstrap/javascript.html#transitions
4
4
  * ===================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -20,13 +20,13 @@
20
20
 
21
21
  !function ($) {
22
22
 
23
- $(function () {
23
+ "use strict"; // jshint ;_;
24
24
 
25
- "use strict"; // jshint ;_;
26
25
 
26
+ /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
27
+ * ======================================================= */
27
28
 
28
- /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
29
- * ======================================================= */
29
+ $(function () {
30
30
 
31
31
  $.support.transition = (function () {
32
32
 
@@ -1,5 +1,5 @@
1
1
  /* =============================================================
2
- * bootstrap-typeahead.js v2.1.1
2
+ * bootstrap-typeahead.js v2.2.1
3
3
  * http://twitter.github.com/bootstrap/javascript.html#typeahead
4
4
  * =============================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -174,7 +174,7 @@
174
174
  .on('keypress', $.proxy(this.keypress, this))
175
175
  .on('keyup', $.proxy(this.keyup, this))
176
176
 
177
- if ($.browser.chrome || $.browser.webkit || $.browser.msie) {
177
+ if (this.eventSupported('keydown')) {
178
178
  this.$element.on('keydown', $.proxy(this.keydown, this))
179
179
  }
180
180
 
@@ -183,6 +183,15 @@
183
183
  .on('mouseenter', 'li', $.proxy(this.mouseenter, this))
184
184
  }
185
185
 
186
+ , eventSupported: function(eventName) {
187
+ var isSupported = eventName in this.$element
188
+ if (!isSupported) {
189
+ this.$element.setAttribute(eventName, 'return;')
190
+ isSupported = typeof this.$element[eventName] === 'function'
191
+ }
192
+ return isSupported
193
+ }
194
+
186
195
  , move: function (e) {
187
196
  if (!this.shown) return
188
197
 
@@ -221,6 +230,9 @@
221
230
  switch(e.keyCode) {
222
231
  case 40: // down arrow
223
232
  case 38: // up arrow
233
+ case 16: // shift
234
+ case 17: // ctrl
235
+ case 18: // alt
224
236
  break
225
237
 
226
238
  case 9: // tab
@@ -288,13 +300,11 @@
288
300
  /* TYPEAHEAD DATA-API
289
301
  * ================== */
290
302
 
291
- $(function () {
292
- $('body').on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
293
- var $this = $(this)
294
- if ($this.data('typeahead')) return
295
- e.preventDefault()
296
- $this.typeahead($this.data())
297
- })
303
+ $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
304
+ var $this = $(this)
305
+ if ($this.data('typeahead')) return
306
+ e.preventDefault()
307
+ $this.typeahead($this.data())
298
308
  })
299
309
 
300
310
  }(window.jQuery);
@@ -24,11 +24,12 @@
24
24
 
25
25
  @font-face {
26
26
  font-family: "FontAwesome";
27
- src: url("@{fontAwesomeEotPath}");
28
- src: url("@{fontAwesomeEotPath}#iefix") format("embedded-opentype"),
29
- url("@{fontAwesomeWoffPath}") format("woff"),
30
- url("@{fontAwesomeTtfPath}") format("truetype"),
31
- url("@{fontAwesomeSvgPath}") format("svg");
27
+ src: url(@fontAwesomeEotPath);
28
+ @fontAwesomeEotPath_iefix : asset-path("fontawesome-webfont.eot#iefix");
29
+ src: url(@fontAwesomeEotPath_iefix) format("embedded-opentype"),
30
+ url(@fontAwesomeWoffPath) format("woff"),
31
+ url(@fontAwesomeTtfPath) format("truetype"),
32
+ url(@fontAwesomeSvgPath) format("svg");
32
33
  font-weight: normal;
33
34
  font-style: normal;
34
35
  }
@@ -12,7 +12,7 @@
12
12
  .accordion-group {
13
13
  margin-bottom: 2px;
14
14
  border: 1px solid #e5e5e5;
15
- .border-radius(4px);
15
+ .border-radius(@baseBorderRadius);
16
16
  }
17
17
  .accordion-heading {
18
18
  border-bottom: 0;
@@ -12,7 +12,7 @@
12
12
  text-shadow: 0 1px 0 rgba(255,255,255,.5);
13
13
  background-color: @warningBackground;
14
14
  border: 1px solid @warningBorder;
15
- .border-radius(4px);
15
+ .border-radius(@baseBorderRadius);
16
16
  color: @warningText;
17
17
  }
18
18
  .alert h4 {