padrino-admin 0.11.2 → 0.11.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. data/lib/padrino-admin/bootstrap-less/accordion.less +6 -9
  2. data/lib/padrino-admin/bootstrap-less/alerts.less +46 -51
  3. data/lib/padrino-admin/bootstrap-less/badges.less +2 -7
  4. data/lib/padrino-admin/bootstrap-less/bootstrap.less +0 -1
  5. data/lib/padrino-admin/bootstrap-less/breadcrumbs.less +3 -3
  6. data/lib/padrino-admin/bootstrap-less/button-groups.less +37 -37
  7. data/lib/padrino-admin/bootstrap-less/buttons.less +52 -67
  8. data/lib/padrino-admin/bootstrap-less/carousel.less +24 -35
  9. data/lib/padrino-admin/bootstrap-less/close.less +14 -13
  10. data/lib/padrino-admin/bootstrap-less/code.less +4 -7
  11. data/lib/padrino-admin/bootstrap-less/component-animations.less +2 -11
  12. data/lib/padrino-admin/bootstrap-less/dropdowns.less +26 -82
  13. data/lib/padrino-admin/bootstrap-less/font-awesome-ie7.less +1895 -292
  14. data/lib/padrino-admin/bootstrap-less/font-awesome.less +26 -530
  15. data/lib/padrino-admin/bootstrap-less/font-awesome/bootstrap.less +84 -0
  16. data/lib/padrino-admin/bootstrap-less/font-awesome/core.less +129 -0
  17. data/lib/padrino-admin/bootstrap-less/font-awesome/extras.less +93 -0
  18. data/lib/padrino-admin/bootstrap-less/font-awesome/font-awesome-ie7.less +1953 -0
  19. data/lib/padrino-admin/bootstrap-less/font-awesome/font-awesome.less +33 -0
  20. data/lib/padrino-admin/bootstrap-less/font-awesome/icons.less +381 -0
  21. data/lib/padrino-admin/bootstrap-less/font-awesome/mixins.less +48 -0
  22. data/lib/padrino-admin/bootstrap-less/font-awesome/path.less +14 -0
  23. data/lib/padrino-admin/bootstrap-less/font-awesome/variables.less +735 -0
  24. data/lib/padrino-admin/bootstrap-less/forms.less +123 -227
  25. data/lib/padrino-admin/bootstrap-less/grid.less +174 -19
  26. data/lib/padrino-admin/bootstrap-less/jumbotron.less +4 -4
  27. data/lib/padrino-admin/bootstrap-less/labels.less +52 -28
  28. data/lib/padrino-admin/bootstrap-less/list-group.less +37 -44
  29. data/lib/padrino-admin/bootstrap-less/media.less +1 -1
  30. data/lib/padrino-admin/bootstrap-less/mixins.less +97 -120
  31. data/lib/padrino-admin/bootstrap-less/modals.less +5 -4
  32. data/lib/padrino-admin/bootstrap-less/navbar.less +148 -174
  33. data/lib/padrino-admin/bootstrap-less/navs.less +145 -164
  34. data/lib/padrino-admin/bootstrap-less/padrino-admin.less +2 -2
  35. data/lib/padrino-admin/bootstrap-less/pager.less +45 -33
  36. data/lib/padrino-admin/bootstrap-less/pagination.less +11 -23
  37. data/lib/padrino-admin/bootstrap-less/panels.less +11 -1
  38. data/lib/padrino-admin/bootstrap-less/popovers.less +6 -6
  39. data/lib/padrino-admin/bootstrap-less/print.less +13 -2
  40. data/lib/padrino-admin/bootstrap-less/progress-bars.less +3 -3
  41. data/lib/padrino-admin/bootstrap-less/responsive-utilities.less +92 -32
  42. data/lib/padrino-admin/bootstrap-less/scaffolding.less +9 -18
  43. data/lib/padrino-admin/bootstrap-less/tables.less +70 -67
  44. data/lib/padrino-admin/bootstrap-less/thumbnails.less +6 -6
  45. data/lib/padrino-admin/bootstrap-less/tooltip.less +25 -1
  46. data/lib/padrino-admin/bootstrap-less/type.less +39 -46
  47. data/lib/padrino-admin/bootstrap-less/variables.less +135 -63
  48. data/lib/padrino-admin/generators/admin_app.rb +9 -0
  49. data/lib/padrino-admin/generators/admin_page.rb +9 -0
  50. data/lib/padrino-admin/generators/orm.rb +1 -10
  51. data/lib/padrino-admin/generators/templates/account/activerecord.rb.tt +1 -1
  52. data/lib/padrino-admin/generators/templates/account/datamapper.rb.tt +1 -1
  53. data/lib/padrino-admin/generators/templates/account/minirecord.rb.tt +1 -1
  54. data/lib/padrino-admin/generators/templates/account/mongoid.rb.tt +1 -1
  55. data/lib/padrino-admin/generators/templates/account/mongomapper.rb.tt +1 -1
  56. data/lib/padrino-admin/generators/templates/account/sequel.rb.tt +1 -1
  57. data/lib/padrino-admin/generators/templates/assets/images/font/FontAwesome.otf +0 -0
  58. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.eot +0 -0
  59. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.svg +153 -38
  60. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.ttf +0 -0
  61. data/lib/padrino-admin/generators/templates/assets/images/font/fontawesome-webfont.woff +0 -0
  62. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/affix.js +120 -0
  63. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/{bootstrap-alert.js → alert.js} +32 -35
  64. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap.min.js +1 -1
  65. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/{bootstrap-button.js → button.js} +37 -37
  66. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/carousel.js +210 -0
  67. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/collapse.js +156 -0
  68. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/dropdown.js +155 -0
  69. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/modal.js +243 -0
  70. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/popover.js +111 -0
  71. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/scrollspy.js +156 -0
  72. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/tab.js +133 -0
  73. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/tooltip.js +356 -0
  74. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/transition.js +47 -0
  75. data/lib/padrino-admin/generators/templates/assets/stylesheets/bootstrap.css +406 -452
  76. data/lib/padrino-admin/generators/templates/erb/app/layouts/application.erb.tt +3 -3
  77. data/lib/padrino-admin/generators/templates/erb/app/sessions/new.erb.tt +1 -1
  78. data/lib/padrino-admin/generators/templates/haml/app/layouts/application.haml.tt +3 -3
  79. data/lib/padrino-admin/generators/templates/haml/app/sessions/new.haml.tt +1 -1
  80. data/lib/padrino-admin/generators/templates/page/controller.rb.tt +1 -1
  81. data/lib/padrino-admin/generators/templates/slim/app/layouts/application.slim.tt +3 -3
  82. data/lib/padrino-admin/generators/templates/slim/app/sessions/new.slim.tt +1 -1
  83. data/lib/padrino-admin/helpers/view_helpers.rb +1 -1
  84. data/test/generators/test_admin_app_generator.rb +9 -0
  85. data/test/generators/test_admin_page_generator.rb +11 -0
  86. metadata +27 -23
  87. data/lib/padrino-admin/bootstrap-less/glyphicons.less +0 -200
  88. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-affix.js +0 -117
  89. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-carousel.js +0 -207
  90. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-collapse.js +0 -167
  91. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-dropdown.js +0 -165
  92. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-modal.js +0 -251
  93. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-popover.js +0 -114
  94. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-scrollspy.js +0 -162
  95. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-tab.js +0 -144
  96. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-tooltip.js +0 -361
  97. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-transition.js +0 -60
  98. data/lib/padrino-admin/generators/templates/assets/javascripts/bootstrap/bootstrap-typeahead.js +0 -335
@@ -1,117 +0,0 @@
1
- /* ==========================================================
2
- * bootstrap-affix.js v3.0.0
3
- * http://twitter.github.com/bootstrap/javascript.html#affix
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
- /* AFFIX CLASS DEFINITION
27
- * ====================== */
28
-
29
- var Affix = function (element, options) {
30
- this.options = $.extend({}, $.fn.affix.defaults, options)
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))
34
- this.$element = $(element)
35
- this.checkPosition()
36
- }
37
-
38
- Affix.prototype.checkPosition = function () {
39
- if (!this.$element.is(':visible')) return
40
-
41
- var scrollHeight = $(document).height()
42
- , scrollTop = this.$window.scrollTop()
43
- , position = this.$element.offset()
44
- , offset = this.options.offset
45
- , offsetBottom = offset.bottom
46
- , offsetTop = offset.top
47
- , reset = 'affix affix-top affix-bottom'
48
- , affix
49
-
50
- if (typeof offset != 'object') offsetBottom = offsetTop = offset
51
- if (typeof offsetTop == 'function') offsetTop = offset.top()
52
- if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
53
-
54
- affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ?
55
- false : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ?
56
- 'bottom' : offsetTop != null && scrollTop <= offsetTop ?
57
- 'top' : false
58
-
59
- if (this.affixed === affix) return
60
-
61
- this.affixed = affix
62
- this.unpin = affix == 'bottom' ? position.top - scrollTop : null
63
-
64
- this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
65
- }
66
-
67
-
68
- /* AFFIX PLUGIN DEFINITION
69
- * ======================= */
70
-
71
- var old = $.fn.affix
72
-
73
- $.fn.affix = function (option) {
74
- return this.each(function () {
75
- var $this = $(this)
76
- , data = $this.data('affix')
77
- , options = typeof option == 'object' && option
78
- if (!data) $this.data('affix', (data = new Affix(this, options)))
79
- if (typeof option == 'string') data[option]()
80
- })
81
- }
82
-
83
- $.fn.affix.Constructor = Affix
84
-
85
- $.fn.affix.defaults = {
86
- offset: 0
87
- }
88
-
89
-
90
- /* AFFIX NO CONFLICT
91
- * ================= */
92
-
93
- $.fn.affix.noConflict = function () {
94
- $.fn.affix = old
95
- return this
96
- }
97
-
98
-
99
- /* AFFIX DATA-API
100
- * ============== */
101
-
102
- $(window).on('load', function () {
103
- $('[data-spy="affix"]').each(function () {
104
- var $spy = $(this)
105
- , data = $spy.data()
106
-
107
- data.offset = data.offset || {}
108
-
109
- data.offsetBottom && (data.offset.bottom = data.offsetBottom)
110
- data.offsetTop && (data.offset.top = data.offsetTop)
111
-
112
- $spy.affix(data)
113
- })
114
- })
115
-
116
-
117
- }(window.jQuery);
@@ -1,207 +0,0 @@
1
- /* ==========================================================
2
- * bootstrap-carousel.js v3.0.0
3
- * http://twitter.github.com/bootstrap/javascript.html#carousel
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
- /* CAROUSEL CLASS DEFINITION
27
- * ========================= */
28
-
29
- var Carousel = function (element, options) {
30
- this.$element = $(element)
31
- this.$indicators = this.$element.find('.carousel-indicators')
32
- this.options = options
33
- this.options.pause == 'hover' && this.$element
34
- .on('mouseenter', $.proxy(this.pause, this))
35
- .on('mouseleave', $.proxy(this.cycle, this))
36
- }
37
-
38
- Carousel.prototype = {
39
-
40
- cycle: function (e) {
41
- if (!e) this.paused = false
42
- if (this.interval) clearInterval(this.interval);
43
- this.options.interval
44
- && !this.paused
45
- && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
46
- return this
47
- }
48
-
49
- , getActiveIndex: function () {
50
- this.$active = this.$element.find('.item.active')
51
- this.$items = this.$active.parent().children()
52
- return this.$items.index(this.$active)
53
- }
54
-
55
- , to: function (pos) {
56
- var activeIndex = this.getActiveIndex()
57
- , that = this
58
-
59
- if (pos > (this.$items.length - 1) || pos < 0) return
60
-
61
- if (this.sliding) {
62
- return this.$element.one('slid', function () {
63
- that.to(pos)
64
- })
65
- }
66
-
67
- if (activeIndex == pos) {
68
- return this.pause().cycle()
69
- }
70
-
71
- return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
72
- }
73
-
74
- , pause: function (e) {
75
- if (!e) this.paused = true
76
- if (this.$element.find('.next, .prev').length && $.support.transition.end) {
77
- this.$element.trigger($.support.transition.end)
78
- this.cycle(true)
79
- }
80
- clearInterval(this.interval)
81
- this.interval = null
82
- return this
83
- }
84
-
85
- , next: function () {
86
- if (this.sliding) return
87
- return this.slide('next')
88
- }
89
-
90
- , prev: function () {
91
- if (this.sliding) return
92
- return this.slide('prev')
93
- }
94
-
95
- , slide: function (type, next) {
96
- var $active = this.$element.find('.item.active')
97
- , $next = next || $active[type]()
98
- , isCycling = this.interval
99
- , direction = type == 'next' ? 'left' : 'right'
100
- , fallback = type == 'next' ? 'first' : 'last'
101
- , that = this
102
- , e
103
-
104
- this.sliding = true
105
-
106
- isCycling && this.pause()
107
-
108
- $next = $next.length ? $next : this.$element.find('.item')[fallback]()
109
-
110
- e = $.Event('slide', {
111
- relatedTarget: $next[0]
112
- , direction: direction
113
- })
114
-
115
- if ($next.hasClass('active')) return
116
-
117
- if (this.$indicators.length) {
118
- this.$indicators.find('.active').removeClass('active')
119
- this.$element.one('slid', function () {
120
- var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
121
- $nextIndicator && $nextIndicator.addClass('active')
122
- })
123
- }
124
-
125
- if ($.support.transition && this.$element.hasClass('slide')) {
126
- this.$element.trigger(e)
127
- if (e.isDefaultPrevented()) return
128
- $next.addClass(type)
129
- $next[0].offsetWidth // force reflow
130
- $active.addClass(direction)
131
- $next.addClass(direction)
132
- this.$element.one($.support.transition.end, function () {
133
- $next.removeClass([type, direction].join(' ')).addClass('active')
134
- $active.removeClass(['active', direction].join(' '))
135
- that.sliding = false
136
- setTimeout(function () { that.$element.trigger('slid') }, 0)
137
- })
138
- } else {
139
- this.$element.trigger(e)
140
- if (e.isDefaultPrevented()) return
141
- $active.removeClass('active')
142
- $next.addClass('active')
143
- this.sliding = false
144
- this.$element.trigger('slid')
145
- }
146
-
147
- isCycling && this.cycle()
148
-
149
- return this
150
- }
151
-
152
- }
153
-
154
-
155
- /* CAROUSEL PLUGIN DEFINITION
156
- * ========================== */
157
-
158
- var old = $.fn.carousel
159
-
160
- $.fn.carousel = function (option) {
161
- return this.each(function () {
162
- var $this = $(this)
163
- , data = $this.data('carousel')
164
- , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
165
- , action = typeof option == 'string' ? option : options.slide
166
- if (!data) $this.data('carousel', (data = new Carousel(this, options)))
167
- if (typeof option == 'number') data.to(option)
168
- else if (action) data[action]()
169
- else if (options.interval) data.pause().cycle()
170
- })
171
- }
172
-
173
- $.fn.carousel.defaults = {
174
- interval: 5000
175
- , pause: 'hover'
176
- }
177
-
178
- $.fn.carousel.Constructor = Carousel
179
-
180
-
181
- /* CAROUSEL NO CONFLICT
182
- * ==================== */
183
-
184
- $.fn.carousel.noConflict = function () {
185
- $.fn.carousel = old
186
- return this
187
- }
188
-
189
- /* CAROUSEL DATA-API
190
- * ================= */
191
-
192
- $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
193
- var $this = $(this), href
194
- , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
195
- , options = $.extend({}, $target.data(), $this.data())
196
- , slideIndex
197
-
198
- $target.carousel(options)
199
-
200
- if (slideIndex = $this.attr('data-slide-to')) {
201
- $target.data('carousel').pause().to(slideIndex).cycle()
202
- }
203
-
204
- e.preventDefault()
205
- })
206
-
207
- }(window.jQuery);
@@ -1,167 +0,0 @@
1
- /* =============================================================
2
- * bootstrap-collapse.js v3.0.0
3
- * http://twitter.github.com/bootstrap/javascript.html#collapse
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
- /* COLLAPSE PUBLIC CLASS DEFINITION
27
- * ================================ */
28
-
29
- var Collapse = function (element, options) {
30
- this.$element = $(element)
31
- this.options = $.extend({}, $.fn.collapse.defaults, options)
32
-
33
- if (this.options.parent) {
34
- this.$parent = $(this.options.parent)
35
- }
36
-
37
- this.options.toggle && this.toggle()
38
- }
39
-
40
- Collapse.prototype = {
41
-
42
- constructor: Collapse
43
-
44
- , dimension: function () {
45
- var hasWidth = this.$element.hasClass('width')
46
- return hasWidth ? 'width' : 'height'
47
- }
48
-
49
- , show: function () {
50
- var dimension
51
- , scroll
52
- , actives
53
- , hasData
54
-
55
- if (this.transitioning || this.$element.hasClass('in')) return
56
-
57
- dimension = this.dimension()
58
- scroll = $.camelCase(['scroll', dimension].join('-'))
59
- actives = this.$parent && this.$parent.find('> .accordion-group > .in')
60
-
61
- if (actives && actives.length) {
62
- hasData = actives.data('collapse')
63
- if (hasData && hasData.transitioning) return
64
- actives.collapse('hide')
65
- hasData || actives.data('collapse', null)
66
- }
67
-
68
- this.$element[dimension](0)
69
- this.transition('addClass', $.Event('show'), 'shown')
70
- $.support.transition && this.$element[dimension](this.$element[0][scroll])
71
- }
72
-
73
- , hide: function () {
74
- var dimension
75
- if (this.transitioning || !this.$element.hasClass('in')) return
76
- dimension = this.dimension()
77
- this.reset(this.$element[dimension]())
78
- this.transition('removeClass', $.Event('hide'), 'hidden')
79
- this.$element[dimension](0)
80
- }
81
-
82
- , reset: function (size) {
83
- var dimension = this.dimension()
84
-
85
- this.$element
86
- .removeClass('collapse')
87
- [dimension](size || 'auto')
88
- [0].offsetWidth
89
-
90
- this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
91
-
92
- return this
93
- }
94
-
95
- , transition: function (method, startEvent, completeEvent) {
96
- var that = this
97
- , complete = function () {
98
- if (startEvent.type == 'show') that.reset()
99
- that.transitioning = 0
100
- that.$element.trigger(completeEvent)
101
- }
102
-
103
- this.$element.trigger(startEvent)
104
-
105
- if (startEvent.isDefaultPrevented()) return
106
-
107
- this.transitioning = 1
108
-
109
- this.$element[method]('in')
110
-
111
- $.support.transition && this.$element.hasClass('collapse') ?
112
- this.$element.one($.support.transition.end, complete) :
113
- complete()
114
- }
115
-
116
- , toggle: function () {
117
- this[this.$element.hasClass('in') ? 'hide' : 'show']()
118
- }
119
-
120
- }
121
-
122
-
123
- /* COLLAPSE PLUGIN DEFINITION
124
- * ========================== */
125
-
126
- var old = $.fn.collapse
127
-
128
- $.fn.collapse = function (option) {
129
- return this.each(function () {
130
- var $this = $(this)
131
- , data = $this.data('collapse')
132
- , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
133
- if (!data) $this.data('collapse', (data = new Collapse(this, options)))
134
- if (typeof option == 'string') data[option]()
135
- })
136
- }
137
-
138
- $.fn.collapse.defaults = {
139
- toggle: true
140
- }
141
-
142
- $.fn.collapse.Constructor = Collapse
143
-
144
-
145
- /* COLLAPSE NO CONFLICT
146
- * ==================== */
147
-
148
- $.fn.collapse.noConflict = function () {
149
- $.fn.collapse = old
150
- return this
151
- }
152
-
153
-
154
- /* COLLAPSE DATA-API
155
- * ================= */
156
-
157
- $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
158
- var $this = $(this), href
159
- , target = $this.attr('data-target')
160
- || e.preventDefault()
161
- || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
162
- , option = $(target).data('collapse') ? 'toggle' : $this.data()
163
- $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
164
- $(target).collapse(option)
165
- })
166
-
167
- }(window.jQuery);