bootstrap-on-rails 0.0.2 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +16 -7
- data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +47 -47
- data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/javascripts/bootstrap/affix.js +48 -32
- data/app/assets/javascripts/bootstrap/alert.js +14 -20
- data/app/assets/javascripts/bootstrap/button.js +34 -33
- data/app/assets/javascripts/bootstrap/carousel.js +60 -54
- data/app/assets/javascripts/bootstrap/collapse.js +27 -36
- data/app/assets/javascripts/bootstrap/dropdown.js +36 -39
- data/app/assets/javascripts/bootstrap/modal.js +90 -56
- data/app/assets/javascripts/bootstrap/popover.js +21 -25
- data/app/assets/javascripts/bootstrap/scrollspy.js +56 -44
- data/app/assets/javascripts/bootstrap/tab.js +17 -24
- data/app/assets/javascripts/bootstrap/tooltip.js +158 -87
- data/app/assets/javascripts/bootstrap/transition.js +24 -21
- data/app/assets/stylesheets/bootstrap/alerts.less +4 -3
- data/app/assets/stylesheets/bootstrap/badges.less +27 -23
- data/app/assets/stylesheets/bootstrap/bootstrap.less +3 -2
- data/app/assets/stylesheets/bootstrap/breadcrumbs.less +4 -1
- data/app/assets/stylesheets/bootstrap/button-groups.less +36 -49
- data/app/assets/stylesheets/bootstrap/buttons.less +16 -17
- data/app/assets/stylesheets/bootstrap/carousel.less +18 -6
- data/app/assets/stylesheets/bootstrap/close.less +0 -0
- data/app/assets/stylesheets/bootstrap/code.less +16 -1
- data/app/assets/stylesheets/bootstrap/component-animations.less +6 -4
- data/app/assets/stylesheets/bootstrap/dropdowns.less +33 -10
- data/app/assets/stylesheets/bootstrap/forms.less +236 -60
- data/app/assets/stylesheets/bootstrap/glyphicons.less +5 -9
- data/app/assets/stylesheets/bootstrap/grid.less +40 -49
- data/app/assets/stylesheets/bootstrap/input-groups.less +51 -21
- data/app/assets/stylesheets/bootstrap/jumbotron.less +15 -7
- data/app/assets/stylesheets/bootstrap/labels.less +7 -1
- data/app/assets/stylesheets/bootstrap/list-group.less +47 -4
- data/app/assets/stylesheets/bootstrap/media.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins.less +35 -854
- data/app/assets/stylesheets/bootstrap/mixins/alerts.less +14 -0
- data/app/assets/stylesheets/bootstrap/mixins/background-variant.less +8 -0
- data/app/assets/stylesheets/bootstrap/mixins/border-radius.less +18 -0
- data/app/assets/stylesheets/bootstrap/mixins/buttons.less +50 -0
- data/app/assets/stylesheets/bootstrap/mixins/center-block.less +7 -0
- data/app/assets/stylesheets/bootstrap/mixins/clearfix.less +22 -0
- data/app/assets/stylesheets/bootstrap/mixins/forms.less +81 -0
- data/app/assets/stylesheets/bootstrap/mixins/gradients.less +59 -0
- data/app/assets/stylesheets/bootstrap/mixins/grid-framework.less +91 -0
- data/app/assets/stylesheets/bootstrap/mixins/grid.less +122 -0
- data/app/assets/stylesheets/bootstrap/mixins/hide-text.less +21 -0
- data/app/assets/stylesheets/bootstrap/mixins/image.less +34 -0
- data/app/assets/stylesheets/bootstrap/mixins/labels.less +12 -0
- data/app/assets/stylesheets/bootstrap/mixins/list-group.less +29 -0
- data/app/assets/stylesheets/bootstrap/mixins/nav-divider.less +10 -0
- data/app/assets/stylesheets/bootstrap/mixins/nav-vertical-align.less +9 -0
- data/app/assets/stylesheets/bootstrap/mixins/opacity.less +8 -0
- data/app/assets/stylesheets/bootstrap/mixins/pagination.less +23 -0
- data/app/assets/stylesheets/bootstrap/mixins/panels.less +24 -0
- data/app/assets/stylesheets/bootstrap/mixins/progress-bar.less +10 -0
- data/app/assets/stylesheets/bootstrap/mixins/reset-filter.less +8 -0
- data/app/assets/stylesheets/bootstrap/mixins/resize.less +6 -0
- data/app/assets/stylesheets/bootstrap/mixins/responsive-visibility.less +15 -0
- data/app/assets/stylesheets/bootstrap/mixins/size.less +10 -0
- data/app/assets/stylesheets/bootstrap/mixins/tab-focus.less +9 -0
- data/app/assets/stylesheets/bootstrap/mixins/table-row.less +28 -0
- data/app/assets/stylesheets/bootstrap/mixins/text-emphasis.less +8 -0
- data/app/assets/stylesheets/bootstrap/mixins/text-overflow.less +8 -0
- data/app/assets/stylesheets/bootstrap/mixins/vendor-prefixes.less +224 -0
- data/app/assets/stylesheets/bootstrap/modals.less +38 -20
- data/app/assets/stylesheets/bootstrap/navbar.less +103 -72
- data/app/assets/stylesheets/bootstrap/navs.less +3 -23
- data/app/assets/stylesheets/bootstrap/normalize.less +153 -134
- data/app/assets/stylesheets/bootstrap/pager.less +5 -5
- data/app/assets/stylesheets/bootstrap/pagination.less +6 -3
- data/app/assets/stylesheets/bootstrap/panels.less +117 -46
- data/app/assets/stylesheets/bootstrap/popovers.less +12 -12
- data/app/assets/stylesheets/bootstrap/print.less +0 -4
- data/app/assets/stylesheets/bootstrap/progress-bars.less +27 -14
- data/app/assets/stylesheets/bootstrap/responsive-embed.less +34 -0
- data/app/assets/stylesheets/bootstrap/responsive-utilities.less +109 -124
- data/app/assets/stylesheets/bootstrap/scaffolding.less +34 -3
- data/app/assets/stylesheets/bootstrap/tables.less +23 -26
- data/app/assets/stylesheets/bootstrap/theme.less +12 -1
- data/app/assets/stylesheets/bootstrap/thumbnails.less +10 -4
- data/app/assets/stylesheets/bootstrap/tooltip.less +1 -1
- data/app/assets/stylesheets/bootstrap/type.less +151 -117
- data/app/assets/stylesheets/bootstrap/utilities.less +1 -0
- data/app/assets/stylesheets/bootstrap/variables.less +399 -190
- data/app/assets/stylesheets/bootstrap/wells.less +1 -1
- data/bootstrap-on-rails.gemspec +1 -1
- data/lib/bootstrap-on-rails/version.rb +1 -1
- metadata +33 -3
@@ -1,34 +1,26 @@
|
|
1
1
|
/* ========================================================================
|
2
|
-
* Bootstrap: dropdown.js v3.0
|
2
|
+
* Bootstrap: dropdown.js v3.2.0
|
3
3
|
* http://getbootstrap.com/javascript/#dropdowns
|
4
4
|
* ========================================================================
|
5
|
-
* Copyright
|
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.
|
5
|
+
* Copyright 2011-2014 Twitter, Inc.
|
6
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
18
7
|
* ======================================================================== */
|
19
8
|
|
20
9
|
|
21
|
-
+function ($) {
|
10
|
+
+function ($) {
|
11
|
+
'use strict';
|
22
12
|
|
23
13
|
// DROPDOWN CLASS DEFINITION
|
24
14
|
// =========================
|
25
15
|
|
26
16
|
var backdrop = '.dropdown-backdrop'
|
27
|
-
var toggle = '[data-toggle=dropdown]'
|
17
|
+
var toggle = '[data-toggle="dropdown"]'
|
28
18
|
var Dropdown = function (element) {
|
29
|
-
|
19
|
+
$(element).on('click.bs.dropdown', this.toggle)
|
30
20
|
}
|
31
21
|
|
22
|
+
Dropdown.VERSION = '3.2.0'
|
23
|
+
|
32
24
|
Dropdown.prototype.toggle = function (e) {
|
33
25
|
var $this = $(this)
|
34
26
|
|
@@ -41,19 +33,20 @@
|
|
41
33
|
|
42
34
|
if (!isActive) {
|
43
35
|
if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
|
44
|
-
// if mobile we
|
36
|
+
// if mobile we use a backdrop because click events don't delegate
|
45
37
|
$('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
|
46
38
|
}
|
47
39
|
|
48
|
-
|
40
|
+
var relatedTarget = { relatedTarget: this }
|
41
|
+
$parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
|
49
42
|
|
50
43
|
if (e.isDefaultPrevented()) return
|
51
44
|
|
45
|
+
$this.trigger('focus')
|
46
|
+
|
52
47
|
$parent
|
53
48
|
.toggleClass('open')
|
54
|
-
.trigger('shown.bs.dropdown')
|
55
|
-
|
56
|
-
$this.focus()
|
49
|
+
.trigger('shown.bs.dropdown', relatedTarget)
|
57
50
|
}
|
58
51
|
|
59
52
|
return false
|
@@ -73,11 +66,12 @@
|
|
73
66
|
var isActive = $parent.hasClass('open')
|
74
67
|
|
75
68
|
if (!isActive || (isActive && e.keyCode == 27)) {
|
76
|
-
if (e.which == 27) $parent.find(toggle).focus
|
77
|
-
return $this.click
|
69
|
+
if (e.which == 27) $parent.find(toggle).trigger('focus')
|
70
|
+
return $this.trigger('click')
|
78
71
|
}
|
79
72
|
|
80
|
-
var
|
73
|
+
var desc = ' li:not(.divider):visible a'
|
74
|
+
var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
|
81
75
|
|
82
76
|
if (!$items.length) return
|
83
77
|
|
@@ -85,19 +79,21 @@
|
|
85
79
|
|
86
80
|
if (e.keyCode == 38 && index > 0) index-- // up
|
87
81
|
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
|
88
|
-
if (!~index) index=0
|
82
|
+
if (!~index) index = 0
|
89
83
|
|
90
|
-
$items.eq(index).focus
|
84
|
+
$items.eq(index).trigger('focus')
|
91
85
|
}
|
92
86
|
|
93
|
-
function clearMenus() {
|
87
|
+
function clearMenus(e) {
|
88
|
+
if (e && e.which === 3) return
|
94
89
|
$(backdrop).remove()
|
95
|
-
$(toggle).each(function (
|
90
|
+
$(toggle).each(function () {
|
96
91
|
var $parent = getParent($(this))
|
92
|
+
var relatedTarget = { relatedTarget: this }
|
97
93
|
if (!$parent.hasClass('open')) return
|
98
|
-
$parent.trigger(e = $.Event('hide.bs.dropdown'))
|
94
|
+
$parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
|
99
95
|
if (e.isDefaultPrevented()) return
|
100
|
-
$parent.removeClass('open').trigger('hidden.bs.dropdown')
|
96
|
+
$parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
|
101
97
|
})
|
102
98
|
}
|
103
99
|
|
@@ -106,7 +102,7 @@
|
|
106
102
|
|
107
103
|
if (!selector) {
|
108
104
|
selector = $this.attr('href')
|
109
|
-
selector = selector &&
|
105
|
+
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
110
106
|
}
|
111
107
|
|
112
108
|
var $parent = selector && $(selector)
|
@@ -118,18 +114,19 @@
|
|
118
114
|
// DROPDOWN PLUGIN DEFINITION
|
119
115
|
// ==========================
|
120
116
|
|
121
|
-
|
122
|
-
|
123
|
-
$.fn.dropdown = function (option) {
|
117
|
+
function Plugin(option) {
|
124
118
|
return this.each(function () {
|
125
119
|
var $this = $(this)
|
126
|
-
var data = $this.data('dropdown')
|
120
|
+
var data = $this.data('bs.dropdown')
|
127
121
|
|
128
|
-
if (!data) $this.data('dropdown', (data = new Dropdown(this)))
|
122
|
+
if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
|
129
123
|
if (typeof option == 'string') data[option].call($this)
|
130
124
|
})
|
131
125
|
}
|
132
126
|
|
127
|
+
var old = $.fn.dropdown
|
128
|
+
|
129
|
+
$.fn.dropdown = Plugin
|
133
130
|
$.fn.dropdown.Constructor = Dropdown
|
134
131
|
|
135
132
|
|
@@ -148,7 +145,7 @@
|
|
148
145
|
$(document)
|
149
146
|
.on('click.bs.dropdown.data-api', clearMenus)
|
150
147
|
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
151
|
-
.on('click.bs.dropdown.data-api'
|
152
|
-
.on('keydown.bs.dropdown.data-api', toggle + ', [role=menu]'
|
148
|
+
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
149
|
+
.on('keydown.bs.dropdown.data-api', toggle + ', [role="menu"], [role="listbox"]', Dropdown.prototype.keydown)
|
153
150
|
|
154
151
|
}(jQuery);
|
@@ -1,45 +1,45 @@
|
|
1
1
|
/* ========================================================================
|
2
|
-
* Bootstrap: modal.js v3.0
|
2
|
+
* Bootstrap: modal.js v3.2.0
|
3
3
|
* http://getbootstrap.com/javascript/#modals
|
4
4
|
* ========================================================================
|
5
|
-
* Copyright
|
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.
|
5
|
+
* Copyright 2011-2014 Twitter, Inc.
|
6
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
18
7
|
* ======================================================================== */
|
19
8
|
|
20
9
|
|
21
|
-
+function ($) {
|
10
|
+
+function ($) {
|
11
|
+
'use strict';
|
22
12
|
|
23
13
|
// MODAL CLASS DEFINITION
|
24
14
|
// ======================
|
25
15
|
|
26
16
|
var Modal = function (element, options) {
|
27
|
-
this.options
|
28
|
-
this.$
|
29
|
-
this.$
|
30
|
-
this
|
31
|
-
|
32
|
-
|
17
|
+
this.options = options
|
18
|
+
this.$body = $(document.body)
|
19
|
+
this.$element = $(element)
|
20
|
+
this.$backdrop =
|
21
|
+
this.isShown = null
|
22
|
+
this.scrollbarWidth = 0
|
23
|
+
|
24
|
+
if (this.options.remote) {
|
25
|
+
this.$element
|
26
|
+
.find('.modal-content')
|
27
|
+
.load(this.options.remote, $.proxy(function () {
|
28
|
+
this.$element.trigger('loaded.bs.modal')
|
29
|
+
}, this))
|
30
|
+
}
|
33
31
|
}
|
34
32
|
|
33
|
+
Modal.VERSION = '3.2.0'
|
34
|
+
|
35
35
|
Modal.DEFAULTS = {
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
backdrop: true,
|
37
|
+
keyboard: true,
|
38
|
+
show: true
|
39
39
|
}
|
40
40
|
|
41
41
|
Modal.prototype.toggle = function (_relatedTarget) {
|
42
|
-
return this
|
42
|
+
return this.isShown ? this.hide() : this.show(_relatedTarget)
|
43
43
|
}
|
44
44
|
|
45
45
|
Modal.prototype.show = function (_relatedTarget) {
|
@@ -52,18 +52,24 @@
|
|
52
52
|
|
53
53
|
this.isShown = true
|
54
54
|
|
55
|
+
this.checkScrollbar()
|
56
|
+
this.$body.addClass('modal-open')
|
57
|
+
|
58
|
+
this.setScrollbar()
|
55
59
|
this.escape()
|
56
60
|
|
57
|
-
this.$element.on('click.dismiss.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
|
61
|
+
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
|
58
62
|
|
59
63
|
this.backdrop(function () {
|
60
64
|
var transition = $.support.transition && that.$element.hasClass('fade')
|
61
65
|
|
62
66
|
if (!that.$element.parent().length) {
|
63
|
-
that.$element.appendTo(
|
67
|
+
that.$element.appendTo(that.$body) // don't move modals dom position
|
64
68
|
}
|
65
69
|
|
66
|
-
that.$element
|
70
|
+
that.$element
|
71
|
+
.show()
|
72
|
+
.scrollTop(0)
|
67
73
|
|
68
74
|
if (transition) {
|
69
75
|
that.$element[0].offsetWidth // force reflow
|
@@ -79,11 +85,11 @@
|
|
79
85
|
|
80
86
|
transition ?
|
81
87
|
that.$element.find('.modal-dialog') // wait for modal to slide in
|
82
|
-
.one(
|
83
|
-
that.$element.focus
|
88
|
+
.one('bsTransitionEnd', function () {
|
89
|
+
that.$element.trigger('focus').trigger(e)
|
84
90
|
})
|
85
91
|
.emulateTransitionEnd(300) :
|
86
|
-
that.$element.focus
|
92
|
+
that.$element.trigger('focus').trigger(e)
|
87
93
|
})
|
88
94
|
}
|
89
95
|
|
@@ -98,6 +104,9 @@
|
|
98
104
|
|
99
105
|
this.isShown = false
|
100
106
|
|
107
|
+
this.$body.removeClass('modal-open')
|
108
|
+
|
109
|
+
this.resetScrollbar()
|
101
110
|
this.escape()
|
102
111
|
|
103
112
|
$(document).off('focusin.bs.modal')
|
@@ -105,11 +114,11 @@
|
|
105
114
|
this.$element
|
106
115
|
.removeClass('in')
|
107
116
|
.attr('aria-hidden', true)
|
108
|
-
.off('click.dismiss.modal')
|
117
|
+
.off('click.dismiss.bs.modal')
|
109
118
|
|
110
119
|
$.support.transition && this.$element.hasClass('fade') ?
|
111
120
|
this.$element
|
112
|
-
.one(
|
121
|
+
.one('bsTransitionEnd', $.proxy(this.hideModal, this))
|
113
122
|
.emulateTransitionEnd(300) :
|
114
123
|
this.hideModal()
|
115
124
|
}
|
@@ -119,7 +128,7 @@
|
|
119
128
|
.off('focusin.bs.modal') // guard against infinite focus loop
|
120
129
|
.on('focusin.bs.modal', $.proxy(function (e) {
|
121
130
|
if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
|
122
|
-
this.$element.focus
|
131
|
+
this.$element.trigger('focus')
|
123
132
|
}
|
124
133
|
}, this))
|
125
134
|
}
|
@@ -138,7 +147,6 @@
|
|
138
147
|
var that = this
|
139
148
|
this.$element.hide()
|
140
149
|
this.backdrop(function () {
|
141
|
-
that.removeBackdrop()
|
142
150
|
that.$element.trigger('hidden.bs.modal')
|
143
151
|
})
|
144
152
|
}
|
@@ -149,16 +157,16 @@
|
|
149
157
|
}
|
150
158
|
|
151
159
|
Modal.prototype.backdrop = function (callback) {
|
152
|
-
var that
|
160
|
+
var that = this
|
153
161
|
var animate = this.$element.hasClass('fade') ? 'fade' : ''
|
154
162
|
|
155
163
|
if (this.isShown && this.options.backdrop) {
|
156
164
|
var doAnimate = $.support.transition && animate
|
157
165
|
|
158
166
|
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
159
|
-
.appendTo(
|
167
|
+
.appendTo(this.$body)
|
160
168
|
|
161
|
-
this.$element.on('click.dismiss.modal', $.proxy(function (e) {
|
169
|
+
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
|
162
170
|
if (e.target !== e.currentTarget) return
|
163
171
|
this.options.backdrop == 'static'
|
164
172
|
? this.$element[0].focus.call(this.$element[0])
|
@@ -173,31 +181,56 @@
|
|
173
181
|
|
174
182
|
doAnimate ?
|
175
183
|
this.$backdrop
|
176
|
-
.one(
|
184
|
+
.one('bsTransitionEnd', callback)
|
177
185
|
.emulateTransitionEnd(150) :
|
178
186
|
callback()
|
179
187
|
|
180
188
|
} else if (!this.isShown && this.$backdrop) {
|
181
189
|
this.$backdrop.removeClass('in')
|
182
190
|
|
183
|
-
|
191
|
+
var callbackRemove = function () {
|
192
|
+
that.removeBackdrop()
|
193
|
+
callback && callback()
|
194
|
+
}
|
195
|
+
$.support.transition && this.$element.hasClass('fade') ?
|
184
196
|
this.$backdrop
|
185
|
-
.one(
|
197
|
+
.one('bsTransitionEnd', callbackRemove)
|
186
198
|
.emulateTransitionEnd(150) :
|
187
|
-
|
199
|
+
callbackRemove()
|
188
200
|
|
189
201
|
} else if (callback) {
|
190
202
|
callback()
|
191
203
|
}
|
192
204
|
}
|
193
205
|
|
206
|
+
Modal.prototype.checkScrollbar = function () {
|
207
|
+
if (document.body.clientWidth >= window.innerWidth) return
|
208
|
+
this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()
|
209
|
+
}
|
210
|
+
|
211
|
+
Modal.prototype.setScrollbar = function () {
|
212
|
+
var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
|
213
|
+
if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
|
214
|
+
}
|
215
|
+
|
216
|
+
Modal.prototype.resetScrollbar = function () {
|
217
|
+
this.$body.css('padding-right', '')
|
218
|
+
}
|
219
|
+
|
220
|
+
Modal.prototype.measureScrollbar = function () { // thx walsh
|
221
|
+
var scrollDiv = document.createElement('div')
|
222
|
+
scrollDiv.className = 'modal-scrollbar-measure'
|
223
|
+
this.$body.append(scrollDiv)
|
224
|
+
var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
|
225
|
+
this.$body[0].removeChild(scrollDiv)
|
226
|
+
return scrollbarWidth
|
227
|
+
}
|
228
|
+
|
194
229
|
|
195
230
|
// MODAL PLUGIN DEFINITION
|
196
231
|
// =======================
|
197
232
|
|
198
|
-
|
199
|
-
|
200
|
-
$.fn.modal = function (option, _relatedTarget) {
|
233
|
+
function Plugin(option, _relatedTarget) {
|
201
234
|
return this.each(function () {
|
202
235
|
var $this = $(this)
|
203
236
|
var data = $this.data('bs.modal')
|
@@ -209,6 +242,9 @@
|
|
209
242
|
})
|
210
243
|
}
|
211
244
|
|
245
|
+
var old = $.fn.modal
|
246
|
+
|
247
|
+
$.fn.modal = Plugin
|
212
248
|
$.fn.modal.Constructor = Modal
|
213
249
|
|
214
250
|
|
@@ -227,20 +263,18 @@
|
|
227
263
|
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
|
228
264
|
var $this = $(this)
|
229
265
|
var href = $this.attr('href')
|
230
|
-
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
|
231
|
-
var option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
|
266
|
+
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
|
267
|
+
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
|
232
268
|
|
233
|
-
e.preventDefault()
|
269
|
+
if ($this.is('a')) e.preventDefault()
|
234
270
|
|
235
|
-
$target
|
236
|
-
.
|
237
|
-
.one('
|
238
|
-
$this.is(':visible') && $this.focus
|
271
|
+
$target.one('show.bs.modal', function (showEvent) {
|
272
|
+
if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
|
273
|
+
$target.one('hidden.bs.modal', function () {
|
274
|
+
$this.is(':visible') && $this.trigger('focus')
|
239
275
|
})
|
276
|
+
})
|
277
|
+
Plugin.call($target, option, this)
|
240
278
|
})
|
241
279
|
|
242
|
-
$(document)
|
243
|
-
.on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
|
244
|
-
.on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
|
245
|
-
|
246
280
|
}(jQuery);
|
@@ -1,24 +1,14 @@
|
|
1
1
|
/* ========================================================================
|
2
|
-
* Bootstrap: popover.js v3.0
|
2
|
+
* Bootstrap: popover.js v3.2.0
|
3
3
|
* http://getbootstrap.com/javascript/#popovers
|
4
4
|
* ========================================================================
|
5
|
-
* Copyright
|
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.
|
5
|
+
* Copyright 2011-2014 Twitter, Inc.
|
6
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
18
7
|
* ======================================================================== */
|
19
8
|
|
20
9
|
|
21
|
-
+function ($) {
|
10
|
+
+function ($) {
|
11
|
+
'use strict';
|
22
12
|
|
23
13
|
// POPOVER PUBLIC CLASS DEFINITION
|
24
14
|
// ===============================
|
@@ -29,11 +19,13 @@
|
|
29
19
|
|
30
20
|
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
31
21
|
|
32
|
-
Popover.
|
33
|
-
|
34
|
-
,
|
35
|
-
|
36
|
-
|
22
|
+
Popover.VERSION = '3.2.0'
|
23
|
+
|
24
|
+
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
25
|
+
placement: 'right',
|
26
|
+
trigger: 'click',
|
27
|
+
content: '',
|
28
|
+
template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
37
29
|
})
|
38
30
|
|
39
31
|
|
@@ -54,7 +46,9 @@
|
|
54
46
|
var content = this.getContent()
|
55
47
|
|
56
48
|
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
|
57
|
-
$tip.find('.popover-content')[
|
49
|
+
$tip.find('.popover-content').empty()[ // we use append for html objects to maintain js events
|
50
|
+
this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
|
51
|
+
](content)
|
58
52
|
|
59
53
|
$tip.removeClass('fade top bottom left right in')
|
60
54
|
|
@@ -78,7 +72,7 @@
|
|
78
72
|
}
|
79
73
|
|
80
74
|
Popover.prototype.arrow = function () {
|
81
|
-
return this.$arrow = this.$arrow || this.tip().find('.arrow')
|
75
|
+
return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
|
82
76
|
}
|
83
77
|
|
84
78
|
Popover.prototype.tip = function () {
|
@@ -90,19 +84,21 @@
|
|
90
84
|
// POPOVER PLUGIN DEFINITION
|
91
85
|
// =========================
|
92
86
|
|
93
|
-
|
94
|
-
|
95
|
-
$.fn.popover = function (option) {
|
87
|
+
function Plugin(option) {
|
96
88
|
return this.each(function () {
|
97
89
|
var $this = $(this)
|
98
90
|
var data = $this.data('bs.popover')
|
99
91
|
var options = typeof option == 'object' && option
|
100
92
|
|
93
|
+
if (!data && option == 'destroy') return
|
101
94
|
if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
|
102
95
|
if (typeof option == 'string') data[option]()
|
103
96
|
})
|
104
97
|
}
|
105
98
|
|
99
|
+
var old = $.fn.popover
|
100
|
+
|
101
|
+
$.fn.popover = Plugin
|
106
102
|
$.fn.popover.Constructor = Popover
|
107
103
|
|
108
104
|
|