contour 1.1.2.pre → 1.1.2.pre2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.rdoc CHANGED
@@ -2,12 +2,14 @@
2
2
 
3
3
  * Enhancements
4
4
  * Recommended Ruby bumped to 1.9.3-p327
5
- * Updated Twitter Bootstrap to 2.2.1
5
+ * Updated Twitter Bootstrap to 2.2.2
6
6
  * Updated HighCharts to 2.3.3
7
7
  * Kaminari Pagination styling now provided, available themes:
8
8
  * <%= paginate @items, theme: "contour[-large|-small|-mini]" %>
9
9
  * Update Gem Dependencies
10
10
  * rails 3.2.9, jquery-rails 2.1.4, omniauth-cas 1.0.0, omniauth-twitter 0.0.14
11
+ * Updated Bootstrap-Scroll-Modal to version 1.2
12
+ * nonStandardClick(event) helper JavaScript added to capture clicks
11
13
 
12
14
  == 1.1.1
13
15
 
@@ -7,7 +7,7 @@
7
7
  //= require external/jquery-ui-1.8.22.custom.min.js
8
8
  //= require external/jquery.qtip.min.js
9
9
  //
10
- //= require twitter-bootstrap/v2.2.1/bootstrap
10
+ //= require twitter-bootstrap/v2.2.2/bootstrap
11
11
  //
12
12
  //= require twitter-bootstrap/bootstrap-scroll-modal
13
13
  //= require twitter-bootstrap/bootstrap
@@ -14,6 +14,9 @@
14
14
  else
15
15
  flash_container.append(div_block)
16
16
 
17
+ @nonStandardClick = (event) ->
18
+ event.which > 1 or event.metaKey or event.ctrlKey or event.shiftKey or event.altKey
19
+
17
20
  jQuery ->
18
21
  $(".datepicker").datepicker
19
22
  showOtherMonths: true
@@ -1,12 +1,13 @@
1
1
  /*!
2
2
  * Bootstrap Scroll Modal
3
- * Version: 1.0
4
- * Made for your convenience by @theericanderson
5
- * A variaton of but a small piece of the insanely awesome Twitter Bootstrap (http://twitter.github.com/bootstrap)
3
+ * Version: 1.2
4
+ * Made for your convenience by @theericanderson.
5
+ * A variaton of only small piece of the insanely awesome
6
+ * Twitter Bootstrap (http://twitter.github.com/bootstrap).
6
7
  */
7
8
 
8
9
  /* =========================================================
9
- * bootstrap-modal.js v2.0.2
10
+ * bootstrap-modal.js v2.2.1
10
11
  * http://twitter.github.com/bootstrap/javascript.html#modals
11
12
  * =========================================================
12
13
  * Copyright 2012 Twitter, Inc.
@@ -25,16 +26,18 @@
25
26
  * ========================================================= */
26
27
 
27
28
 
28
- !function( $ ){
29
+ !function ($) {
29
30
 
30
- "use strict"
31
+ "use strict"; // jshint ;_;
31
32
 
32
33
  /* MODAL CLASS DEFINITION
33
34
  * ====================== */
34
35
 
35
- var Modal = function ( content, options ) {
36
+ var Modal = function (element, options) {
36
37
  this.options = options
37
- this.$element = $(content)
38
+ this.$element = $(element)
39
+ .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
40
+ this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
38
41
  }
39
42
 
40
43
  Modal.prototype = {
@@ -47,19 +50,25 @@
47
50
 
48
51
  , show: function () {
49
52
  var that = this
53
+ , e = $.Event('show')
50
54
 
51
- if (this.isShown) return
52
-
53
- $('body').addClass('modal-open')
55
+ if (this.isShown || e.isDefaultPrevented()) return
54
56
 
55
57
  this.isShown = true
56
- this.$element.trigger('show')
57
58
 
58
- escape.call(this)
59
- backdrop.call(this, function () {
59
+ this.escape()
60
+
61
+ if (this.options.dynamic) {
62
+ this.$elementWrapper = $('<div class="modal-wrapper" />').insertBefore(this.$element)
63
+ this.$element.prependTo(this.$elementWrapper)
64
+ }
65
+
66
+ this.backdrop(function () {
60
67
  var transition = $.support.transition && that.$element.hasClass('fade')
61
68
 
62
- !that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position
69
+ if (!that.$element.parent().length) {
70
+ that.$element.appendTo(document.body) //don't move modals dom position
71
+ }
63
72
 
64
73
  that.$element
65
74
  .show()
@@ -68,11 +77,15 @@
68
77
  that.$element[0].offsetWidth // force reflow
69
78
  }
70
79
 
71
- that.$element.addClass('in')
80
+ that.$element
81
+ .addClass('in')
82
+ .attr('aria-hidden', false)
83
+
84
+ that.enforceFocus()
72
85
 
73
86
  transition ?
74
87
  that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) :
75
- that.$element.trigger('shown')
88
+ that.$element.focus().trigger('shown')
76
89
 
77
90
  })
78
91
  }
@@ -80,124 +93,149 @@
80
93
  , hide: function ( e ) {
81
94
  e && e.preventDefault()
82
95
 
83
- if (!this.isShown) return
84
-
85
96
  var that = this
97
+
98
+ e = $.Event('hide')
99
+
100
+ this.$element.trigger(e)
101
+
102
+ if (!this.isShown || e.isDefaultPrevented()) return
103
+
86
104
  this.isShown = false
87
105
 
88
- $('body').removeClass('modal-open')
106
+ this.escape()
89
107
 
90
- escape.call(this)
108
+ $(document).off('focusin.modal')
91
109
 
92
110
  this.$element
93
- .trigger('hide')
94
111
  .removeClass('in')
112
+ .attr('aria-hidden', true)
95
113
 
96
114
  $.support.transition && this.$element.hasClass('fade') ?
97
- hideWithTransition.call(this) :
98
- hideModal.call(this)
115
+ this.hideWithTransition() :
116
+ this.hideModal()
99
117
  }
100
118
 
101
- }
119
+ , enforceFocus: function () {
120
+ var that = this
121
+ $(document).on('focusin.modal', function (e) {
122
+ if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
123
+ that.$element.focus()
124
+ }
125
+ })
126
+ }
102
127
 
128
+ , escape: function () {
129
+ var that = this
130
+ if (this.isShown && this.options.keyboard) {
131
+ this.$element.on('keyup.dismiss.modal', function ( e ) {
132
+ e.which == 27 && that.hide()
133
+ })
134
+ } else if (!this.isShown) {
135
+ this.$element.off('keyup.dismiss.modal')
136
+ }
137
+ }
103
138
 
104
- /* MODAL PRIVATE METHODS
105
- * ===================== */
139
+ , hideWithTransition: function () {
140
+ var that = this
141
+ , timeout = setTimeout(function () {
142
+ that.$element.off($.support.transition.end)
143
+ that.hideModal()
144
+ }, 500)
145
+
146
+ this.$element.one($.support.transition.end, function () {
147
+ clearTimeout(timeout)
148
+ that.hideModal()
149
+ })
150
+ }
106
151
 
107
- function hideWithTransition() {
108
- var that = this
109
- , timeout = setTimeout(function () {
110
- that.$element.off($.support.transition.end)
111
- hideModal.call(that)
112
- }, 500)
152
+ , hideModal: function (that) {
153
+ this.$element
154
+ .hide()
155
+ .trigger('hidden')
113
156
 
114
- this.$element.one($.support.transition.end, function () {
115
- clearTimeout(timeout)
116
- hideModal.call(that)
117
- })
118
- }
157
+ if (this.options.dynamic) {
158
+ this.$element.insertAfter(this.$elementWrapper)
159
+ this.$elementWrapper.remove()
160
+ this.$elementWrapper = null
161
+ }
119
162
 
120
- function hideModal( that ) {
121
- this.$element
122
- .hide()
123
- .trigger('hidden')
163
+ this.backdrop()
164
+ }
124
165
 
125
- backdrop.call(this)
126
- }
166
+ , removeBackdrop: function () {
167
+ this.$element.insertAfter(this.$backdrop)
168
+ this.$backdrop.remove()
169
+ this.$backdrop = null
170
+ $('body').css({ 'overflow' : '' })
171
+ }
127
172
 
128
- function backdrop( callback ) {
129
- var that = this
130
- , animate = this.$element.hasClass('fade') ? 'fade' : ''
173
+ , backdrop: function (callback) {
174
+ var that = this
175
+ , animate = this.$element.hasClass('fade') ? 'fade' : ''
131
176
 
132
- if (this.isShown && this.options.backdrop) {
133
- var doAnimate = $.support.transition && animate
177
+ if (this.isShown && this.options.backdrop) {
178
+ var doAnimate = $.support.transition && animate
134
179
 
135
- this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
136
- .insertBefore(this.$element)
180
+ this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
181
+ .appendTo(document.body)
137
182
 
138
- if (this.options.dynamic) {
139
- this.$elementWrapper = $('<div class="modal-wrapper" />')
140
- .prependTo(this.$backdrop)
141
- .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
142
- this.$element.prependTo(this.$elementWrapper)
143
- } else {
144
- this.$element.prependTo(this.$backdrop)
145
- .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
146
- }
183
+ // Below are Bootstrap Scroll Modal additions to the backdrop function.
147
184
 
148
- $('html').css({ 'overflow' : 'hidden' })
185
+ if (!that.$element.parent().length) {
186
+ this.$backdrop.appendTo(document.body) // don't move modals dom position
187
+ } else if (this.options.dynamic) {
188
+ this.$backdrop.insertBefore(this.$elementWrapper)
189
+ } else {
190
+ this.$backdrop.insertBefore(this.$element)
191
+ }
149
192
 
150
- if (this.options.backdrop != 'static') {
151
- this.$backdrop.on('click', function(e){
152
- if (e.target == e.delegateTarget) {
153
- that.hide(e)
193
+ if (this.options.dynamic) {
194
+ this.$elementWrapper.prependTo(this.$backdrop)
195
+ .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
196
+ } else {
197
+ this.$element.prependTo(this.$backdrop)
198
+ .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
154
199
  }
155
- })
156
- }
157
200
 
158
- if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
201
+ $('body').css({ 'overflow' : 'hidden' })
159
202
 
160
- this.$backdrop.addClass('in')
203
+ this.$backdrop.on('click', function(e){
204
+ if (that.options.backdrop == 'static') {
205
+ $.proxy(that.$element[0].focus, that.$element[0])
206
+ } else if (e.target == e.delegateTarget) {
207
+ that.hide(e)
208
+ }
209
+ })
161
210
 
162
- doAnimate ?
163
- this.$backdrop.one($.support.transition.end, callback) :
164
- callback()
211
+ // end additions
165
212
 
166
- } else if (!this.isShown && this.$backdrop) {
167
- this.$backdrop.removeClass('in')
213
+ if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
168
214
 
169
- $.support.transition && this.$element.hasClass('fade')?
170
- this.$backdrop.one($.support.transition.end, $.proxy(removeBackdrop, this)) :
171
- removeBackdrop.call(this)
215
+ this.$backdrop.addClass('in')
172
216
 
173
- } else if (callback) {
174
- callback()
175
- }
176
- }
217
+ doAnimate ?
218
+ this.$backdrop.one($.support.transition.end, callback) :
219
+ callback()
177
220
 
178
- function removeBackdrop() {
179
- this.$element.insertAfter(this.$backdrop)
180
- this.$backdrop.remove()
181
- this.$backdrop = null
182
- $('html').css({ 'overflow' : 'auto' })
183
- }
221
+ } else if (!this.isShown && this.$backdrop) {
222
+ this.$backdrop.removeClass('in')
184
223
 
185
- function escape() {
186
- var that = this
187
- if (this.isShown && this.options.keyboard) {
188
- $(document).on('keyup.dismiss.modal', function ( e ) {
189
- e.which == 27 && that.hide()
190
- })
191
- } else if (!this.isShown) {
192
- $(document).off('keyup.dismiss.modal')
193
- }
224
+ $.support.transition && this.$element.hasClass('fade')?
225
+ this.$backdrop.one($.support.transition.end, $.proxy(this.removeBackdrop, this)) :
226
+ this.removeBackdrop()
227
+
228
+ } else if (callback) {
229
+ callback()
230
+ }
231
+ }
194
232
  }
195
233
 
196
234
 
197
235
  /* MODAL PLUGIN DEFINITION
198
236
  * ======================= */
199
237
 
200
- $.fn.modal = function ( option ) {
238
+ $.fn.modal = function (option) {
201
239
  return this.each(function () {
202
240
  var $this = $(this)
203
241
  , data = $this.data('modal')
@@ -220,15 +258,19 @@
220
258
  /* MODAL DATA-API
221
259
  * ============== */
222
260
 
223
- $(function () {
224
- $('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
225
- var $this = $(this), href
226
- , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
227
- , option = $target.data('modal') ? 'toggle' : $.extend({}, $target.data(), $this.data())
261
+ $(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
262
+ var $this = $(this)
263
+ , href = $this.attr('href')
264
+ , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
265
+ , option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
228
266
 
229
- e.preventDefault()
230
- $target.modal(option)
231
- })
267
+ e.preventDefault()
268
+
269
+ $target
270
+ .modal(option)
271
+ .one('hide', function () {
272
+ $this.focus()
273
+ })
232
274
  })
233
275
 
234
- }( window.jQuery );
276
+ }(window.jQuery);
@@ -1,5 +1,5 @@
1
1
  /* ===================================================
2
- * bootstrap-transition.js v2.2.1
2
+ * bootstrap-transition.js v2.2.2
3
3
  * http://twitter.github.com/bootstrap/javascript.html#transitions
4
4
  * ===================================================
5
5
  * Copyright 2012 Twitter, Inc.
@@ -58,7 +58,7 @@
58
58
  })
59
59
 
60
60
  }(window.jQuery);/* ==========================================================
61
- * bootstrap-alert.js v2.2.1
61
+ * bootstrap-alert.js v2.2.2
62
62
  * http://twitter.github.com/bootstrap/javascript.html#alerts
63
63
  * ==========================================================
64
64
  * Copyright 2012 Twitter, Inc.
@@ -127,6 +127,8 @@
127
127
  /* ALERT PLUGIN DEFINITION
128
128
  * ======================= */
129
129
 
130
+ var old = $.fn.alert
131
+
130
132
  $.fn.alert = function (option) {
131
133
  return this.each(function () {
132
134
  var $this = $(this)
@@ -139,13 +141,22 @@
139
141
  $.fn.alert.Constructor = Alert
140
142
 
141
143
 
144
+ /* ALERT NO CONFLICT
145
+ * ================= */
146
+
147
+ $.fn.alert.noConflict = function () {
148
+ $.fn.alert = old
149
+ return this
150
+ }
151
+
152
+
142
153
  /* ALERT DATA-API
143
154
  * ============== */
144
155
 
145
156
  $(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
146
157
 
147
158
  }(window.jQuery);/* ============================================================
148
- * bootstrap-button.js v2.2.1
159
+ * bootstrap-button.js v2.2.2
149
160
  * http://twitter.github.com/bootstrap/javascript.html#buttons
150
161
  * ============================================================
151
162
  * Copyright 2012 Twitter, Inc.
@@ -210,6 +221,8 @@
210
221
  /* BUTTON PLUGIN DEFINITION
211
222
  * ======================== */
212
223
 
224
+ var old = $.fn.button
225
+
213
226
  $.fn.button = function (option) {
214
227
  return this.each(function () {
215
228
  var $this = $(this)
@@ -228,6 +241,15 @@
228
241
  $.fn.button.Constructor = Button
229
242
 
230
243
 
244
+ /* BUTTON NO CONFLICT
245
+ * ================== */
246
+
247
+ $.fn.button.noConflict = function () {
248
+ $.fn.button = old
249
+ return this
250
+ }
251
+
252
+
231
253
  /* BUTTON DATA-API
232
254
  * =============== */
233
255
 
@@ -238,7 +260,7 @@
238
260
  })
239
261
 
240
262
  }(window.jQuery);/* ==========================================================
241
- * bootstrap-carousel.js v2.2.1
263
+ * bootstrap-carousel.js v2.2.2
242
264
  * http://twitter.github.com/bootstrap/javascript.html#carousel
243
265
  * ==========================================================
244
266
  * Copyright 2012 Twitter, Inc.
@@ -268,7 +290,6 @@
268
290
  var Carousel = function (element, options) {
269
291
  this.$element = $(element)
270
292
  this.options = options
271
- this.options.slide && this.slide(this.options.slide)
272
293
  this.options.pause == 'hover' && this.$element
273
294
  .on('mouseenter', $.proxy(this.pause, this))
274
295
  .on('mouseleave', $.proxy(this.cycle, this))
@@ -380,6 +401,8 @@
380
401
  /* CAROUSEL PLUGIN DEFINITION
381
402
  * ========================== */
382
403
 
404
+ var old = $.fn.carousel
405
+
383
406
  $.fn.carousel = function (option) {
384
407
  return this.each(function () {
385
408
  var $this = $(this)
@@ -401,6 +424,14 @@
401
424
  $.fn.carousel.Constructor = Carousel
402
425
 
403
426
 
427
+ /* CAROUSEL NO CONFLICT
428
+ * ==================== */
429
+
430
+ $.fn.carousel.noConflict = function () {
431
+ $.fn.carousel = old
432
+ return this
433
+ }
434
+
404
435
  /* CAROUSEL DATA-API
405
436
  * ================= */
406
437
 
@@ -413,7 +444,7 @@
413
444
  })
414
445
 
415
446
  }(window.jQuery);/* =============================================================
416
- * bootstrap-collapse.js v2.2.1
447
+ * bootstrap-collapse.js v2.2.2
417
448
  * http://twitter.github.com/bootstrap/javascript.html#collapse
418
449
  * =============================================================
419
450
  * Copyright 2012 Twitter, Inc.
@@ -534,8 +565,10 @@
534
565
  }
535
566
 
536
567
 
537
- /* COLLAPSIBLE PLUGIN DEFINITION
538
- * ============================== */
568
+ /* COLLAPSE PLUGIN DEFINITION
569
+ * ========================== */
570
+
571
+ var old = $.fn.collapse
539
572
 
540
573
  $.fn.collapse = function (option) {
541
574
  return this.each(function () {
@@ -554,9 +587,18 @@
554
587
  $.fn.collapse.Constructor = Collapse
555
588
 
556
589
 
557
- /* COLLAPSIBLE DATA-API
590
+ /* COLLAPSE NO CONFLICT
558
591
  * ==================== */
559
592
 
593
+ $.fn.collapse.noConflict = function () {
594
+ $.fn.collapse = old
595
+ return this
596
+ }
597
+
598
+
599
+ /* COLLAPSE DATA-API
600
+ * ================= */
601
+
560
602
  $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
561
603
  var $this = $(this), href
562
604
  , target = $this.attr('data-target')
@@ -568,7 +610,7 @@
568
610
  })
569
611
 
570
612
  }(window.jQuery);/* ============================================================
571
- * bootstrap-dropdown.js v2.2.1
613
+ * bootstrap-dropdown.js v2.2.2
572
614
  * http://twitter.github.com/bootstrap/javascript.html#dropdowns
573
615
  * ============================================================
574
616
  * Copyright 2012 Twitter, Inc.
@@ -622,9 +664,10 @@
622
664
 
623
665
  if (!isActive) {
624
666
  $parent.toggleClass('open')
625
- $this.focus()
626
667
  }
627
668
 
669
+ $this.focus()
670
+
628
671
  return false
629
672
  }
630
673
 
@@ -651,7 +694,7 @@
651
694
 
652
695
  if (!isActive || (isActive && e.keyCode == 27)) return $this.click()
653
696
 
654
- $items = $('[role=menu] li:not(.divider) a', $parent)
697
+ $items = $('[role=menu] li:not(.divider):visible a', $parent)
655
698
 
656
699
  if (!$items.length) return
657
700
 
@@ -693,6 +736,8 @@
693
736
  /* DROPDOWN PLUGIN DEFINITION
694
737
  * ========================== */
695
738
 
739
+ var old = $.fn.dropdown
740
+
696
741
  $.fn.dropdown = function (option) {
697
742
  return this.each(function () {
698
743
  var $this = $(this)
@@ -705,17 +750,27 @@
705
750
  $.fn.dropdown.Constructor = Dropdown
706
751
 
707
752
 
753
+ /* DROPDOWN NO CONFLICT
754
+ * ==================== */
755
+
756
+ $.fn.dropdown.noConflict = function () {
757
+ $.fn.dropdown = old
758
+ return this
759
+ }
760
+
761
+
708
762
  /* APPLY TO STANDARD DROPDOWN ELEMENTS
709
763
  * =================================== */
710
764
 
711
765
  $(document)
712
766
  .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
713
767
  .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
768
+ .on('touchstart.dropdown.data-api', '.dropdown-menu', function (e) { e.stopPropagation() })
714
769
  .on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
715
770
  .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
716
771
 
717
772
  }(window.jQuery);/* =========================================================
718
- * bootstrap-modal.js v2.2.1
773
+ * bootstrap-modal.js v2.2.2
719
774
  * http://twitter.github.com/bootstrap/javascript.html#modals
720
775
  * =========================================================
721
776
  * Copyright 2012 Twitter, Inc.
@@ -909,6 +964,8 @@
909
964
  /* MODAL PLUGIN DEFINITION
910
965
  * ======================= */
911
966
 
967
+ var old = $.fn.modal
968
+
912
969
  $.fn.modal = function (option) {
913
970
  return this.each(function () {
914
971
  var $this = $(this)
@@ -929,6 +986,15 @@
929
986
  $.fn.modal.Constructor = Modal
930
987
 
931
988
 
989
+ /* MODAL NO CONFLICT
990
+ * ================= */
991
+
992
+ $.fn.modal.noConflict = function () {
993
+ $.fn.modal = old
994
+ return this
995
+ }
996
+
997
+
932
998
  /* MODAL DATA-API
933
999
  * ============== */
934
1000
 
@@ -949,7 +1015,7 @@
949
1015
 
950
1016
  }(window.jQuery);
951
1017
  /* ===========================================================
952
- * bootstrap-tooltip.js v2.2.1
1018
+ * bootstrap-tooltip.js v2.2.2
953
1019
  * http://twitter.github.com/bootstrap/javascript.html#tooltips
954
1020
  * Inspired by the original jQuery.tipsy by Jason Frame
955
1021
  * ===========================================================
@@ -1200,6 +1266,8 @@
1200
1266
  /* TOOLTIP PLUGIN DEFINITION
1201
1267
  * ========================= */
1202
1268
 
1269
+ var old = $.fn.tooltip
1270
+
1203
1271
  $.fn.tooltip = function ( option ) {
1204
1272
  return this.each(function () {
1205
1273
  var $this = $(this)
@@ -1223,8 +1291,17 @@
1223
1291
  , html: false
1224
1292
  }
1225
1293
 
1294
+
1295
+ /* TOOLTIP NO CONFLICT
1296
+ * =================== */
1297
+
1298
+ $.fn.tooltip.noConflict = function () {
1299
+ $.fn.tooltip = old
1300
+ return this
1301
+ }
1302
+
1226
1303
  }(window.jQuery);/* ===========================================================
1227
- * bootstrap-popover.js v2.2.1
1304
+ * bootstrap-popover.js v2.2.2
1228
1305
  * http://twitter.github.com/bootstrap/javascript.html#popovers
1229
1306
  * ===========================================================
1230
1307
  * Copyright 2012 Twitter, Inc.
@@ -1269,7 +1346,7 @@
1269
1346
  , content = this.getContent()
1270
1347
 
1271
1348
  $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
1272
- $tip.find('.popover-content > *')[this.options.html ? 'html' : 'text'](content)
1349
+ $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
1273
1350
 
1274
1351
  $tip.removeClass('fade top bottom left right in')
1275
1352
  }
@@ -1306,6 +1383,8 @@
1306
1383
  /* POPOVER PLUGIN DEFINITION
1307
1384
  * ======================= */
1308
1385
 
1386
+ var old = $.fn.popover
1387
+
1309
1388
  $.fn.popover = function (option) {
1310
1389
  return this.each(function () {
1311
1390
  var $this = $(this)
@@ -1322,11 +1401,20 @@
1322
1401
  placement: 'right'
1323
1402
  , trigger: 'click'
1324
1403
  , content: ''
1325
- , template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
1404
+ , template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"></div></div></div>'
1326
1405
  })
1327
1406
 
1407
+
1408
+ /* POPOVER NO CONFLICT
1409
+ * =================== */
1410
+
1411
+ $.fn.popover.noConflict = function () {
1412
+ $.fn.popover = old
1413
+ return this
1414
+ }
1415
+
1328
1416
  }(window.jQuery);/* =============================================================
1329
- * bootstrap-scrollspy.js v2.2.1
1417
+ * bootstrap-scrollspy.js v2.2.2
1330
1418
  * http://twitter.github.com/bootstrap/javascript.html#scrollspy
1331
1419
  * =============================================================
1332
1420
  * Copyright 2012 Twitter, Inc.
@@ -1386,7 +1474,7 @@
1386
1474
  , $href = /^#\w/.test(href) && $(href)
1387
1475
  return ( $href
1388
1476
  && $href.length
1389
- && [[ $href.position().top, href ]] ) || null
1477
+ && [[ $href.position().top + self.$scrollElement.scrollTop(), href ]] ) || null
1390
1478
  })
1391
1479
  .sort(function (a, b) { return a[0] - b[0] })
1392
1480
  .each(function () {
@@ -1448,6 +1536,8 @@
1448
1536
  /* SCROLLSPY PLUGIN DEFINITION
1449
1537
  * =========================== */
1450
1538
 
1539
+ var old = $.fn.scrollspy
1540
+
1451
1541
  $.fn.scrollspy = function (option) {
1452
1542
  return this.each(function () {
1453
1543
  var $this = $(this)
@@ -1465,6 +1555,15 @@
1465
1555
  }
1466
1556
 
1467
1557
 
1558
+ /* SCROLLSPY NO CONFLICT
1559
+ * ===================== */
1560
+
1561
+ $.fn.scrollspy.noConflict = function () {
1562
+ $.fn.scrollspy = old
1563
+ return this
1564
+ }
1565
+
1566
+
1468
1567
  /* SCROLLSPY DATA-API
1469
1568
  * ================== */
1470
1569
 
@@ -1476,7 +1575,7 @@
1476
1575
  })
1477
1576
 
1478
1577
  }(window.jQuery);/* ========================================================
1479
- * bootstrap-tab.js v2.2.1
1578
+ * bootstrap-tab.js v2.2.2
1480
1579
  * http://twitter.github.com/bootstrap/javascript.html#tabs
1481
1580
  * ========================================================
1482
1581
  * Copyright 2012 Twitter, Inc.
@@ -1587,6 +1686,8 @@
1587
1686
  /* TAB PLUGIN DEFINITION
1588
1687
  * ===================== */
1589
1688
 
1689
+ var old = $.fn.tab
1690
+
1590
1691
  $.fn.tab = function ( option ) {
1591
1692
  return this.each(function () {
1592
1693
  var $this = $(this)
@@ -1599,6 +1700,15 @@
1599
1700
  $.fn.tab.Constructor = Tab
1600
1701
 
1601
1702
 
1703
+ /* TAB NO CONFLICT
1704
+ * =============== */
1705
+
1706
+ $.fn.tab.noConflict = function () {
1707
+ $.fn.tab = old
1708
+ return this
1709
+ }
1710
+
1711
+
1602
1712
  /* TAB DATA-API
1603
1713
  * ============ */
1604
1714
 
@@ -1608,7 +1718,7 @@
1608
1718
  })
1609
1719
 
1610
1720
  }(window.jQuery);/* =============================================================
1611
- * bootstrap-typeahead.js v2.2.1
1721
+ * bootstrap-typeahead.js v2.2.2
1612
1722
  * http://twitter.github.com/bootstrap/javascript.html#typeahead
1613
1723
  * =============================================================
1614
1724
  * Copyright 2012 Twitter, Inc.
@@ -1642,8 +1752,8 @@
1642
1752
  this.sorter = this.options.sorter || this.sorter
1643
1753
  this.highlighter = this.options.highlighter || this.highlighter
1644
1754
  this.updater = this.options.updater || this.updater
1645
- this.$menu = $(this.options.menu).appendTo('body')
1646
1755
  this.source = this.options.source
1756
+ this.$menu = $(this.options.menu)
1647
1757
  this.shown = false
1648
1758
  this.listen()
1649
1759
  }
@@ -1665,16 +1775,18 @@
1665
1775
  }
1666
1776
 
1667
1777
  , show: function () {
1668
- var pos = $.extend({}, this.$element.offset(), {
1778
+ var pos = $.extend({}, this.$element.position(), {
1669
1779
  height: this.$element[0].offsetHeight
1670
1780
  })
1671
1781
 
1672
- this.$menu.css({
1673
- top: pos.top + pos.height
1674
- , left: pos.left
1675
- })
1782
+ this.$menu
1783
+ .insertAfter(this.$element)
1784
+ .css({
1785
+ top: pos.top + pos.height
1786
+ , left: pos.left
1787
+ })
1788
+ .show()
1676
1789
 
1677
- this.$menu.show()
1678
1790
  this.shown = true
1679
1791
  return this
1680
1792
  }
@@ -1826,7 +1938,7 @@
1826
1938
  }
1827
1939
 
1828
1940
  , keydown: function (e) {
1829
- this.suppressKeyPressRepeat = !~$.inArray(e.keyCode, [40,38,9,13,27])
1941
+ this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27])
1830
1942
  this.move(e)
1831
1943
  }
1832
1944
 
@@ -1885,6 +1997,8 @@
1885
1997
  /* TYPEAHEAD PLUGIN DEFINITION
1886
1998
  * =========================== */
1887
1999
 
2000
+ var old = $.fn.typeahead
2001
+
1888
2002
  $.fn.typeahead = function (option) {
1889
2003
  return this.each(function () {
1890
2004
  var $this = $(this)
@@ -1906,7 +2020,16 @@
1906
2020
  $.fn.typeahead.Constructor = Typeahead
1907
2021
 
1908
2022
 
1909
- /* TYPEAHEAD DATA-API
2023
+ /* TYPEAHEAD NO CONFLICT
2024
+ * =================== */
2025
+
2026
+ $.fn.typeahead.noConflict = function () {
2027
+ $.fn.typeahead = old
2028
+ return this
2029
+ }
2030
+
2031
+
2032
+ /* TYPEAHEAD DATA-API
1910
2033
  * ================== */
1911
2034
 
1912
2035
  $(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
@@ -1918,7 +2041,7 @@
1918
2041
 
1919
2042
  }(window.jQuery);
1920
2043
  /* ==========================================================
1921
- * bootstrap-affix.js v2.2.1
2044
+ * bootstrap-affix.js v2.2.2
1922
2045
  * http://twitter.github.com/bootstrap/javascript.html#affix
1923
2046
  * ==========================================================
1924
2047
  * Copyright 2012 Twitter, Inc.
@@ -1987,6 +2110,8 @@
1987
2110
  /* AFFIX PLUGIN DEFINITION
1988
2111
  * ======================= */
1989
2112
 
2113
+ var old = $.fn.affix
2114
+
1990
2115
  $.fn.affix = function (option) {
1991
2116
  return this.each(function () {
1992
2117
  var $this = $(this)
@@ -2004,6 +2129,15 @@
2004
2129
  }
2005
2130
 
2006
2131
 
2132
+ /* AFFIX NO CONFLICT
2133
+ * ================= */
2134
+
2135
+ $.fn.affix.noConflict = function () {
2136
+ $.fn.affix = old
2137
+ return this
2138
+ }
2139
+
2140
+
2007
2141
  /* AFFIX DATA-API
2008
2142
  * ============== */
2009
2143